Switching from BambooHR to Zoho People: A Migration Guide
A step-by-step BambooHR to Zoho People migration guide covering data export, leave policy recreation, employee…
The Zoho Razorpay integration connects your payment collection with invoicing and CRM. For Indian businesses using Razorpay to accept online payments, this integration auto-reconciles payments in Zoho Books, updates deal stages in Zoho CRM, and eliminates the manual work of matching bank statements to invoices.

Indian businesses using Zoho Books for invoicing and Razorpay for payment collection face a daily reconciliation task: match each Razorpay settlement to the corresponding invoice, account for Razorpay fees and GST e-invoicing in Zoho Books on fees, and handle partial payments, refunds, and failed transactions. Without integration, this is a manual, error-prone process that consumes 1 to 2 hours daily for a business processing 50+ transactions.
There are three ways to connect Zoho with Razorpay:
| Method | Best For | Setup Effort |
|---|---|---|
| Zoho Flow | Simple automations: payment received triggers CRM update or Books entry | Low (30 minutes) |
| Razorpay webhook + Zoho Creator | Custom logic: validate payment, match to invoice, handle edge cases | Medium (2-3 hours) |
| Zoho Books Payment Links | Send payment links in Zoho Books invoices; Razorpay processes the payment | Low (15 minutes) |
The simplest integration: connect Razorpay as a payment gateway in Zoho Books. Every invoice you send includes a “Pay Now” button. The customer clicks it, pays via Razorpay (UPI, card, netbanking), and Zoho Books auto-records the payment against that invoice. No manual reconciliation needed.
Configuration steps:

For businesses that collect payments outside of Zoho Books invoices (subscription payments, e-commerce checkout, custom payment pages), use Razorpay webhooks to push payment events to Zoho.
When a payment is captured in Razorpay, the webhook sends event data (payment ID, amount, email, contact, notes) to a Zoho Creator form or Zoho Flow trigger. The receiving system then:
Razorpay charges a transaction fee (typically 2% for cards, Rs. 3-10 for UPI) plus 18% GST on the fee. For accounting purposes in Zoho Books:
Zoho Books can automate this: when a Razorpay settlement lands in your bank account, create a split entry: payment received (credit to customer), payment gateway fee (debit to expenses), GST on fee (debit to input GST).
For daily reconciliation: download the Razorpay settlement report (available via API or dashboard). Import into Zoho Books bank reconciliation. Match each settlement to the corresponding invoice payments. With the webhook integration, most matching happens automatically. Only exceptions (partial payments, refunds, disputes) need manual attention.
For a full overview of all available options, explore our complete guide to Zoho integrations.
A webhook endpoint that accepts any incoming POST request as a genuine payment notification is a security gap, not just an integration detail. Razorpay signs every webhook payload with an HMAC SHA256 signature, sent in a request header, using a webhook secret you configure in the Razorpay dashboard.
The receiving side, whether that is a Zoho Creator custom function or a Zoho Flow webhook trigger, needs to recompute that signature from the raw payload using the same secret and compare it to the one Razorpay sent before acting on the event. If the signatures do not match, the request did not genuinely come from Razorpay and should be discarded rather than processed.
Skipping this check means anyone who discovers your webhook URL, which is not usually a secret in itself, could send a fabricated “payment captured” event and have your CRM mark a deal as paid or your system generate a payment receipt with no money having actually moved. This is a one-time setup step during the webhook integration, not an ongoing maintenance task, but it is the difference between a webhook integration and an open door.
A common source of confusion in daily reconciliation: the date a customer pays is not the date the money lands in your bank account. Razorpay does not settle funds instantly. Standard accounts typically settle on a T+2 working day cycle, meaning a payment captured on Monday usually reaches your bank account on Wednesday, with faster settlement available as a paid add-on for businesses that need it.
This gap matters for reconciliation because the payment event, and any CRM or Books update tied to it, should be triggered by the Razorpay payment status, not by watching for the bank credit to appear. If your process waits for the bank statement before marking an invoice paid, customers who paid on time will appear to be late by a couple of working days in every report you generate, which is a reconciliation problem, not a collections problem. Reconcile against the Razorpay settlement report and payment ID, and treat the bank statement only as the final check that the total settled amount matches, not as the trigger for updating invoice status.
Tell us what you are working through and a senior architect from our team will get back to you with a straight answer, usually within a couple of working days. No bot, no hard sell.
A senior architect will get back to you at , usually within a couple of working days. Worth checking your spam folder, just in case.
Tell us what you are actually trying to do. You will get a straight answer from a senior architect who has done this before, not a sales rep.
A senior architect will get back to you at , usually within a couple of working days. Worth checking your spam folder, just in case.
Ask it now and a senior architect will get back to you, usually within a couple of working days. It goes to our team, not a mailing list.
A senior architect will get back to you at , usually within a couple of working days. Worth checking your spam folder, just in case.