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.
En-têtes
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| x-api-key | string | Oui | Marchand API Key. Utilisez la valeur commençant par mch_ de la page des paramètres API du marchand. |
| x-merchant-uid | string | Oui | Merchant UID. |
| x-timestamp | string | Oui | Milliseconde à 13 chiffres timestamp. La dérive d'horloge autorisée par défaut est de 5 minutes. |
| x-nonce | string | Oui | Chaîne aléatoire unique pour chaque requête, jusqu'à 128 caractères. La réutilisation est rejetée. |
| x-signature | string | Oui | Signature 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
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| chainCode | string | Oui | Code de chaîne. Valeurs prises en charge : TRON / BSC / SOL. |
| tokenSymbol | string | Oui | Symbole de jeton, par exemple USDT. |
| merchantOrderNo | string | Oui | Numéro de commande du commerçant. |
| amount | string | Oui | Montant du paiement, jusqu'à 6 décimales. |
| notifyUrl | string | Oui | Rappel 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
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| orderNo | string | Oui | Numéro de commande de la plateforme. |
| merchantOrderNo | string | null | Oui | Numéro de commande du commerçant. |
| bindKey | string | null | Oui | Binding key for exclusive-wallet orders; empty for shared pay-in orders. |
| amount | string | null | Oui | Montant de la commande. |
| paidAmount | string | null | Oui | Montant payé. Vide avant paiement. |
| address | string | Oui | Adresse de réception réelle. |
| cashierUrl | string | Oui | Paiement complet URL. |
| paymentUri | string | Oui | Paiement par portefeuille URI. |
| expireAt | string | null | Oui | Délai d'expiration de la commande. |
| createdAt | string | null | Oui | Temps créé. |
| detectedAt | string | null | Oui | Payment detection time; empty before detection. |
| confirmedAt | string | null | Oui | On-chain confirmation time; empty before confirmation. |
| completedAt | string | null | Oui | Order completion time; empty before completion. |
| status | string | Oui | Commandez 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.