{"id":2187,"date":"2026-04-29T10:00:00","date_gmt":"2026-04-29T10:00:00","guid":{"rendered":"https:\/\/aaxonix.com\/resources\/?p=2187"},"modified":"2026-03-31T06:21:43","modified_gmt":"2026-03-31T06:21:43","slug":"zoho-creator-razorpay-payment-portal-india","status":"publish","type":"post","link":"https:\/\/aaxonix.com\/resources\/zoho-creator-razorpay-payment-portal-india\/","title":{"rendered":"Zoho Creator and Razorpay Integration: Build a Custom Payment Collection Portal for Indian Businesses"},"content":{"rendered":"<style>\n.aax-post{font-family:'Poppins',sans-serif;color:#1a2332;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:#1a2332}\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:#f5f7fb}\n.aax-post .faq-section{background:#f5f7fb;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:#3a4a5c;line-height:1.65}\n.aax-post .aax-cta{background:linear-gradient(135deg,#0a1628 0%,#1a3a5c 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.aax-post pre{background:#0a1628;color:#e8edf4;padding:1.2rem 1.5rem;border-radius:8px;overflow-x:auto;font-size:.88rem;line-height:1.6;margin:1.2rem 0}\n.aax-post code{font-family:'DM Mono',monospace;font-size:.88rem}\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>Collecting payments through a custom portal is a common requirement for Indian businesses running training programmes, membership services, event registrations, or subscription-based products. Zoho Creator combined with Razorpay gives you a way to build a fully branded payment collection portal without writing a separate web application. The <a href=\"https:\/\/aaxonix.com\/products\/zoho-creator\/\" class=\"sp-content-link\">Zoho Creator low-code platform<\/a> handles form design, business logic, and record management, while Razorpay processes payments across UPI, cards, netbanking, and wallets. This guide walks through the complete Zoho Creator Razorpay integration, from Razorpay account setup through GST-compliant receipt generation, with working Deluge code you can deploy in your own Creator applications.<\/p>\n\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\/03\/inline_zoho_creator_razorpay_payment_portal_india_1.jpg\" alt=\"Hands making an online purchase using a tablet and credit card on a wooden table.\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure>\n<h2>Why Zoho Creator and Razorpay Work Well Together for Indian Payments<\/h2>\n\n<p>Razorpay processes over 300 million transactions per year across Indian businesses and supports every major payment method used in India: UPI (including UPI AutoPay for recurring charges), credit and debit cards, netbanking across 50+ banks, and wallets like Paytm, PhonePe, and Amazon Pay. Zoho Creator connects to Razorpay through Zoho Checkout, which handles PCI DSS compliance and tokenisation so your Creator application never touches raw card data.<\/p>\n\n<p>The combination matters for three reasons. First, Creator lets you build forms and workflows that match your exact business process, not a generic checkout page. Second, Razorpay&#8217;s webhook system pushes real-time payment confirmations back into Creator, so your records update the moment a payment succeeds or fails. Third, both platforms support INR natively with GST-aware invoicing, which means you can generate compliant receipts without a third-party accounting tool.<\/p>\n\n<p>Compared to embedding a standalone Razorpay payment link on a website, the Creator approach gives you a single system for collecting the payment, storing customer data, triggering follow-up actions (email confirmations, access provisioning, record updates), and generating GST invoices, all within one application.<\/p>\n\n<h2>Prerequisites: Razorpay Account and Zoho Creator Setup<\/h2>\n\n<p>Before building the payment portal, you need both accounts configured correctly.<\/p>\n\n<h3>Razorpay Account Setup<\/h3>\n\n<ol>\n<li>Sign up at <a href=\"https:\/\/razorpay.com\/docs\/payments\/payment-gateway\/\" target=\"_blank\" rel=\"noopener noreferrer\">Razorpay&#8217;s payment gateway platform<\/a> and complete KYC verification (PAN, GST certificate, bank account details). Approval typically takes 2-3 business days for Indian businesses.<\/li>\n<li>Once activated, note your Key ID and Key Secret from the Razorpay Dashboard under Settings > API Keys. You will need both for the Zoho Checkout configuration.<\/li>\n<li>If you plan to accept international payments (foreign cards, PayPal), contact Razorpay support to enable the international payments feature on your account. Settlements will still happen in INR.<\/li>\n<li>Set your GST number in Razorpay Dashboard under Settings > GST Details. This ensures Razorpay&#8217;s invoices for transaction fees include your GSTIN, allowing you to claim input tax credit.<\/li>\n<\/ol>\n\n<h3>Zoho Creator Configuration<\/h3>\n\n<ol>\n<li>Log into Zoho Creator as the super admin (only the owner account can configure payment gateways).<\/li>\n<li>Navigate to Settings > Zoho Checkout > Set up a payment gateway, following the <a href=\"https:\/\/www.zoho.com\/creator\/newhelp\/account-setup\/payment-gateway.html\" target=\"_blank\" rel=\"noopener noreferrer\">Zoho Creator payment gateway documentation<\/a>.<\/li>\n<li>Select Razorpay, and you will be redirected to Razorpay&#8217;s authorisation page. Log in with the same email used for your Razorpay account and click Authorize.<\/li>\n<li>Once authorised, Razorpay shows as Active in your Zoho Checkout configuration.<\/li>\n<\/ol>\n\n<p>The email address on your Zoho account and Razorpay account must match. If they differ, the OAuth handshake will fail silently.<\/p>\n\n<h2>Designing the Creator Payment Collection Form<\/h2>\n\n<p>A well-structured Creator form collects customer details and payment information in a single step. Here is a recommended form structure for a typical Indian payment portal.<\/p>\n\n<table>\n<tr><th>Field Name<\/th><th>Field Type<\/th><th>Purpose<\/th><\/tr>\n<tr><td>Customer Name<\/td><td>Name<\/td><td>Full name for receipt and records<\/td><\/tr>\n<tr><td>Email<\/td><td>Email<\/td><td>Payment confirmation delivery<\/td><\/tr>\n<tr><td>Phone<\/td><td>Phone<\/td><td>SMS notifications, UPI fallback<\/td><\/tr>\n<tr><td>Service\/Product<\/td><td>Dropdown<\/td><td>Links to pricing lookup<\/td><\/tr>\n<tr><td>Amount (INR)<\/td><td>Currency<\/td><td>Auto-populated from service selection<\/td><\/tr>\n<tr><td>GSTIN (Optional)<\/td><td>Single Line<\/td><td>For B2B invoices with GST breakup<\/td><\/tr>\n<tr><td>Payment Status<\/td><td>Dropdown<\/td><td>Pending \/ Paid \/ Failed \/ Refunded<\/td><\/tr>\n<tr><td>Razorpay Payment ID<\/td><td>Single Line<\/td><td>Populated via webhook on success<\/td><\/tr>\n<tr><td>Transaction Date<\/td><td>Date-Time<\/td><td>Auto-set on payment confirmation<\/td><\/tr>\n<\/table>\n\n<p>Set the Payment Status field default to &#8220;Pending&#8221; and make it read-only for end users. The Razorpay Payment ID and Transaction Date fields should be hidden on the public form and populated only through workflow automation.<\/p>\n\n<p>Use a Deluge on-change script on the Service\/Product dropdown to auto-calculate the amount including GST:<\/p>\n\n<pre><code>\/\/ On change of Service dropdown\nserviceRate = ifnull(input.Service_Product.lookup(\"decimal\",\"Rate\"), 0.00);\ngstRate = 0.18; \/\/ 18% GST for most services\ngstAmount = serviceRate * gstRate;\ntotalAmount = serviceRate + gstAmount;\ninput.Amount_INR = totalAmount;<\/code><\/pre>\n\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\/03\/inline_zoho_creator_razorpay_payment_portal_india_2.jpg\" alt=\"Person's hand holding a company invoice on a clipboard with a pen.\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure>\n<h2>Configuring the Payment Workflow in Zoho Creator<\/h2>\n\n<p>Zoho Creator uses Zoho Checkout as the payment processing layer. You do not embed Checkout.js directly into Creator forms. Instead, you create a payment workflow that triggers when a form is submitted.<\/p>\n\n<h3>Creating the Payment Workflow<\/h3>\n\n<ol>\n<li>Open your Creator application and go to Workflow > Payment.<\/li>\n<li>Select the form you created (e.g., Payment Collection Form).<\/li>\n<li>Set the trigger to &#8220;On Submit&#8221; or &#8220;On Approval&#8221; depending on your process.<\/li>\n<li>Map the Amount field to the payment amount. Zoho Checkout will generate a Razorpay payment page with this amount.<\/li>\n<li>Configure the success and failure redirect URLs. These can point back to Creator pages that display confirmation or error messages.<\/li>\n<\/ol>\n\n<p>When a customer submits the form, Creator redirects them to a Razorpay-hosted checkout page. After payment, Razorpay redirects the customer back to your Creator application with the payment status. The entire PCI compliance burden stays with Razorpay and Zoho Checkout.<\/p>\n\n<h3>Handling the Payment Response<\/h3>\n\n<p>After Razorpay processes the payment, the response flows back into Creator. Use a Deluge script in the payment workflow&#8217;s success handler to update records:<\/p>\n\n<pre><code>\/\/ Payment success handler\npaymentId = zoho.checkout.getPaymentId();\norderId = zoho.checkout.getOrderId();\n\n\/\/ Update the record\nupdate Payment_Collection\n[\n  Payment_Status = \"Paid\",\n  Razorpay_Payment_ID = paymentId,\n  Transaction_Date = zoho.currenttime\n]\nwhere ID == input.ID;\n\n\/\/ Send confirmation email\nsendmail\n[\n  from: zoho.adminuserid\n  to: input.Email\n  subject: \"Payment Confirmed - \" + input.Service_Product\n  message: \"Dear \" + input.Customer_Name + \",<br><br>Your payment of INR \" + input.Amount_INR + \" has been received. Payment ID: \" + paymentId + \"<br><br>Thank you.\"\n];<\/code><\/pre>\n\n<h2>Razorpay Webhook Integration for Real-Time Updates<\/h2>\n\n<p>The redirect-based flow works for most cases, but webhooks provide a more reliable confirmation mechanism. If a customer closes the browser after paying but before the redirect completes, the webhook still delivers the payment status to your Creator application.<\/p>\n\n<h3>Setting Up the Webhook<\/h3>\n\n<ol>\n<li>In your Razorpay Dashboard, go to Settings > Webhooks > Add New Webhook.<\/li>\n<li>Set the webhook URL to your Creator API endpoint. You can create a custom API in Creator under Settings > Developer Space > APIs.<\/li>\n<li>Select the events: <code>payment.captured<\/code>, <code>payment.failed<\/code>, and <code>refund.processed<\/code>.<\/li>\n<li>Set a webhook secret for signature verification.<\/li>\n<\/ol>\n\n<h3>Creator API to Receive Webhooks<\/h3>\n\n<p>Create a custom <a href=\"https:\/\/aaxonix.com\/resources\/zoho-crm-api-webhooks-india\/\" class=\"sp-content-link\">API endpoint using Zoho&#8217;s webhook capabilities<\/a> in Creator to process incoming Razorpay events:<\/p>\n\n<pre><code>\/\/ Custom API: razorpay_webhook (POST)\npayload = zoho.request.getBodyAsString();\njsonPayload = payload.toMap();\n\neventType = jsonPayload.get(\"event\");\npaymentEntity = jsonPayload.get(\"payload\").get(\"payment\").get(\"entity\");\nrazorpayPaymentId = paymentEntity.get(\"id\");\namount = paymentEntity.get(\"amount\") \/ 100; \/\/ Razorpay sends amount in paise\nstatus = paymentEntity.get(\"status\");\n\nif(eventType == \"payment.captured\")\n{\n  \/\/ Find and update the record\n  records = Payment_Collection[Razorpay_Payment_ID == razorpayPaymentId];\n  if(records.count() > 0)\n  {\n    rec = records.first();\n    rec.Payment_Status = \"Paid\";\n    rec.Transaction_Date = zoho.currenttime;\n  }\n}\nelse if(eventType == \"payment.failed\")\n{\n  records = Payment_Collection[Amount_INR == amount && Payment_Status == \"Pending\"];\n  if(records.count() > 0)\n  {\n    rec = records.first();\n    rec.Payment_Status = \"Failed\";\n  }\n}<\/code><\/pre>\n\n<p>Always verify the webhook signature before processing. Razorpay signs each webhook payload with your webhook secret using HMAC SHA256. Compare the signature from the <code>X-Razorpay-Signature<\/code> header against your computed hash to prevent spoofed requests.<\/p>\n\n<h2>GST-Compliant Receipt Generation<\/h2>\n\n<p>Indian businesses registered under GST must issue tax invoices or receipts that include specific fields per the <a href=\"https:\/\/www.gst.gov.in\/\" target=\"_blank\" rel=\"noopener noreferrer\">GST Council requirements<\/a>: GSTIN of the supplier, HSN\/SAC code, place of supply, and CGST\/SGST or IGST breakup depending on whether the transaction is intra-state or inter-state.<\/p>\n\n<p>In Zoho Creator, you can generate GST-compliant receipts using the Document Builder or through a <a href=\"https:\/\/aaxonix.com\/resources\/gst-returns-zoho-books-guide\/\" class=\"sp-content-link\">Zoho Books integration for GST returns<\/a> and invoicing. Here is a Deluge script that generates a receipt record with the correct GST breakup:<\/p>\n\n<pre><code>\/\/ After payment confirmation\nsupplierState = \"Maharashtra\"; \/\/ Your business state\ncustomerState = input.State;\nbaseAmount = input.Amount_INR \/ 1.18; \/\/ Reverse-calculate base from GST-inclusive amount\ngstAmount = input.Amount_INR - baseAmount;\n\nif(customerState == supplierState)\n{\n  cgst = gstAmount \/ 2;\n  sgst = gstAmount \/ 2;\n  igst = 0;\n  gstType = \"CGST + SGST\";\n}\nelse\n{\n  cgst = 0;\n  sgst = 0;\n  igst = gstAmount;\n  gstType = \"IGST\";\n}\n\n\/\/ Create receipt record\ninsert into Payment_Receipts\n[\n  Receipt_Number = \"RCP-\" + zoho.currenttime.toString(\"yyyyMMdd-HHmmss\"),\n  Customer_Name = input.Customer_Name,\n  Customer_GSTIN = input.GSTIN,\n  Base_Amount = baseAmount,\n  CGST = cgst,\n  SGST = sgst,\n  IGST = igst,\n  Total_Amount = input.Amount_INR,\n  HSN_SAC_Code = \"998314\", \/\/ Example SAC for IT services\n  Place_of_Supply = customerState,\n  Payment_ID = input.Razorpay_Payment_ID,\n  Receipt_Date = zoho.currenttime\n];<\/code><\/pre>\n\n<p>For businesses processing high volumes, connect Creator to <a href=\"https:\/\/aaxonix.com\/resources\/zoho-razorpay-integration-india\/\" class=\"sp-content-link\">Zoho Books via the Razorpay integration<\/a> to automate invoice creation and GST filing. This avoids maintaining separate receipt logic in Creator for complex multi-product catalogues.<\/p>\n\n<h2>Handling Refunds and Failed Payments<\/h2>\n\n<p>Refund processing requires both a Razorpay API call and a Creator record update. You can trigger refunds from within your Creator application using Deluge&#8217;s <code>invokeurl<\/code> task:<\/p>\n\n<pre><code>\/\/ Initiate refund via Razorpay API\npaymentId = input.Razorpay_Payment_ID;\nrefundAmount = input.Amount_INR * 100; \/\/ Convert to paise\n\nresponse = invokeurl\n[\n  url: \"https:\/\/api.razorpay.com\/v1\/payments\/\" + paymentId + \"\/refund\"\n  type: POST\n  parameters: {\"amount\": refundAmount}\n  headers: {\"Content-Type\": \"application\/json\"}\n  connection: \"razorpay_connection\" \/\/ OAuth connection configured in Creator\n];\n\nif(response.get(\"id\") != null)\n{\n  input.Payment_Status = \"Refunded\";\n  input.Refund_ID = response.get(\"id\");\n}\nelse\n{\n  input.Payment_Status = \"Refund Failed\";\n}<\/code><\/pre>\n\n<p>For failed payments, build a retry mechanism. Send the customer a new payment link through Deluge&#8217;s sendmail task with a Creator form URL pre-filled with their details. Set an automated reminder workflow that triggers 24 hours after a failed payment if the status has not changed to &#8220;Paid&#8221;.<\/p>\n\n<p>Razorpay retains failed payment attempts for 30 days, so you can cross-reference failure reasons (insufficient funds, bank decline, OTP timeout) from the Razorpay Dashboard to identify patterns and adjust your payment flow accordingly.<\/p>\n\n<h2>Testing Your Payment Portal Before Go-Live<\/h2>\n\n<p>Razorpay provides a Test Mode with separate API keys that simulate transactions without moving real money. Follow this testing checklist before switching to Live Mode:<\/p>\n\n<ol>\n<li>Toggle to Test Mode in the Razorpay Dashboard and generate test API keys.<\/li>\n<li>Configure Zoho Checkout with the test keys (you will need to reconfigure with live keys before launch).<\/li>\n<li>Submit a test payment using Razorpay&#8217;s test card numbers (e.g., 4111 1111 1111 1111 for Visa).<\/li>\n<li>Verify that the Creator record updates to &#8220;Paid&#8221; with the correct Razorpay Payment ID.<\/li>\n<li>Test the webhook by triggering a <code>payment.captured<\/code> event from the Razorpay Dashboard&#8217;s webhook testing tool.<\/li>\n<li>Test a failed payment scenario (use a test card that declines) and confirm the Creator record reflects &#8220;Failed&#8221;.<\/li>\n<li>Generate a test receipt and verify GST breakup calculations (CGST\/SGST for same-state, IGST for different state).<\/li>\n<li>Test the refund flow and confirm the Creator record updates to &#8220;Refunded&#8221;.<\/li>\n<\/ol>\n\n<p>Once all tests pass, switch to Live Mode by updating the API keys in both Razorpay Dashboard and Zoho Checkout configuration. Process one real transaction with a small amount (INR 1 or INR 10) to confirm the live integration works end-to-end.<\/p>\n\n<h2>Scaling the Portal: Multi-Product Catalogues and Recurring Payments<\/h2>\n\n<p>The basic single-form setup works for simple payment collection. For businesses with multiple products, variable pricing, or subscription billing, extend the Creator application with these patterns.<\/p>\n\n<p>For multi-product catalogues, create a Products form in Creator with fields for product name, base price, GST rate, and HSN\/SAC code. Link it to the payment form via a lookup field. The on-change Deluge script then pulls pricing dynamically from the Products table instead of hardcoding rates.<\/p>\n\n<p>For recurring payments, use Razorpay Subscriptions API instead of one-time payment orders. Creator can store the subscription ID returned by Razorpay and track renewal dates. Configure <a href=\"https:\/\/aaxonix.com\/resources\/zoho-flow-automation-india\/\" class=\"sp-content-link\">Zoho Flow automation workflows<\/a> to handle subscription lifecycle events (renewal success, payment failure, cancellation) by connecting Razorpay triggers to Creator actions.<\/p>\n\n<p>For high-volume portals processing over 500 transactions per day, consider adding a cloud storage integration for receipt archival and implementing batch reconciliation scripts that run nightly to match Creator records against Razorpay settlement reports.<\/p>\n\n<div class=\"faq-section\">\n<h2>Frequently Asked Questions<\/h2>\n<div class=\"faq-item\">\n<p class=\"faq-question\">What payment methods does Razorpay support when integrated with Zoho Creator?<\/p>\n<p class=\"faq-answer\">Razorpay supports UPI (including UPI AutoPay), credit cards, debit cards, netbanking across 50+ Indian banks, and wallets including Paytm, PhonePe, and Amazon Pay. International cards (Visa, Mastercard) are also supported if you enable the international payments feature on your Razorpay account. All settlements happen in INR regardless of the payment method used.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">How much does the Zoho Creator and Razorpay integration cost?<\/p>\n<p class=\"faq-answer\">Razorpay charges 2% per transaction for domestic payments and 3% for international payments, with no setup fee. Zoho Creator pricing starts at INR 1,000 per user per month on the Standard plan. The Zoho Checkout layer that connects Creator to Razorpay is included in your Creator subscription at no additional cost. You can claim GST input tax credit on Razorpay&#8217;s transaction fees if your business is GST-registered.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">Can I generate GST-compliant invoices directly from Zoho Creator after a Razorpay payment?<\/p>\n<p class=\"faq-answer\">Yes. You can use Zoho Creator&#8217;s Document Builder or Deluge scripting to generate receipts with GSTIN, HSN\/SAC codes, place of supply, and the correct CGST\/SGST or IGST breakup. For businesses needing full invoicing and GST return filing, connecting Creator to Zoho Books provides automated invoice creation, GST computation, and GSTR-1\/GSTR-3B filing support.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">Is the Zoho Creator Razorpay integration PCI DSS compliant?<\/p>\n<p class=\"faq-answer\">Yes. Zoho Checkout acts as an intermediary that processes payments without exposing card data to your Creator application. Razorpay is PCI DSS Level 1 certified, the highest level of payment security compliance. Your Creator forms never handle or store raw card numbers, CVVs, or bank credentials, so you do not need separate PCI certification for your application.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<p class=\"faq-question\">How do I handle refunds through the Zoho Creator payment portal?<\/p>\n<p class=\"faq-answer\">Initiate refunds programmatically using Deluge&#8217;s invokeurl task to call the Razorpay Refunds API, passing the original Razorpay Payment ID and refund amount in paise. Razorpay processes refunds within 5-7 business days for card payments and 2-3 days for UPI. Update the Creator record status to &#8220;Refunded&#8221; once the API confirms the refund, and generate a credit note for GST adjustment.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"aax-cta\">\n<p>Aaxonix builds custom Zoho Creator payment portals for Indian businesses, handling Razorpay integration, GST-compliant receipt automation, and webhook configuration. Book a free consultation to get a scoped implementation plan for your payment collection workflow.<\/p>\n<a href=\"https:\/\/aaxonix.com\/contact\/\">Book a free consultation<\/a>\n<\/div>\n\n<p>Building a payment collection portal with Zoho Creator and Razorpay removes the need for a custom web application while giving you full control over the payment experience, customer data, and compliance documentation. Start with the single-form setup described here, test thoroughly in Razorpay&#8217;s sandbox, and extend to multi-product or subscription billing as your transaction volume grows. The Deluge scripts and webhook patterns covered in this guide provide a production-ready foundation that you can adapt to your specific business requirements.<\/p>\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Build a custom payment collection portal using Zoho Creator and Razorpay. Step-by-step setup with Deluge code, webhook configuration, and GST-compliant receipt generation for Indian businesses.<\/p>\n","protected":false},"author":1,"featured_media":2184,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[357,14,7,356,539,106,129],"class_list":["post-2187","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-deluge","tag-gst","tag-india","tag-low-code","tag-payment-gateway","tag-razorpay","tag-zoho-creator"],"_links":{"self":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/2187","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=2187"}],"version-history":[{"count":1,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/2187\/revisions"}],"predecessor-version":[{"id":2188,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/2187\/revisions\/2188"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media\/2184"}],"wp:attachment":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media?parent=2187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/categories?post=2187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/tags?post=2187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}