Skip to main content
GullySystem

Razorpay Integration for Indian Businesses: UPI, Payment Links, Webhooks and Reconciliation

By Ganesh HS, Strategy and Technology, GullySystem

A Razorpay integration is more than a pay button, and GullySystem builds it as a loop from invoice to Tally. Create the order on your server, take payment by UPI, card or payment link, and mark it paid only after a signed webhook arrives. Then match settlements to invoices so your books agree with the bank.

Choose Checkout, Payment Links or Subscriptions

Not every business needs a checkout page. A clinic, a contractor or any business that bills after the work often does better with payment links sent on WhatsApp or SMS.

An online store or a booking app needs checkout inside the app, with the order created on your server first. A gym or a tiffin service that charges every month needs subscriptions backed by a mandate.

Razorpay offers payment links, checkout and subscriptions as separate products. Choose by the moment your customer pays, not by the longest feature list.

Payment Links for Invoices and Collections

Razorpay payment links can be created from the dashboard or through the API. They can carry an expiry date, accept UPI, cards and net banking, and allow partial payments if you switch that on.

Generate each link from your own software so it carries the invoice number. When the customer pays, the webhook tells your system which invoice to close.

The invoice status then updates by itself, which ends the Friday round of calls to find out who has paid.

Treat the Signed Webhook as Proof of Payment

The browser’s success screen is not proof. Razorpay signs each webhook with a secret you set in the dashboard, and your server must check that signature before marking anything paid.

A UPI payment can take a while to confirm. Give orders a pending state instead of forcing them into paid or failed.

Razorpay’s docs warn that webhooks can arrive more than once or out of order. Store each event’s ID from the x-razorpay-event-id header and ignore repeats, so no customer is ever credited twice.

Reconcile Settlements, Fees and Refunds Every Week

Razorpay pays out in settlements, after deducting its fees and the GST on those fees. Its docs give a standard domestic cycle of two working days after capture, though your account’s cycle may differ, and one bank credit can cover many payments.

Matching a bank credit to invoices by amount alone therefore fails. Pull the settlement data through the API, match each payment ID to its invoice, and book the fee as an expense. Refunds and disputes need their own entries.

If you use Tally, send the receipt and the gateway fee as separate vouchers. Your accountant then sees the same figures the bank statement shows.

Test the Awkward Cases Before Going Live

If you take only a handful of online payments a month, a payment link from the Razorpay dashboard may be all you need. Build an integration once manual matching starts taking up your accountant’s week.

  • A UPI payment that stays pending, then succeeds
  • A customer who closes the app straight after paying
  • The same webhook delivered twice
  • A partial refund followed by a full refund
  • An invoice edited after its payment link was sent

Razorpay flow and reconciliation sheet

A flow showing order creation, payment by checkout or link, webhook verification and the pending, paid, failed and refunded states. A second sheet matches settlement lines to invoices, fees and refunds, ready to post into Tally.

Frequently asked questions

Do I need a developer to accept payments through Razorpay?

Not always. You can create payment links from the Razorpay dashboard and share them yourself. You need an integration when links should come from your own invoices and payments should close those invoices automatically.

Why does the money in my bank not match my Razorpay payments?

Because a settlement bundles many payments and deducts fees and GST on those fees before paying out. Refunds can also reduce a later settlement. Matching by payment ID, not by amount, makes the numbers agree.

Can GullySystem connect Razorpay to Tally?

Yes, it is common integration work for us. Receipts and gateway fees go into Tally as separate vouchers, linked to the invoice. If your current setup half works, the free technology audit is a good place to start.

Sources

Next step

Have a specific situation to work through?

This article covers the general case. Tell us what you’re actually dealing with and we’ll respond directly.

Discuss Your Requirement