Skip to Content
Merchant guideMoney & GSTPayments

10 min read

Payments

Settings → Payments is where you get paid online. You connect one payment company (Razorpay or Cashfree), choose which ways shoppers can pay (UPI, cards, cash on delivery and so on), and try it with a ₹1 test order. Keys are stored encrypted.

What this is for

  • Taking UPI, cards, netbanking, wallets and pay later through Razorpay or Cashfree.
  • Offering cash on delivery with a ₹49 handling fee, or a 2% discount for paying by UPI.
  • Letting shoppers pay straight to your UPI ID or bank account, and confirming it yourself.
  • Cancelling online orders that were never paid, so stock isn’t held for nobody.
  • Collecting the rest of the money on pre-orders.

How it works

When a shopper places an order, the order is saved first, then the payment starts. The order is marked paid only when the money is confirmed, either by the gateway telling us directly (a webhook) or by you, for cash and manual transfers.

Two safety nets are built in:

  • Every webhook is checked against your Razorpay Webhook secret, and a repeated webhook (Razorpay retries) is recognised and ignored, so an order is never marked paid twice.
  • The total is always recalculated on our side, including the payment method’s fee or discount. A shopper can’t change what they pay by editing the page.

The Payments page

Screenshot: Settings → PaymentsPlaceholder, not a real screenshot yetThe status line (You can take payments), Main way to get paid with Razorpay in Test mode and a green Working tick, the Shoppers can pay with rows, and Add another way to get paid.

From top to bottom:

  • Status line. ”✓ You can take payments”, or what is missing (“You can take cash on delivery only”). Place a test order opens your checkout in a new tab with a ₹1 test item in the basket. The test item is hidden from your store and never touches your stock.
  • Main way to get paid. The payment company that takes the money, Test or Live, a green Working tick and the last payment. Manage opens its Connect page; Change lets you pick another company. Your old keys are kept, so you can switch back.
  • Shoppers can pay with. One row per way to pay: UPI, Cards, Netbanking, Wallets, Pay later / EMI and Cash on delivery. Switch each on or off, and drag the rows to change the order. Checkout shows only the ones that are on, in this order, and the payment window offers only those. New shops start with UPI, Cards and Netbanking on and cash on delivery off. A shop that already saved its own cash on delivery choice keeps it.
  • + Add another way to get paid. Search payment companies, filter by UPI, cards and so on, and see their fees. Razorpay and Cashfree connect today, and Decentro for UPI only (see UPI with Decentro); others show Coming soon.
  • Advanced. Bank transfer and UPI QR you confirm yourself, a fee or discount per method, and unpaid-order rules, on their own page (Settings → Payments → Advanced). Payments are taken as soon as the shopper pays, so there is no capture setting.

When something is wrong

A problem shows as a red dot with one plain sentence, and a button to fix it where we can:

MessageButtonWhat it does
Payments go through, but updates aren’t reaching your shopFix itFor a one-click Razorpay connection, points Razorpay’s updates back at your shop.
(same, with pasted keys)Show me howOpens the Connect page at the webhook step.
Your connection ran outConnect againOpens the Connect page to run Connect Razorpay again.
Some connection details are missing or wrongCheck detailsOpens the Connect page.
Every online way to pay is turned offTurn on UPITurns UPI back on.

First-time setup, one question at a time

A new shop opening Settings → Payments gets a short guide with a progress bar. You can press Skip for now at any step, and reopen it with Set up step by step.

How do you want to get paid?

Pick Razorpay, Cashfree, or Only cash on delivery for now. Not sure? Press What’s this? for a two-line explanation.

Connect

Pick Test or Live, then follow the three numbered steps. They tell you where to click in your payment company’s dashboard and what to copy. Press Test connection to check your keys (nothing is charged or created), then Save and connect.

If your platform has Razorpay’s partner app set up, you’ll also see a Connect Razorpay button: log in to Razorpay, press Allow, done. Payment updates are switched on for you.

Which payments?

UPI, Cards and Netbanking are already on. Turn others on if you want them.

