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.

POST/openapi/payin/exclusive-bindings

Request Headers

FieldTypeRequiredDescription
x-api-keystringYesMerchant API Key. Use the value beginning with mch_ from the merchant API settings page.
x-merchant-uidstringYesMerchant UID.
x-timestampstringYes13-digit millisecond timestamp. The default allowed clock drift is 5 minutes.
x-noncestringYesUnique random string for each request, up to 128 characters. Reuse is rejected.
x-signaturestringYesHex signature generated with HMAC-SHA256. The payload contains Merchant UID, timestamp, nonce, method, path, canonical query, and canonical body.

Request Parameters

FieldTypeRequiredDescription
chainCodestringYesChain code. Supported values: TRON / BSC / SOL.
tokenSymbolstringYesToken symbol.
bindKeystringYesUnique binding key on the merchant side.
labelstringNoBinding remark.
notifyUrlstringNoIndependent 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

FieldTypeRequiredDescription
bindingIdnumberYesBinding record ID.
chainCodestringYesChain code.
tokenSymbolstringYesToken symbol.
bindKeystringYesBinding key.
addressIdnumberYesAddress ID.
addressstringYesExclusive receiving address.
addressTypestringYesAlways exclusive.
notifyUrlstring | nullYesExclusive callback URL used by this binding.
statusstringYesBinding 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.