Skip to main content
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 to null.
  • /payments/offsite/payin (No QR) — returns only the deeplink and sets the QR-specific fields to null.

Onsite (/payments/onsite/payin)

  • Call the endpoint with your order details.
  • Redirect customers to payment_url to 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) are null.
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_string value to invoke UPI apps on the customer device.
  • QR artifacts (qrCode) remain null.
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.