Create Pay-in Order
Creates a fixed-amount shared pay-in order. The response includes order number, receiving address, checkout URL, and payment status.
notifyUrl is required. Later callbacks for this order are delivered directly to this URL.
Request Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Merchant API Key. Use the value beginning with mch_ from the merchant API settings page. |
| x-merchant-uid | string | Yes | Merchant UID. |
| x-timestamp | string | Yes | 13-digit millisecond timestamp. The default allowed clock drift is 5 minutes. |
| x-nonce | string | Yes | Unique random string for each request, up to 128 characters. Reuse is rejected. |
| x-signature | string | Yes | Hex signature generated with HMAC-SHA256. The payload contains Merchant UID, timestamp, nonce, method, path, canonical query, and canonical body. |
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| chainCode | string | Yes | Chain code. Supported values: TRON / BSC / SOL. |
| tokenSymbol | string | Yes | Token symbol, for example USDT. |
| merchantOrderNo | string | Yes | Merchant order number. |
| amount | string | Yes | Pay-in amount, up to 6 decimal places. |
| notifyUrl | string | Yes | Order-specific callback URL. A public HTTPS URL owned by the merchant is recommended. |
Request Example
{
"chainCode": "TRON",
"tokenSymbol": "USDT",
"merchantOrderNo": "M202604150001",
"amount": "100.00",
"notifyUrl": "https://merchant.example.com/api/uugate/payin-notify"
}Response Fields
| Field | Type | Required | Description |
|---|---|---|---|
| orderNo | string | Yes | Platform order number. |
| merchantOrderNo | string | null | Yes | Merchant order number. |
| bindKey | string | null | Yes | Binding key for exclusive-wallet orders; empty for shared pay-in orders. |
| amount | string | null | Yes | Order amount. |
| paidAmount | string | null | Yes | Paid amount. Empty before payment. |
| address | string | Yes | Actual receiving address. |
| cashierUrl | string | Yes | Full checkout URL. |
| paymentUri | string | Yes | Wallet payment URI. |
| expireAt | string | null | Yes | Order expiration time. |
| createdAt | string | null | Yes | Created time. |
| detectedAt | string | null | Yes | Payment detection time; empty before detection. |
| confirmedAt | string | null | Yes | On-chain confirmation time; empty before confirmation. |
| completedAt | string | null | Yes | Order completion time; empty before completion. |
| status | string | Yes | Order status. |
Response Example
{
"orderNo": "PI1776193200123ABCD1234",
"merchantOrderNo": "M202604150001",
"bindKey": null,
"amount": "100.000000",
"paidAmount": null,
"address": "TXYZ3x9nJ5J4xP2gh6mQW7rT31jB8Y2pA9",
"cashierUrl": "https://open.uugate.com/SK/PI1776193200123ABCD1234",
"paymentUri": "TRON:TXYZ3x9nJ5J4xP2gh6mQW7rT31jB8Y2pA9?token=USDT&amount=100.000000",
"expireAt": "2026-04-18T06:30:00.000Z",
"createdAt": "2026-04-18T06:00:00.000Z",
"detectedAt": null,
"confirmedAt": null,
"completedAt": null,
"status": "waiting_payment"
}Code Examples
cURL Request Example
curl -X POST 'https://api.uugate.com/openapi/payin/orders' \
-H 'Content-Type: application/json' \
-H 'x-api-key: mch_xxxxxxxxxxxxxxxxxxxx' \
-H 'x-merchant-uid: 880001' \
-H 'x-timestamp: 1776193200000' \
-H 'x-nonce: 2f5c7b147c3748f0a8b3d9bb38aa91a4' \
-H 'x-signature: <SIGNATURE_HEX>' \
-d '{
"chainCode": "TRON",
"tokenSymbol": "USDT",
"merchantOrderNo": "M202604150001",
"amount": "100.00",
"notifyUrl": "https://merchant.example.com/api/uugate/payin-notify"
}'Notes
- A shared pay-in order may trigger 40105 when the same merchant, chain, token, and amount are still reserved by another valid order.