organizationId = "868846676";
	///// Customer Section ////
	customerEmail = data.get("BillEmail_Address").toList().get(0);
	// 		info customerEmail;
	// Search for the contact in Zoho Books by email
	search_params = Map();
	search_params.put("email",customerEmail);
	search_response = zoho.books.getRecords("contacts",organizationId,search_params,"zoho_books");
	// 	info search_response;
	if(search_response.get("code") == 0 && search_response.get("contacts").size() > 0)
	{
		// Contact exists, retrieve the contact ID
		contact_id = search_response.get("contacts").get(0).get("contact_id");
		// 			info "Contact already exists. Contact ID: " + contact_id;
	}
	else
	{
		// Contact doesn't exist, create a new contact
		contactPerson = Map();
		customerName = data.get("CustomerRef_name");
		if(customerName.contains(" "))
		{
			contactPerson.put("first_name",customerName.getPrefix(" "));
			contactPerson.put("last_name",customerName.getSuffix(" "));
		}
		else
		{
			contactPerson.put("last_name",customerName);
		}
		contactPerson.put("email",customerEmail);
		contact_map = Map();
		contact_map.put("contact_name",data.get("CustomerRef_name"));
		contact_map.put("contact_type","customer");
		contact_map.put("contact_persons",contactPerson.toList());
		create_response = zoho.books.createRecord("contacts",organizationId,contact_map,"zoho_books");
		// 		info create_response;
		if(create_response.get("code") == 0)
		{
			// New contact created, retrieve the contact ID
			contact_id = create_response.get("contact").get("contact_id");
			// 				info "New contact created. Contact ID: " + contact_id;
		}
		else
		{
			// Handle error while creating the contact
			// 				info "Error creating contact: " + create_response.get("message");
		}
	}
	/////////////////////////// Customer Section Ends //////////////////////
	//////////////////////////// Item Section ///////////////////////////
	lines = data.get("Line");
	booksLineItems = List();
	for each  line in lines
	{
		if(line.containsKey("Id"))
		{
			amount = line.get("Amount");
			description = line.get("Description");
			SalesItemLineDetail = line.get("SalesItemLineDetail");
			qty = SalesItemLineDetail.get("Qty");
			itemName = SalesItemLineDetail.get("ItemRef").get("name");
			itemQuery = Map();
			itemQuery.put("name",itemName);
			searchItemResp = zoho.books.getRecords("Items",organizationId,itemQuery,"zoho_books");
			// 			info searchItemResp;
			items = searchItemResp.get("items");
			if(items.size() > 0)
			{
				itemId = items.get(0).get("item_id");
			}
			else
			{
				itemMap = Map();
				itemMap.put("name",itemName);
				createItemResp = zoho.books.createRecord("Items",organizationId,itemMap,"zoho_books");
				// 				info createItemResp;
				itemId = createItemResp.get("item").get("item_id");
			}
			lineItemMap = Map();
			lineItemMap.put("item_id",itemId);
			lineItemMap.put("description",description);
			lineItemMap.put("quantity",qty);
			lineItemMap.put("rate",amount);
			booksLineItems.add(lineItemMap);
		}
		else
		{
			if(line.get("DetailType") == "SalesItemLineDetail")
			{
				if(line.get("SalesItemLineDetail").get("ItemRef").get("value") == "SHIPPING_ITEM_ID")
				{
					shippingCharges = line.get("Amount");
				}
			}
		}
	}
	// 	info booksLineItems;
	// 	info shippingCharges;
	////////////////////////// END of Items ///////////////////////////////
	invoiceMap = Map();
	invoiceMap.put("customer_id",contact_id);
	invoiceMap.put("line_items",booksLineItems);
	invoiceMap.put("date",data.get("TxnDate"));
	invoiceMap.put("due_date",data.get("DueDate"));
	invoiceMap.put("reference_number",data.get("DocNumber"));
	if(!isNull(shippingCharges))
	{
		invoiceMap.put("shipping_charge",shippingCharges);
	}
	info "Map = " + invoiceMap;
	createInvoiceResp = zoho.books.createRecord("invoices",organizationId,invoiceMap,"zoho_books");
	info "Creating Invoice = " + createInvoiceResp.get("message");
	if(createInvoiceResp.get("message") == "The invoice has been created.")
	{
		invoiceId = createInvoiceResp.get("invoice").get("invoice_id");
		markInvoiceSent = invokeurl
		[
			url :"https://www.zohoapis.com/books/v3/invoices/" + invoiceId + "/status/sent?organization_id=" + organizationId
			type :POST
			connection:"zoho_books"
		];
		info "Mark Invoice as Sent = " + markInvoiceSent.get("message");
	}