Create PayIn · H2H
POST /v1/api/collection/create_deeplink_order
- The successful data shape differs from H5: trade_no, out_trade_no, order_state, order_sum, pay_sum, and related fields.
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 | Merchant order ID, maximum 64 characters. |
amount | string / number | Required | Order amount, minimum 0.01; a decimal string is recommended. |
payer_name | string | Optional | Optional payer name, maximum 128 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/collection/create_deeplink_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"tenant_id": "DEMO0001",
"app_key": "demo_app_key",
"timestamp": "1791199800",
"tenant_order_no": "DEMO-H2H-001",
"amount": "500.00",
"payer_name": "Demo Customer",
"notify_url": "https://merchant.example/webhooks/payin",
"notify_remark": "demo-h2h",
"sign": "9f274279197c7447ae44bfdc1b061b62"
}'Response example
json
{
"request_id": "00000000-0000-4000-8000-000000000001",
"path": "/v1/api/collection/create_deeplink_order",
"success": true,
"code": 200,
"message": "成功",
"data": {
"trade_no": "CRT202610051700DEMO0002",
"out_trade_no": "DEMO-H2H-001",
"order_state": 10,
"order_sum": "500.00",
"pay_sum": "500.07",
"currency": "INR",
"payee_account": "demo@upi",
"default_open_url": "https://checkout.example/pay/demo",
"standard_open_url": "",
"wallet_options": [
{
"wallet_code": "paytm",
"open_url": "https://checkout.example/pay/demo?wallet=paytm"
},
{
"wallet_code": "phonepe",
"open_url": "https://checkout.example/pay/demo?wallet=phonepe"
},
{
"wallet_code": "gpay",
"open_url": "https://checkout.example/pay/demo?wallet=gpay"
}
],
"expire_at": "2026-10-05 17:30:00",
"created_at": "2026-10-05 17:00:00"
}
}Fields in data
| Field | Type | Requirement | Description |
|---|---|---|---|
trade_no | string | Required | Platform order ID; use as platform_order_no when querying. |
out_trade_no | string | Required | Merchant order ID; use as tenant_order_no when querying. |
order_state | integer | Required | Order status. |
order_sum | string | Required | Original requested amount. |
pay_sum | string | Required | Customer payable amount; may differ. Not received funds. |
currency | string | Required | Currently INR; there is no currency request parameter. |
payee_account | string | Required | UPI payment identifier; may be empty. |
default_open_url | string | Required | Default payment URL; may be empty. |
standard_open_url | string | Required | Common payment URL; may be empty. |
wallet_options | array | Required | Wallet payment options. Each entry contains wallet_code and open_url; the list may be empty. |
wallet_options[].wallet_code | string | Required | Wallet identifier: paytm (Paytm), phonepe (PhonePe), gpay (Google Pay). |
wallet_options[].open_url | string | Required | Payment URL for the wallet. Use the original URL returned in the response. |
expire_at | string | Required | Expiration time. |
created_at | string | Required | Creation time. |
Error handling
See HTTP handling, request errors and error codes.