POST /v1/paymentssandbox · Paydash-Version: 2026-08-01

Every way India pays.One POST.

// UPI, RuPay, cards, netbanking and international cards behind one API, settled to your Indian bank account the next working day. Test keys in a minute, live in a day.

request
curl https://api.paydash.in/v1/payments \  -u sk_test_3QwK9xLm2Vb8: \  -H "Content-Type: application/json" \  -H "Idempotency-Key: order_7781" \  -d '{    "amount": 49900,    "currency": "INR",    "methods": ["upi", "card", "netbanking"],    "customer": { "phone": "+919840012345" }  }'
201 Created · 212 msresponse
{ "id": "pay_Mq7Yk2Lw9Xa3",Save this with the order. "object": "payment", "amount": 49900,Always paise: this is ₹499.00. "currency": "INR", "status": "created",Then authorised, captured, settled. Each is a webhook. "methods": ["upi", "card", "netbanking"], "url": "https://pay.paydash.in/Mq7Yk2Lw",Send the customer here, or open it in the SDK sheet. "expires_at": "2026-09-04T14:32:10+05:30", "test": true}
99.99%uptime, trailing 12 months
212 msp95 for payments.create from Chennai
71banks on netbanking, all major and 40 co-operative
T+1settlement to any Indian bank account

Every method, the same three fields.

Amount, currency, methods. The checkout page picks the right flow for the device: UPI intent on a phone with GPay, a QR on a desktop, a saved card when there is one.

UPI

methods: ["upi"]

Intent, collect and QR flows on PhonePe, GPay, Paytm and every BHIM app. AutoPay mandates for subscriptions up to ₹15,000 without a second factor.

Cards

methods: ["card"]

Visa, Mastercard, RuPay and Amex, debit and credit. Numbers are tokenised under RBI's card-on-file rules, so your servers never hold a PAN and your PCI scope stays at SAQ A.

Netbanking

methods: ["netbanking"]

71 banks, from SBI and HDFC to Tamilnad Mercantile and Karur Vysya. A bank that is down is hidden from checkout automatically and shown on the status feed.

Wallets and EMI

methods: ["wallet", "emi"]

Amazon Pay, Mobikwik and Airtel Money. No-cost and standard EMI from 14 card issuers on tickets above ₹3,000, with the schedule shown before the customer commits.

International

currency: "USD"

Cards from 130 countries, priced in USD, EUR, GBP, AED or SGD and settled to you in rupees. A FIRA certificate is generated for every settlement.

$ paydash payments trace pay_Mq7Yk2Lw9Xa3 --show-webhooks

Five states. Five webhooks. Nothing to poll.

live mode · acct_KovaiFresh
times as recorded, not as advertised

1created
Thu 3 Sep 14:32:10.882

The payment exists and the checkout link is live. Nothing has moved yet.

payment.created200 · 61 ms
2authorised
14:32:15.104

The customer's bank has blocked ₹499.00. Capture it, or let it lapse in five days.

payment.authorised200 · 84 ms
3captured
14:32:15.284

Money has left the customer's account and sits in our nodal account at HDFC.

payment.captured200 · 78 ms
4settled
Fri 4 Sep 09:00:31.019

Batched with 1,283 other captures and pushed to HDFC ····4417 as a single NEFT.

settlement.processed200 · 92 ms
5utr_assigned
09:09:44.512

HDFCR52026090418823 — the string your finance team actually searches for.

settlement.utr_assigned200 · 71 ms

Your endpoint was down for 47 minutes. Nothing was lost.

One delivery of payment.captured to api.kovaifresh.in/hooks/paydash on the Thursday their Kubernetes upgrade went sideways, drawn on the clock it actually took.

attempt 15020 sBad Gateway · 31 ms
attempt 2502+5 sBad Gateway · 28 ms
attempt 3500+30 sServer Error · 44 ms
attempt 4timeout+2 minno response in 10 s
attempt 5500+10 minServer Error · 38 ms
attempt 6200+1 hOK · 116 ms · delivered
retries = [0s, 5s, 30s, 2m, 10m, 1h]

// six attempts across one hour, four of them inside the first two minutes — the axis above is logarithmic

If the sixth attempt fails the event is marked undelivered and sits in the dashboard until you replay it. Nothing is dropped, and nothing is delivered twice — the event id is the idempotency key.

