Skip to content

Requests & responses ​

Request format ​

All documented endpoints use POST with Content-Type: application/json. Send a JSON object, not Base64 text, a JSON-encoded string, XML or form data.

Include timestamp and sign in the body. JSON parameter order is arbitrary, but signature-string ordering is mandatory. Send only fields listed for the endpoint.

Send account and order identifiers as strings to preserve leading zeros. Decimal amount strings such as "500.00" are recommended; sign the same representation you send.

Common response ​

Most endpoints use this envelope:

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"
  }
}
FieldTypeMeaning
request_idstringSupport correlation ID for this request
pathstringRequest path
successbooleanAPI-operation success, not a payment-success flag
codeintegerAPI result code, not an order status
messagestringDescription; may be Chinese or English. Do not use it as a programmatic result flag
dataobjectEndpoint data; may be absent for errors

Exceptions: successful UPI queries and UTR queries use status / timestamp / message / body, not success / code / data. Validation errors for these endpoints can still use the common error envelope.

HTTP status versus business code ​

ConditionCurrent HTTP behaviorCheck
Completed requestUsually 200Inspect the body as well; HTTP 200 alone is insufficient
Explicit OpenAPI validation/business exceptionCan be 200success=false and code
Query not found (203006)Currently 500A query result code, not a payment status
Rate limit429code=100429, Retry-After
Unexpected exception500Usually code=100500; retain request_id

Do not assume that every business error uses 200, or that every HTTP 500 has the same meaning. For a timeout, disconnection or uncertain creation outcome, query the original order ID instead of deciding the payment failed solely from the HTTP status.

OpenAPI v1 · Merchant integration