Créer une commande d’encaissement

Crée un ordre de paiement partagé à montant fixe. La réponse comprend le numéro de commande, l'adresse de réception, la caisse URL et le paiement status.

notifyUrl est requis. Les rappels ultérieurs pour cette commande sont envoyés directement à ce URL.

POST/openapi/payin/orders

En-têtes

ChampTypeObligatoireDescription
x-api-keystringOuiMarchand API Key. Utilisez la valeur commençant par mch_ de la page des paramètres API du marchand.
x-merchant-uidstringOuiMerchant UID.
x-timestampstringOuiMilliseconde à 13 chiffres timestamp. La dérive d'horloge autorisée par défaut est de 5 minutes.
x-noncestringOuiChaîne aléatoire unique pour chaque requête, jusqu'à 128 caractères. La réutilisation est rejetée.
x-signaturestringOuiSignature hexadécimale générée avec HMAC-SHA256. La charge utile contient Merchant UID, timestamp, nonce, la méthode, le chemin, le query canonique et le body canonique.

Paramètres

ChampTypeObligatoireDescription
chainCodestringOuiCode de chaîne. Valeurs prises en charge : TRON / BSC / SOL.
tokenSymbolstringOuiSymbole de jeton, par exemple USDT.
merchantOrderNostringOuiNuméro de commande du commerçant.
amountstringOuiMontant du paiement, jusqu'à 6 décimales.
notifyUrlstringOuiRappel spécifique à la commande URL. Un HTTPS URL public appartenant au commerçant est recommandé.

Exemple de requête

{
  "chainCode": "TRON",
  "tokenSymbol": "USDT",
  "merchantOrderNo": "M202604150001",
  "amount": "100.00",
  "notifyUrl": "https://merchant.example.com/api/uugate/payin-notify"
}

Champs de réponse

ChampTypeObligatoireDescription
orderNostringOuiNuméro de commande de la plateforme.
merchantOrderNostring | nullOuiNuméro de commande du commerçant.
bindKeystring | nullOuiBinding key for exclusive-wallet orders; empty for shared pay-in orders.
amountstring | nullOuiMontant de la commande.
paidAmountstring | nullOuiMontant payé. Vide avant paiement.
addressstringOuiAdresse de réception réelle.
cashierUrlstringOuiPaiement complet URL.
paymentUristringOuiPaiement par portefeuille URI.
expireAtstring | nullOuiDélai d'expiration de la commande.
createdAtstring | nullOuiTemps créé.
detectedAtstring | nullOuiPayment detection time; empty before detection.
confirmedAtstring | nullOuiOn-chain confirmation time; empty before confirmation.
completedAtstring | nullOuiOrder completion time; empty before completion.
statusstringOuiCommandez status.

Exemple de réponse

{
  "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"
}

Exemples de code

cURL Exemple de demande
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

  • Un ordre de paiement partagé peut déclencher 40105 lorsque le même commerçant, la même chaîne, le même jeton et le même montant sont toujours réservés par un autre ordre valide.