Try a ₹1 test order

Press Open test checkout, pay ₹1 (in Test mode no real money moves), and see the order arrive in Orders.

You’re ready

Your payment company sends the money from real orders to your bank. How soon depends on your agreement with them; check their dashboard.

Connect Razorpay with API keys

  1. Open the Razorpay Dashboard, Account & Settings → API Keys, and pick Test or Live at the top.
  2. Press Generate Key, and paste the Key ID and Key Secret on the Connect page.
  3. In Account & Settings → Webhooks, add a webhook with the Webhook address and Webhook secret shown on the Connect page (we make the secret for you; copy it). Tick payment.captured, payment.failed, refund.processed and refund.failed, plus qr_code.credited and qr_code.closed if you use UPI — confirmed automatically.
Video tip · Coming soon: a 30-second videoConnect RazorpayCopy Key ID and Key Secret from the Razorpay Dashboard, paste them, copy our webhook address and secret back into Razorpay, then Save and connect.

For Cashfree, see Cashfree: it needs only two values and no webhook.

Ways to pay you confirm yourself

MethodWhat the shopper doesWho confirms payment
UPI — confirmed automaticallyScans a QR made for their orderRazorpay, automatically, within seconds
UPI to your own ID — you confirm itPays your UPI ID or bank account from their own appYou, in Orders → Pending UPI
Cash on deliveryPays the delivery personYou or the courier’s remittance

Both UPI options are off until you turn them on under Advanced. What’s this? beside them compares the two:

UPI — confirmed automaticallyUPI to your own ID — you confirm it
Order marked paidBy itself, in secondsYou click Mark paid
Fake payment riskNone: the payment company confirms itA shopper can show a fake screenshot. Always check your bank.
FeeThe payment company’s feeNo fee
Money arrivesWhen the payment company pays you outStraight away, in your bank

Set them up under Advanced. Each method can also have a Fee or discount: None, Fixed amount (₹) or Percent of subtotal, with a Label shown to shoppers such as “COD handling” (₹49) or “UPI discount” (2%).

Record how you were paid

When you mark an order paid yourself (Collect payment or Mark as paid on the order), choose how the money came in: UPI, Bank transfer (NEFT, IMPS, RTGS), Cash, Cheque or Other. The UTR or reference is optional but worth adding: it is the number you search for in your bank statement later. The Date received starts on today; change it if the money arrived earlier. All three show on the order’s Timeline.

Payments by method

Analytics → Reports → Payments by method (under Finance) adds up the money you received in the date range by how it came in: each method you recorded by hand, plus each payment company such as Razorpay. The Recorded column says whether you marked it paid or the gateway confirmed it. Payments you marked paid count on the Date received you entered. Export it as CSV to match against your bank statement.

Unpaid orders

  • Cancel unpaid online orders after (minutes): an online order that is never paid is cancelled after this many minutes, and its stock released. We check with the gateway first, so a payment that arrived late is kept, not cancelled. Set it to 0 to turn this off. Cash on delivery is never auto-cancelled.
  • Unpaid UPI or bank transfers have their own, separate timer: Cancel unpaid transfer orders automatically after a number of hours (Cancel after (hours from the order)). The shopper gets an email 12 hours before their order is cancelled.

Pre-order balances

For pre-orders that take a deposit at checkout, Advanced → Pre-orders controls the rest:

  • Request the balance automatically, a set number of Days before the expected ship date.
  • Reminders (days after the request): how many reminders go out, and when.
  • If the balance is not paid within a number of days of the request: Do nothing, I will follow up myself, Cancel the order and refund the deposit, or Cancel the order and keep the deposit.

Tip. If you keep deposits on unpaid pre-orders, say so clearly on the product page and in your terms. Shoppers in India expect a refund unless told otherwise, and a clear line avoids chargebacks.

UPI with Decentro

Decentro  is an Indian payments company. The Decentro app takes UPI payments only. On a computer the shopper scans a QR code for the exact amount; on a phone they tap Google Pay, PhonePe, Paytm or Other UPI app. The order is marked paid on its own when Decentro confirms it. Cards and netbanking still need Razorpay or Cashfree.