Order is preserved per payment. A queued payment.captured is never overtaken by the settlement.processed that follows it, so your state machine only ever moves forwards.

Settled the next working day, with a UTR you can reconcile.

Every settlement lists the payments in it, the fee on each, and the bank reference. Pull it from the API or the dashboard as CSV, or let Tally and Zoho Books fetch it themselves.

stl_8Kd2MaQp7Rt4to HDFC ····4417Fri 4 Sep 2026 · 09:00 ISTUTR HDFCR520260904188231,284 payments · showing 6
paymentmethodgross ₹fee ₹net ₹
pay_Mq7Yk2Lw9Xa3UPI · PhonePe499.000.00499.00
pay_Hs2Pd8Vn4Kc1Card · RuPay credit2,349.0043.112,305.89
pay_Tq9Rb1Ez6Wm5Netbanking · HDFC12,800.00158.6012,641.40
pay_Ck4Lm7Qa2Yt8UPI · GPay1,249.000.001,249.00
pay_Vn6Xd3Pr9Bs2Card · Visa debit6,999.00124.486,874.52
pay_Wd1Ks5Nb8Gh4International · USD 49.004,116.00124.363,991.64
6 payments shown28,012.00450.55 + GST 81.1027,480.35

Money moves on working days. The calendar is part of the API.

captured above, credited below, offset by T+1 — acct_KovaiFresh, 31 Aug to 7 Sep 2026

Mon31 Aug
captured₹24,18,9001,102 payments
credited₹22,41,905for Fri 28 AugHDFCR52026083127604
Tue1 Sep
captured₹26,42,1501,214 payments
credited₹23,73,231for Mon 31 AugHDFCR52026090100742
Wed2 Sep
captured₹25,07,4801,158 payments
credited₹25,92,266for Tue 1 SepHDFCR52026090200913
Thu3 Sep
captured₹28,04,6001,284 payments
credited₹24,60,139for Wed 2 SepHDFCR52026090301184
Fri4 Sep
captured₹31,86,2401,447 payments
credited₹27,51,649for Thu 3 SepHDFCR52026090418823
Sat5 Sep
captured₹19,74,510906 payments
creditedno creditbanks closed · NEFT windows shut
Sun6 Sep
captured₹17,32,090794 payments
creditedno creditbanks closed · NEFT windows shut

weekends and RBI holidaysCaptures never stop. Credits wait for a working day, and the payments settled on Diwali morning are the ones captured the Thursday before.

settlements.listEvery future credit is queryable the moment the capture succeeds, so a cash-flow forecast is a GET, not a spreadsheet.

on-demand settlementNeed Friday's money on Friday? Turn it on for 0.15% and the NEFT goes out at 17:30 IST the same day.

Licensed, certified, and boring about it.

Every claim below is a document with a number on it, and the CLI will fetch you the document.

$ paydash compliance verify --org acct_KovaiFresh6 checks · 0.9 s
okrbi.pa_authorisationLicence 106/2023 · Reserve Bank of Indiavalid to 2029-03-31
okpci.dss_4_0_level_1AoC signed by Aujas Cybersecurity, a QSAaudited 2026-02-14
okcard.cof_tokenisationVisa · Mastercard · RuPay, certified by NPCIlive since 2022-10-01
okiso.27001_2022Certificate IN-27001-4471 · BSI Group Indiavalid to 2028-06-30
okdata.residency_inin1-chennai · in2-mumbai · DPDP Act 2023no copy leaves India
okescrow.nodal_accountHDFC Bank nodal account, swept every morningreconciled daily
6 passed, 0 failed. Written to compliance-2026-09.pdf — the file your customer's procurement team asks for, generated on demand instead of emailed on request.
// install, then paste the snippet from the top of this page
Node 18+v3.4.1
npm install @paydash/node
Python 3.9+v3.4.0
pip install paydash
Go 1.21+v3.2.2
go get github.com/paydash/paydash-go/v3
PHP 8.1+v3.3.0
composer require paydash/paydash-php
“We moved 40,000 orders a month over one weekend. The webhook payloads are the first I've seen that didn't need a wrapper, and finance stopped asking me for UTRs.”
Arun Sridhar — engineering lead, Kovai Fresh, Coimbatore

Start in the sandbox tonight. Go live when you're ready.

Test keys need an email. Live keys need a PAN, a bank account and about a day.