Integration overview
Use one signature scheme for PayIns, payouts and balance queries. Creation acceptance is separate from payment completion; obtain the payment result from a status query or webhook.
Before you start
- Obtain
tenant_id,app_keyandapp_secretfor the same merchant application. - Confirm enabled payment methods, per-order limits, fees and request-IP settings.
- Set a
notify_urlthat accepts POST JSON. Do not mix test and production credentials. - Follow the signature rules, then send a JSON object.
API directory
| Operation | Method | Path |
|---|---|---|
| Create PayIn · H5 | POST | /v1/api/collection/create_order |
| Create PayIn · H2H | POST | /v1/api/collection/create_deeplink_order |
| Query PayIn | POST | /v1/api/collection/query_order |
| Query UPI | POST | /v1/api/collection/query_upi |
| Query UTR | POST | /v1/api/collection/query_utr |
| Submit UTR | POST | /v1/api/collection/submitted_utr |
| Create payout | POST | /v1/api/disbursement/create_order |
| Query payout | POST | /v1/api/disbursement/query_order |
| Query balance | POST | /v1/api/tenant/query_balance |
Main flows
- PayIn: create an H5 or H2H order → use the returned payment link and payable amount → receive a success webhook or query the order.
- Payout: create an order → obtain the platform order ID → receive the result webhook or query the order. Creation success does not mean the beneficiary has been paid.
Important distinctions
- H5 and H2H have different successful response shapes.
- Requested, payable and paid amounts have different meanings: see amounts.
- PayIn
43means the payment window expired, not an irreversible failure: see statuses. - See request errors for handling unsuccessful requests.