Install the app

In Settings → Payments, select + Add another way to get paid and pick UPI — confirmed automatically (Decentro), or go to Apps, install Decentro and open Connect.

Get your keys from Decentro

Decentro emails your Client ID, Client secret and Consumer URN when they set up your account. You get test keys first and live keys once Decentro approves your business. Can’t find them? Ask your Decentro account manager.

Paste them and test

Pick Test or Live to match the keys, paste the three values, and select Test connection. It only looks up a payment that doesn’t exist, so nothing is created and no money moves. Then select Save and turn on.

Turn on payment updates

Under Payment updates on the Connect page there are two things to copy. In your Decentro dashboard open Configurations → Callback configurations and paste them in:

  • Callback URL: the address Decentro sends each payment update to.
  • Headers: a ready-made block, { "x-webhook-token": "<your secret>" }. Paste it whole into the headers box. Copy it before you save: after that the secret is hidden, and you’d make a new one. Updates without it are refused.

Your shop must be on a public web address for Decentro to reach it. Without payment updates, orders still turn paid: the shopper’s order page checks with Decentro every few seconds, and they can tap I’ve paid.

Good to know:

  • Decentro takes UPI payments from ₹5. A QR code stays open for 30 minutes; after that the shopper asks for a new one from the order page.
  • Refund sends the money back to the shopper’s UPI ID through Decentro. Partial refunds work.
  • A payment Decentro can’t confirm yet (“deemed”) stays Unpaid until Decentro settles it, usually within 3 days.

More payment companies

Razorpay and Cashfree connect today, and UPI — confirmed automatically (Decentro) for UPI. PhonePe and PayU are listed as Coming soon. A developer can add others as a plugin (see the Plugins SDK).

Common problems and fixes

ProblemWhy it happensFix
Shopper paid but the order is still UnpaidThe webhook isn’t reaching us, or the secret doesn’t match.Press Fix it or Show me how on the red line, or check the webhook address and secret in the Razorpay Dashboard match the Connect page exactly.
Checkout shows only cash on deliveryEvery online way to pay is off, or no payment company is connected.Switch UPI (or another) on under Shoppers can pay with.
“These look like Live keys, but Test is picked”The keys and the Test/Live switch don’t match.Pick the mode that matches your keys.
Auto-confirmed UPI orders never get paidThe QR events aren’t ticked.Tick qr_code.credited and qr_code.closed on the Razorpay webhook.
Decentro payments are confirmed lateDecentro isn’t sending payment updates yet, or sends the wrong secret.Paste the Callback URL and Headers block from Apps → Decentro → Connect → Payment updates into Decentro’s Configurations → Callback configurations.
Decentro Test connection says the keys are wrongTest keys used in Live (or the other way round), or a typo.Match Test/Live to the keys Decentro sent, and paste them again.
An order was cancelled but the shopper paidThey paid after the unpaid-order window.The order shows Refund needed; refund that payment, or place a fresh order for them.
COD fee isn’t showing at checkoutCash on delivery is off, or Type is None.Switch Cash on delivery on under Shoppers can pay with, and set Fixed amount (₹) under Advanced.

FAQ

Where do I see my Razorpay payment ID?

On the order page, each payment shows its reference and the gateway’s own payment id (it starts with pay_), so you can find it in the Razorpay Dashboard.

Are my Razorpay keys safe?

Yes. The Key secret and Webhook secret are encrypted before they’re stored and are shown back to you masked, like ••••1234. See Security and data protection.

Can a shopper retry a failed payment?

Yes. A failed attempt is kept as history and the shopper can pay again from the pay page; each retry is a new attempt on the same order, and the gateway is never charged twice for one attempt.

Do refunds go back automatically?

For Razorpay payments, yes: Refund sends the refund through Razorpay. For cash on delivery and manual UPI/bank transfers, the refund is recorded for your books and you send the money yourself.

Was this helpful?