Register your app once. Route customers to Razorpay, the NoCash UPI rail, or the next gateway we add — through a single hosted checkout that returns them safely to your callback URL.
Every element of NoCash was designed to earn the trust of both merchants and the people paying them.
One dashboard, unlimited client apps. Each app gets its own API key, secret and callback.
Ship with Razorpay + NoCash UPI. Add Stripe, Cashfree or your own rail without touching client apps.
Sensitive data stays on our servers. Customers see a consistent, branded checkout every time.
Every redirect carries the transaction ID and verifiable status back to your registered URL.
INR-native today. Multi-currency and international acquirers on the roadmap.
POST an amount. Get a payment_url. Redirect. That's the whole integration.
Turn any gateway on or off per client app. Adding a new gateway is a config change, not a client re-integration.
Create a payment session from your backend and redirect the user to payment_url. NoCash handles the rest and sends them back to your callback with the transaction ID and status.
/api/public/v1/payments/create.payment_url.curl -X POST https://your-nocash.app/api/public/v1/payments/create \
-H "x-api-key: pk_live_..." \
-H "x-api-secret: sk_..." \
-H "Content-Type: application/json" \
-d '{
"amount": 49900,
"currency": "INR",
"description": "Order #A123",
"customer_email": "riya@example.com",
"merchant_txn_id": "A123"
}'
# → { "transaction_id": "…", "payment_url": "…", "status": "created" }
# After payment, customer returns to:
# https://yourapp.com/callback
# ?transaction_id=…
# &status=success | failed | cancelled
# &gateway=razorpay | nocash
# &gateway_ref=…