Create Exclusive Wallet
Create a dedicated deposit address for a bindKey; subsequent deposits to this address remain associated with that binding.
If notifyUrl is provided, future auto-created recharge orders for this exclusive address will callback to that URL first. This is useful when each site or app receives its own member recharge notifications.
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. |
| bindKey | string | Yes | Unique binding key on the merchant side. |
| label | string | No | Binding remark. |
| notifyUrl | string | No | Independent callback URL for this exclusive address. Auto-created orders from future deposits will callback here first. |
Request Example
{
"chainCode": "TRON",
"tokenSymbol": "USDT",
"bindKey": "USER_90001",
"label": "VIP User 90001",
"notifyUrl": "https://merchant.example.com/api/uugate/member-topup-notify"
}Response Fields
| Field | Type | Required | Description |
|---|---|---|---|
| bindingId | number | Yes | Binding record ID. |
| chainCode | string | Yes | Chain code. |
| tokenSymbol | string | Yes | Token symbol. |
| bindKey | string | Yes | Binding key. |
| addressId | number | Yes | Address ID. |
| address | string | Yes | Exclusive receiving address. |
| addressType | string | Yes | Always exclusive. |
| notifyUrl | string | null | Yes | Exclusive callback URL used by this binding. |
| status | string | Yes | Binding status. |
Response Example
{
"bindingId": 70031,
"chainCode": "TRON",
"tokenSymbol": "USDT",
"bindKey": "USER_90001",
"addressId": 31088,
"address": "TQ3sCY8k9h7G9UsApY3JPt5VDpNKr2kJ1E",
"addressType": "exclusive",
"notifyUrl": "https://merchant.example.com/api/uugate/member-topup-notify",
"status": "active"
}Code Examples
cURL Request Example
curl -X POST 'https://api.uugate.com/openapi/payin/exclusive-bindings' \
-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",
"bindKey": "USER_90001",
"label": "VIP User 90001",
"notifyUrl": "https://merchant.example.com/api/uugate/member-topup-notify"
}'Notes
- If the same bindKey is created again, the platform idempotently returns the existing binding and address, which works well for a get-or-create flow.
- For member recharge, pass notifyUrl at binding time so deposits of any amount to the exclusive address callback directly to the corresponding site or app.