Skip to content

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 ​

FieldTypeRequirementDescription
tenant_idstringRequiredMerchant ID; must belong to the same merchant as app_key. Maximum 20 characters.
app_keystringRequiredApplication key, maximum 16 characters; sign using the secret of this exact application.
timestampstring / integerRequiredCurrent Unix timestamp in seconds. Timestamps older than 60 seconds are rejected; do not send milliseconds.
signstringRequired32-character lowercase MD5 calculated using the signature rules.
tenant_order_nostringRequiredYour order ID, maximum 64 characters; not the platform order ID.
amountstring / numberRequiredOrder amount, minimum 0.01; a decimal string is recommended. Per-order limits are merchant-specific.
payment_typeintegerRequired1 bank transfer; 2 UPI. Select for this payout; the value is not always 1.
payee_account_namestringRequired for bankRequired for payment_type=1, maximum 100 characters. Beneficiary name, not account number.
payee_account_nostringRequired for bankRequired for payment_type=1, maximum 100 characters. Use the actual bank account number and preserve leading zeros.
payee_bank_codestring / nullAs required for the payment methodBeneficiary branch IFSC, maximum 100 characters. Supply a valid 11-character IFSC for bank transfers; confirm requirements for the enabled payment method.
payee_bank_namestring / nullOptionalOptional, maximum 100 characters. Use the actual standard bank name; no public fixed enum.
payee_upistringRequired for UPIRequired for payment_type=2, maximum 100 characters. Beneficiary UPI in the form username@provider.
payee_phonestringOptionalOptional beneficiary phone number, maximum 20 characters.
notify_urlstringOptionalCallback URL, maximum 255 characters; URL/domain validation applies. No order callback is sent when omitted.
notify_remarkstringOptionalMaximum 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 ​

FieldTypeRequirementDescription
platform_order_nostringRequiredPlatform order ID.
tenant_order_nostringRequiredMerchant order ID.
amountstringRequiredOrder 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"
}

OpenAPI v1 · Merchant integration