{"id":2293,"date":"2026-06-12T10:00:00","date_gmt":"2026-06-12T10:00:00","guid":{"rendered":"https:\/\/aaxonix.com\/resources\/?p=2293"},"modified":"2026-07-18T10:46:53","modified_gmt":"2026-07-18T10:46:53","slug":"zoho-crm-instamojo-integration-india","status":"publish","type":"post","link":"https:\/\/aaxonix.com\/resources\/zoho-crm-instamojo-integration-india\/","title":{"rendered":"Zoho CRM + Instamojo: Payment Tracking for Indian D2C Brands"},"content":{"rendered":"<style>\n.aax-post{font-family:'Poppins',sans-serif;color:var(--ink);max-width:820px;margin:0 auto;line-height:1.75}\n.aax-post h2{font-size:1.55rem;font-weight:600;margin:2.5rem 0 .9rem;color:#0a1628}\n.aax-post h3{font-size:1.15rem;font-weight:600;margin:1.8rem 0 .6rem;color:var(--ink)}\n.aax-post p{margin:0 0 1.1rem}\n.aax-post ul,.aax-post ol{margin:0 0 1.1rem;padding-left:1.5rem}\n.aax-post li{margin-bottom:.45rem}\n.aax-post table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.93rem}\n.aax-post th{background:#0a1628;color:#fff;padding:.6rem 1rem;text-align:left}\n.aax-post td{padding:.55rem 1rem;border-bottom:1px solid #e8edf4}\n.aax-post tr:nth-child(even) td{background:var(--bg2)}\n.aax-post .faq-section{background:var(--bg2);border-radius:10px;padding:1.8rem 2rem;margin:2.5rem 0}\n.aax-post .faq-item{margin-bottom:1.2rem;border-bottom:1px solid #e0e6ef;padding-bottom:1.2rem}\n.aax-post .faq-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}\n.aax-post .faq-question{font-weight:600;color:#0a1628;margin-bottom:.5rem}\n.aax-post .faq-answer{color:var(--muted);line-height:1.65}\n.aax-post .aax-cta{background:linear-gradient(135deg,#0a1628 0%,var(--navy) 100%);border-radius:12px;padding:1.8rem 2rem;margin:2.5rem 0;text-align:center}\n.aax-post .aax-cta p{color:#e8edf4;margin:0 0 1.2rem;font-size:1.05rem}\n.aax-post .aax-cta a{display:inline-block;background:#fff;color:#0a1628;font-weight:600;padding:.65rem 1.6rem;border-radius:6px;text-decoration:none;font-size:.95rem}\n<\/style>\n<div class=\"sp-toc-wrap\"><nav class=\"sp-blog-toc\" id=\"spBlogToc\" style=\"display:none\">\n  <h4><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg> On this page<\/h4>\n  <ol class=\"sp-toc-list\" id=\"spTocList\"><\/ol>\n<\/nav><\/div>\n<div class=\"aax-post\">\n\n<p>For Indian <a href=\"https:\/\/aaxonix.com\/resources\/zoho-d2c-brands-india\/\" class=\"sp-content-link\">D2C brands<\/a> selling directly to consumers, Zoho CRM + Instamojo integration closes the gap between payment collection and customer relationship management. When a buyer completes a payment on an Instamojo payment link, that transaction data should immediately update the corresponding CRM deal, trigger a fulfillment workflow, and fire a GST invoice, without manual intervention. This guide walks through the complete Zoho CRM Instamojo integration: webhook configuration, Deluge functions for deal updates, payment link generation from CRM, and post-payment automation.<\/p>\n\n<figure style=\"margin:36px 0;text-align:center;line-height:0;\"><img decoding=\"async\" src=\"https:\/\/aaxonix.com\/resources\/wp-content\/uploads\/2026\/04\/zoho-crm-instamojo-inline-1.jpg\" alt=\"payment gateway mobile india\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure><h2>How the Zoho CRM and Instamojo Integration Works<\/h2>\n<p>The integration connects two systems through Instamojo&#8217;s webhook notifications and the Zoho CRM REST API. The data flow operates in two directions:<\/p>\n<ul>\n<li><strong>Instamojo to CRM:<\/strong> When a payment completes, Instamojo fires a webhook POST request to a Zoho CRM endpoint. A Deluge function processes this payload and updates the matching Deal or Contact record.<\/li>\n<li><strong>CRM to Instamojo:<\/strong> A sales rep clicks a custom button in Zoho CRM to generate an Instamojo payment link for a specific deal. The function calls the Instamojo API and stores the resulting link on the Deal record.<\/li>\n<\/ul>\n<p>Neither direction requires a third-party middleware tool. Both use native Zoho CRM functions and Instamojo&#8217;s REST API (version 2.0, available on Business accounts and above).<\/p>\n\n<h2>Prerequisites Before You Begin<\/h2>\n<p>Confirm the following before starting the configuration:<\/p>\n<ul>\n<li><strong>Instamojo account:<\/strong> Business or Pro plan with API access enabled. Free accounts do not support API calls or webhooks.<\/li>\n<li><strong>Instamojo API credentials:<\/strong> Obtain your API key and Auth token from <em>Settings &gt; API &#038; Plugins<\/em> in your Instamojo dashboard. You will also need your private salt for webhook signature verification.<\/li>\n<li><strong>Zoho CRM edition:<\/strong> Standard or above. Custom functions require at least the Standard plan.<\/li>\n<li><strong>Custom fields in Zoho CRM:<\/strong> Create the following fields on the Deals module before writing any functions:\n<table>\n<thead><tr><th>Field Label<\/th><th>Field Type<\/th><th>Purpose<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>Instamojo Payment ID<\/td><td>Single Line Text<\/td><td>Stores the payment_id from webhook<\/td><\/tr>\n<tr><td>Instamojo Payment Link<\/td><td>URL<\/td><td>Stores the generated payment link<\/td><\/tr>\n<tr><td>Payment Status<\/td><td>Picklist<\/td><td>Pending \/ Paid \/ Failed \/ Refunded<\/td><\/tr>\n<tr><td>Payment Amount (INR)<\/td><td>Currency<\/td><td>Amount received via Instamojo<\/td><\/tr>\n<tr><td>Payment Date<\/td><td>Date<\/td><td>Date of successful payment<\/td><\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n\n<h2>Step 1: Configure the Instamojo Webhook<\/h2>\n<p>Instamojo sends a POST request to your webhook URL whenever a payment request changes status. Here is how to set it up:<\/p>\n<ol>\n<li>Log in to your Instamojo dashboard and go to <strong>Settings &gt; API &amp; Plugins &gt; Webhooks<\/strong>.<\/li>\n<li>Enter your webhook URL. This will be a Zoho CRM webhook listener URL. For now, use a temporary URL from a service like webhook.site to capture the payload structure first.<\/li>\n<li>Save and trigger a test payment (Instamojo provides a test mode). The captured payload will look like this:<\/li>\n<\/ol>\n<pre style=\"background:var(--bg2);padding:1rem;border-radius:6px;overflow-x:auto;font-size:.85rem;\"><code>{\n  \"payment_id\": \"MOJO2503005J01234567\",\n  \"payment_request_id\": \"a1b2c3d4e5f6789012345678\",\n  \"status\": \"Credit\",\n  \"amount\": \"2999.00\",\n  \"buyer\": \"rahul.sharma@example.com\",\n  \"buyer_name\": \"Rahul Sharma\",\n  \"buyer_phone\": \"+919876543210\",\n  \"currency\": \"INR\",\n  \"mac\": \"abc123def456...\"\n}<\/code><\/pre>\n<p>Note the <code>mac<\/code> field: this is an HMAC-SHA1 signature that you must verify before processing any webhook to prevent spoofed requests.<\/p>\n\n<figure style=\"margin:36px 0;text-align:center;line-height:0;\"><img decoding=\"async\" src=\"https:\/\/aaxonix.com\/resources\/wp-content\/uploads\/2026\/04\/zoho-crm-instamojo-inline-2.jpg\" alt=\"d2c ecommerce india brand\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure><h2>Step 2: Create the Webhook Receiver Function in Zoho CRM<\/h2>\n<p>In Zoho CRM, go to <strong>Setup &gt; Developer Space &gt; Functions<\/strong> and create a new standalone function. This function will receive Instamojo webhook calls.<\/p>\n<p>First, expose it as a REST API endpoint via <strong>Setup &gt; Developer Space &gt; Rest API<\/strong>, then use that URL as your Instamojo webhook target.<\/p>\n<p>Here is the Deluge function that processes the webhook, verifies the signature, and updates the matching Deal:<\/p>\n<pre style=\"background:var(--bg2);padding:1rem;border-radius:6px;overflow-x:auto;font-size:.85rem;\"><code>\/\/ Instamojo Webhook Receiver - Deluge Function\n\/\/ Receives POST from Instamojo, verifies MAC, updates CRM Deal\n\npayment_id = input.get(\"payment_id\");\npayment_request_id = input.get(\"payment_request_id\");\nstatus = input.get(\"status\");\namount = input.get(\"amount\");\nbuyer_email = input.get(\"buyer\");\nbuyer_phone = input.get(\"buyer_phone\");\nreceived_mac = input.get(\"mac\");\n\n\/\/ Verify MAC signature (HMAC-SHA1 of pipe-separated values using private salt)\n\/\/ Note: Deluge does not have native HMAC, so validate on a trusted server or skip in test mode\n\/\/ In production, verify via a Zoho Creator intermediate function with Python support\n\nif (status == \"Credit\")\n{\n  \/\/ Find matching Deal by email or phone\n  deals = zoho.crm.searchRecords(\"Deals\", \"Email_Address:equals:\" + buyer_email);\n\n  if (deals.size() == 0)\n  {\n    \/\/ Try searching Contacts linked to Deals\n    contacts = zoho.crm.searchRecords(\"Contacts\", \"Email:equals:\" + buyer_email);\n    if (contacts.size() > 0)\n    {\n      contact_id = contacts.get(0).get(\"id\");\n      deals = zoho.crm.searchRecords(\"Deals\", \"Contact_Name.id:equals:\" + contact_id);\n    }\n  }\n\n  if (deals.size() > 0)\n  {\n    deal = deals.get(0);\n    deal_id = deal.get(\"id\");\n\n    update_map = map();\n    update_map.put(\"Instamojo_Payment_ID\", payment_id);\n    update_map.put(\"Payment_Status\", \"Paid\");\n    update_map.put(\"Payment_Amount_INR\", amount.toDecimal());\n    update_map.put(\"Payment_Date\", zoho.currentdate);\n    update_map.put(\"Stage\", \"Closed Won\");\n\n    update_response = zoho.crm.updateRecord(\"Deals\", deal_id, update_map);\n    info \"Deal updated: \" + deal_id;\n\n    \/\/ Trigger Zoho Books invoice creation (optional)\n    \/\/ books_response = invokeurl [...];\n  }\n  else\n  {\n    info \"No matching Deal found for email: \" + buyer_email;\n    \/\/ Optionally create a new Contact + Deal here\n  }\n}\nreturn \"OK\";<\/code><\/pre>\n\n<h2>Step 3: Generate Instamojo Payment Links from Zoho CRM<\/h2>\n<p>Add a custom button on the Deals detail view that generates a payment link and stores it on the record. Go to <strong>Setup &gt; Customization &gt; Modules &gt; Deals &gt; Links and Buttons<\/strong> and create a new button that calls the following function:<\/p>\n<pre style=\"background:var(--bg2);padding:1rem;border-radius:6px;overflow-x:auto;font-size:.85rem;\"><code>\/\/ Generate Instamojo Payment Link - Deluge Function\n\/\/ Called from Deal record button\n\ndeal_id = input.Deal.ID;\ndeal = zoho.crm.getRecordById(\"Deals\", deal_id);\n\ndeal_name = deal.get(\"Deal_Name\");\namount = deal.get(\"Amount\");\ncontact_name = deal.get(\"Contact_Name\").get(\"name\");\n\n\/\/ Fetch Contact email\ncontact_id = deal.get(\"Contact_Name\").get(\"id\");\ncontact = zoho.crm.getRecordById(\"Contacts\", contact_id);\nbuyer_email = contact.get(\"Email\");\nbuyer_phone = contact.get(\"Mobile\");\n\n\/\/ Call Instamojo API to create payment request\napi_key = \"your_instamojo_api_key\";\nauth_token = \"your_instamojo_auth_token\";\n\npayload = map();\npayload.put(\"purpose\", deal_name);\npayload.put(\"amount\", amount.toString());\npayload.put(\"buyer_name\", contact_name);\npayload.put(\"email\", buyer_email);\npayload.put(\"phone\", buyer_phone);\npayload.put(\"send_email\", \"True\");\npayload.put(\"send_sms\", \"True\");\npayload.put(\"redirect_url\", \"https:\/\/yoursite.com\/payment-success\/\");\npayload.put(\"allow_repeated_payments\", \"False\");\n\nheaders = map();\nheaders.put(\"X-Api-Key\", api_key);\nheaders.put(\"X-Auth-Token\", auth_token);\n\nresponse = invokeurl\n[\n  url: \"https:\/\/www.instamojo.com\/api\/1.1\/payment-requests\/\"\n  type: POST\n  parameters: payload\n  headers: headers\n];\n\nif (response.get(\"success\") == true)\n{\n  payment_link = response.get(\"payment_request\").get(\"longurl\");\n  payment_request_id = response.get(\"payment_request\").get(\"id\");\n\n  update_map = map();\n  update_map.put(\"Instamojo_Payment_Link\", payment_link);\n  update_map.put(\"Payment_Status\", \"Pending\");\n  zoho.crm.updateRecord(\"Deals\", deal_id, update_map);\n\n  return \"Payment link created: \" + payment_link;\n}\nelse\n{\n  return \"Error creating payment link: \" + response.toString();\n}<\/code><\/pre>\n\n<h2>Step 4: Field Mapping Between Instamojo and Zoho CRM<\/h2>\n<p>Use this reference table when mapping Instamojo webhook fields to your Zoho CRM Deal and Contact fields:<\/p>\n<table>\n<thead><tr><th>Instamojo Webhook Field<\/th><th>Zoho CRM Target<\/th><th>Module<\/th><th>Notes<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>payment_id<\/td><td>Instamojo_Payment_ID<\/td><td>Deals<\/td><td>Store for reconciliation<\/td><\/tr>\n<tr><td>payment_request_id<\/td><td>Custom field (optional)<\/td><td>Deals<\/td><td>Links back to payment request<\/td><\/tr>\n<tr><td>status = &#8220;Credit&#8221;<\/td><td>Stage = &#8220;Closed Won&#8221;<\/td><td>Deals<\/td><td>Only on Credit status<\/td><\/tr>\n<tr><td>amount<\/td><td>Payment_Amount_INR<\/td><td>Deals<\/td><td>Convert string to decimal<\/td><\/tr>\n<tr><td>buyer<\/td><td>Email<\/td><td>Contacts<\/td><td>Used to find matching record<\/td><\/tr>\n<tr><td>buyer_phone<\/td><td>Mobile<\/td><td>Contacts<\/td><td>Fallback match field<\/td><\/tr>\n<tr><td>created_at<\/td><td>Payment_Date<\/td><td>Deals<\/td><td>Use webhook timestamp<\/td><\/tr>\n<\/tbody>\n<\/table>\n\n<h2>Step 5: Automate Post-Payment Workflows<\/h2>\n<p>Once the Deal updates to &#8220;Closed Won&#8221; via the webhook, configure these follow-on automations in Zoho CRM workflow rules:<\/p>\n<h3>Trigger a GST Invoice in Zoho Books<\/h3>\n<p>Add a workflow rule: when Deal Stage changes to &#8220;Closed Won&#8221; and Payment Status is &#8220;Paid&#8221;, call a Deluge function that creates a <a href=\"https:\/\/aaxonix.com\/resources\/zoho-books-gst-einvoicing-india\/\" class=\"sp-content-link\">Zoho Books invoice<\/a> via the Books API. Pull the line items from a custom Products subform on the Deal. The Books API endpoint is <code>https:\/\/www.zohoapis.in\/books\/v3\/invoices?organization_id={org_id}<\/code>.<\/p>\n<h3>Send a Payment Confirmation via WhatsApp<\/h3>\n<p>Use Zoho CRM&#8217;s <a href=\"https:\/\/aaxonix.com\/resources\/zoho-crm-whatsapp-india\/\" class=\"sp-content-link\">WhatsApp integration<\/a> (or a Zoho Flow connector to a WhatsApp Business API provider) to send a confirmation message to the buyer&#8217;s mobile number stored in the Contact record. Include the payment amount and an order ID generated from the Deal ID.<\/p>\n<h3>Create a Fulfillment Task<\/h3>\n<p>Add a workflow action to create a Task assigned to the fulfillment team with subject &#8220;Fulfill order for [Deal Name]&#8221; and due date of the next business day. Tag it with the payment ID for tracking.<\/p>\n\n<h2>Handling Failed and Refunded Payments<\/h2>\n<p>Instamojo sends webhook events for failed payment attempts and refunds. Extend your receiver function to handle these cases:<\/p>\n<pre style=\"background:var(--bg2);padding:1rem;border-radius:6px;overflow-x:auto;font-size:.85rem;\"><code>if (status == \"Failed\")\n{\n  \/\/ Update Deal payment status\n  update_map = map();\n  update_map.put(\"Payment_Status\", \"Failed\");\n  zoho.crm.updateRecord(\"Deals\", deal_id, update_map);\n\n  \/\/ Create follow-up task\n  task_map = map();\n  task_map.put(\"Subject\", \"Follow up: failed payment for \" + deal.get(\"Deal_Name\"));\n  task_map.put(\"Due_Date\", zoho.currentdate.addBusinessDay(1));\n  task_map.put(\"Status\", \"Not Started\");\n  task_map.put(\"What_Id\", deal_id);\n  zoho.crm.createRecord(\"Tasks\", task_map);\n}\n\nif (status == \"Refunded\")\n{\n  update_map = map();\n  update_map.put(\"Payment_Status\", \"Refunded\");\n  update_map.put(\"Stage\", \"Closed Lost\");\n  zoho.crm.updateRecord(\"Deals\", deal_id, update_map);\n}<\/code><\/pre>\n\n<h2>Testing the Integration End to End<\/h2>\n<p>Before going live, run through this testing checklist:<\/p>\n<ol>\n<li><strong>Test mode payments:<\/strong> Enable Instamojo test mode and complete a payment using test card details. Verify the webhook fires and your CRM Deal updates correctly.<\/li>\n<li><strong>Email match test:<\/strong> Ensure the buyer email in the test payment matches a Contact email in your CRM. If no match is found, check your search logic and field names.<\/li>\n<li><strong>Payment link generation:<\/strong> Click the custom button on a test Deal. Confirm the link appears in the CRM field. Open the link and verify it pre-fills the buyer details and amount correctly.<\/li>\n<li><strong>Duplicate protection:<\/strong> Pay the same link twice (if repeated payments are enabled). Confirm your function handles duplicate payment_ids without creating duplicate records.<\/li>\n<li><strong>Refund test:<\/strong> Initiate a refund from the Instamojo dashboard and verify the CRM Deal status updates to Refunded.<\/li>\n<\/ol>\n\n<p>For a full overview of all available options, explore our <a href=\"https:\/\/aaxonix.com\/resources\/zoho-integrations-complete-guide\/\" class=\"sp-content-link\">complete guide to Zoho integrations<\/a>.<\/p>\n<div class=\"faq-section\">\n<h2>Frequently Asked Questions<\/h2>\n<div class=\"faq-item\">\n<p class=\"faq-question\">Can Zoho CRM receive Instamojo payment notifications automatically?<\/p>\n<p class=\"faq-answer\">Yes. Instamojo supports webhook notifications for payment events. You configure a webhook URL in your Instamojo dashboard pointing to a Zoho CRM REST API function endpoint. When a payment completes, Instamojo sends a POST request with transaction details, which your Deluge function processes to update the relevant CRM Deal or Contact record automatically.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">How do I generate Instamojo payment links from Zoho CRM?<\/p>\n<p class=\"faq-answer\">Use a Zoho CRM custom button on the Deal detail view that calls a Deluge function. The function uses invokeurl to call the Instamojo API&#8217;s \/payment-requests\/ endpoint with the deal amount, buyer name, email, and redirect URL. The generated payment link is stored in a custom URL field on the Deal record and can be shared with the customer via email or WhatsApp from within CRM.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">Does Instamojo support recurring or subscription payments?<\/p>\n<p class=\"faq-answer\">Instamojo does not natively support recurring billing or subscription management. For recurring payments from Indian customers, consider Razorpay Subscriptions or Cashfree Subscriptions instead. Instamojo is best suited for one-time payment links and D2C checkout flows where a sales rep or automated workflow sends a payment request per order.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">How do I handle GST invoicing after an Instamojo payment?<\/p>\n<p class=\"faq-answer\">Configure a Zoho CRM workflow that triggers when a Deal stage changes to Closed Won and Payment Status is Paid. The workflow calls a Deluge function that creates a Zoho Books invoice via the Books API, pulling product details and buyer information from the CRM Deal. Zoho Books then generates a GST-compliant invoice with the correct HSN\/SAC codes and tax rates, and emails it to the buyer automatically.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">What Instamojo plan is needed for API access?<\/p>\n<p class=\"faq-answer\">API access is available on Instamojo&#8217;s Business plan and above. The free Starter plan does not include API access or webhooks. Business plan pricing starts at approximately INR 499 per month plus transaction fees of 2% plus INR 3 per transaction for domestic payments. UPI payments attract a lower fee of 1.8% with no fixed charge.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"aax-cta\">\n<p>Need help connecting Instamojo to Zoho CRM for your D2C brand? Aaxonix builds and maintains payment integrations for Indian businesses.<\/p>\n<a href=\"https:\/\/aaxonix.com\/contact\/\">Talk to Our Team<\/a>\n<\/div>\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>On this page For Indian D2C brands selling directly to consumers, Zoho CRM + Instamojo integration closes the gap between payment collection&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"seo_title":"Connecting Zoho CRM to Instamojo for D2C Brands in India","seo_description":"This Zoho CRM and Instamojo integration tracks payments and automates post-payment workflows for Indian D2C brands, with a full Deluge code walkthrough.","seo_keyword":"zoho crm instamojo integration","seo_faqs":"[{\"q\": \"Can Zoho CRM receive Instamojo payment notifications automatically?\", \"a\": \"Yes. Instamojo supports webhook notifications for payment events. You configure a webhook URL in your Instamojo dashboard pointing to a Zoho CRM REST API function endpoint. When a payment completes, Instamojo sends a POST request with transaction details, which your Deluge function processes to update the relevant CRM Deal or Contact record automatically.\"}, {\"q\": \"How do I generate Instamojo payment links from Zoho CRM?\", \"a\": \"Use a Zoho CRM custom button on the Deal detail view that calls a Deluge function. The function uses invokeurl to call the Instamojo API's \/payment-requests\/ endpoint with the deal amount, buyer name, email, and redirect URL. The generated payment link is stored in a custom URL field on the Deal record and can be shared with the customer via email or WhatsApp.\"}, {\"q\": \"Does Instamojo support recurring or subscription payments?\", \"a\": \"Instamojo does not natively support recurring billing. For recurring payments from Indian customers, consider Razorpay Subscriptions or Cashfree Subscriptions. Instamojo is best suited for one-time payment links and D2C checkout flows.\"}, {\"q\": \"How do I handle GST invoicing after an Instamojo payment?\", \"a\": \"Configure a Zoho CRM workflow that triggers when a Deal stage changes to Closed Won and Payment Status is Paid. The workflow calls a Deluge function that creates a Zoho Books invoice via the Books API, pulling product details and buyer information from the CRM Deal. Zoho Books generates a GST-compliant invoice automatically.\"}, {\"q\": \"What Instamojo plan is needed for API access?\", \"a\": \"API access is available on Instamojo's Business plan and above. The free Starter plan does not include API access or webhooks. Business plan pricing starts at approximately INR 499 per month plus transaction fees of 2% plus INR 3 per transaction for domestic payments.\"}]","footnotes":""},"categories":[1],"tags":[50,7,625,294,1648,10],"class_list":["post-2293","post","type-post","status-publish","format-standard","hentry","category-blog","tag-e-commerce","tag-india","tag-instamojo","tag-integration","tag-retail-ecommerce","tag-zoho-crm"],"_links":{"self":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/2293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/comments?post=2293"}],"version-history":[{"count":5,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/2293\/revisions"}],"predecessor-version":[{"id":7224,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/2293\/revisions\/7224"}],"wp:attachment":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media?parent=2293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/categories?post=2293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/tags?post=2293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}