Create payout
POST /v1/api/disbursement/create_order
- success=true / code=200 confirms creation or an idempotent response, not payment completion. Use status query or callback for the result.
- For bank transfers, provide the actual beneficiary details and applicable branch IFSC.
- For retries of the same merchant/order ID, matching parameters return the original order unless it has failed/cancelled/expired/reversed. No second order is created. Ended orders or conflicting key parameters return 100409.
Request fields
| Field | Type | Requirement | Description |
|---|---|---|---|
tenant_id | string | Required | Merchant ID; must belong to the same merchant as app_key. Maximum 20 characters. |
app_key | string | Required | Application key, maximum 16 characters; sign using the secret of this exact application. |
timestamp | string / integer | Required | Current Unix timestamp in seconds. Timestamps older than 60 seconds are rejected; do not send milliseconds. |
sign | string | Required | 32-character lowercase MD5 calculated using the signature rules. |
tenant_order_no | string | Required | Your order ID, maximum 64 characters; not the platform order ID. |
amount | string / number | Required | Order amount, minimum 0.01; a decimal string is recommended. Per-order limits are merchant-specific. |
payment_type | integer | Required | 1 bank transfer; 2 UPI. Select for this payout; the value is not always 1. |
payee_account_name | string | Required for bank | Required for payment_type=1, maximum 100 characters. Beneficiary name, not account number. |
payee_account_no | string | Required for bank | Required for payment_type=1, maximum 100 characters. Use the actual bank account number and preserve leading zeros. |
payee_bank_code | string / null | As required for the payment method | Beneficiary branch IFSC, maximum 100 characters. Supply a valid 11-character IFSC for bank transfers; confirm requirements for the enabled payment method. |
payee_bank_name | string / null | Optional | Optional, maximum 100 characters. Use the actual standard bank name; no public fixed enum. |
payee_upi | string | Required for UPI | Required for payment_type=2, maximum 100 characters. Beneficiary UPI in the form username@provider. |
payee_phone | string | Optional | Optional beneficiary phone number, maximum 20 characters. |
notify_url | string | Optional | Callback URL, maximum 255 characters; URL/domain validation applies. No order callback is sent when omitted. |
notify_remark | string | Optional | Maximum 255 characters; echoed in the callback when non-empty. |
For algorithm details, see signature rules.
Request example · cURL
bash
curl --request POST 'https://api.trpay2024.com/v1/api/disbursement/create_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"tenant_id": "DEMO0001",
"app_key": "demo_app_key",
"timestamp": "1791199800",
"tenant_order_no": "DEMO-PAYOUT-001",
"amount": "500.00",
"payment_type": 1,
"payee_account_name": "Demo Beneficiary",
"payee_account_no": "123456789012",
"payee_bank_code": "DEMO0000000",
"payee_bank_name": "Example Bank",
"payee_phone": "9000000000",
"notify_url": "https://merchant.example/webhooks/payout",
"notify_remark": "demo-payout",
"sign": "139ddb87748a935668a9a326a23de829"
}'Response example
json
{
"request_id": "00000000-0000-4000-8000-000000000001",
"path": "/v1/api/disbursement/create_order",
"success": true,
"code": 200,
"message": "成功",
"data": {
"platform_order_no": "PRT202610051700DEMO0001",
"tenant_order_no": "DEMO-PAYOUT-001",
"amount": "500.00"
}
}Fields in data
| Field | Type | Requirement | Description |
|---|---|---|---|
platform_order_no | string | Required | Platform order ID. |
tenant_order_no | string | Required | Merchant order ID. |
amount | string | Required | Order amount; does not prove payment success. |
Error handling
See HTTP handling, request errors and error codes.
UPI request example
json
{
"tenant_id": "DEMO0001",
"app_key": "demo_app_key",
"tenant_order_no": "DEMO-UPI-PAYOUT-001",
"amount": "500.00",
"payment_type": 2,
"payee_upi": "demo@upi",
"notify_url": "https://merchant.example/webhooks/payout",
"timestamp": "1791199800",
"sign": "0d2a72eb003c96af405d897081fb3704"
}