Choosing a Payment Flow
Compare onsite and offsite pay-in options plus the exact response payloads for each.
Pick the flow that matches your checkout experience. You can run payments in three modes:
/payments/onsite/payin— hosted payment page./payments/offsite/payin(QR only) — returns a QR artifact and sets the rest of the fields tonull./payments/offsite/payin(No QR) — returns only the deeplink and sets the QR-specific fields tonull.
Onsite (/payments/onsite/payin)
- Call the endpoint with your order details.
- Redirect customers to
payment_urlto complete the flow on our hosted page. - Wait for the callback (or poll status) to confirm the outcome.
Example response
{
"success": true,
"payment_id": "GYrQ1SrDMF8awMDqgkl7Brw1uG2zqkq9",
"payment_url": "https://payzio.org/onsite/GYrQ1SrDMF8awMDqgkl7Brw1uG2zqkq9",
"amount": 500,
"currency": "INR",
"message": "Payin created"
}Offsite – QR Only (/payments/offsite/payin)
- Call the endpoint with the offsite QR configuration.
- Show the returned QR (image or encoded text) to your customer.
- Other artifact fields (
cashier_url,cashier_string) arenull.
Example response
{
"success": true,
"payment_id": "PAY456",
"data": {
"qrCode": "data:image/png;base64,iVBORw0KGgoAAA...",
"cashier_url": null,
"cashier_string": null
},
"amount": 500,
"currency": "INR",
"message": "Offsite QR generated"
}Offsite – No QR (/payments/offsite/payin)
- Call the endpoint configured for deeplinks.
- Use the
cashier_stringvalue to invoke UPI apps on the customer device. - QR artifacts (
qrCode) remainnull.
Example response
{
"success": true,
"payment_id": "PAY789",
"data": {
"qrCode": null,
"cashier_url": null,
"cashier_string": "upi://pay?pa=merchant@upi&pn=Payzio&am=500&tn=Order123"
},
"amount": 500,
"currency": "INR",
"message": "Offsite deeplink generated"
}The data object contains only the artifact you request (QR or deeplink). Treat missing fields as null.