Crear orden de pago saliente
Crea una orden de pago. Después del éxito, la plataforma congela el monto del pago y la tarifa de la red y luego devuelve los detalles del pedido.
Si no se proporciona fromAddress, el sistema selecciona automáticamente una dirección con saldo suficiente. Si no hay ninguno disponible, devuelve un saldo de dirección insuficiente.
Encabezados
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| x-api-key | string | Sí | Comerciante API Key. Utilice el valor que comienza con mch_ de la página de configuración del comerciante API. |
| x-merchant-uid | string | Sí | Merchant UID. |
| x-timestamp | string | Sí | Milisegundo de 13 dígitos timestamp. La desviación del reloj permitida por defecto es de 5 minutos. |
| x-nonce | string | Sí | Cadena aleatoria única para cada solicitud, hasta 128 caracteres. Se rechaza la reutilización. |
| x-signature | string | Sí | Firma hexadecimal generada con HMAC-SHA256. La carga útil contiene Merchant UID, timestamp, nonce, método, ruta, query canónico y body canónico. |
Parámetros
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| chainCode | string | Sí | Código de cadena. Valores admitidos: TRON / BSC / SOL. |
| tokenSymbol | string | Sí | Símbolo simbólico. |
| fromAddress | string | No | Dirección del remitente especificada. Si se omite, el sistema asigna uno automáticamente. |
| toAddress | string | Sí | Dirección de recepción. |
| amount | string | Sí | Importe del pago, hasta 6 decimales. |
| deleteSourceAfterSuccess | boolean | No | Booleano JSON opcional, false por defecto. Si es true, elimina lógicamente el origen solo tras confirmar este pago en cadena; un fallo o cancelación no lo elimina. Los pagos no exigen reserva de saldo. |
| merchantOrderNo | string | Sí | Número de pedido del lado comerciante. |
| notifyUrl | string | Sí | Devolución de llamada específica del pedido URL. Se recomienda un HTTPS URL público propiedad del comerciante. |
Ejemplo de solicitud
{
"chainCode": "TRON",
"tokenSymbol": "USDT",
"fromAddress": "TNjBrNq2a9FK2vwu4W9C1QdLKSZ42Yx5YY",
"toAddress": "TS7b7iD8G2PaPqK1TqSmLJ9nrrYH4oKX1S",
"amount": "35.50",
"deleteSourceAfterSuccess": false,
"merchantOrderNo": "PO202604150001",
"notifyUrl": "https://merchant.example.com/api/uugate/payout-notify"
}Campos de respuesta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| orderNo | string | Sí | Número de orden de pago de la plataforma. |
| merchantOrderNo | string | null | Sí | Número de pedido del comerciante. |
| fromAddress | string | null | Sí | Dirección real del remitente. |
| toAddress | string | Sí | Dirección de recepción. |
| amount | string | Sí | Monto del pago. |
| txHash | string | null | Sí | El hash en cadena se devolvió después de la transmisión. |
| status | string | Sí | enviado / transmitido / confirmed / failed. |
| submittedAt | string | null | Sí | Hora de envío. |
| broadcastedAt | string | null | Sí | Hora de transmisión. |
| confirmedAt | string | null | Sí | Hora de confirmación. |
| failedAt | string | null | Sí | Tiempo fallido. |
| createdAt | string | null | Sí | Tiempo creado. |
Ejemplo de respuesta
{
"orderNo": "PO1776193200A1B2C3D4",
"merchantOrderNo": "PO202604150001",
"fromAddress": "TNjBrNq2a9FK2vwu4W9C1QdLKSZ42Yx5YY",
"toAddress": "TS7b7iD8G2PaPqK1TqSmLJ9nrrYH4oKX1S",
"amount": "35.500000",
"txHash": "b3d4fb0cb11eb86bb906d1e0ee3b84e17f40d5441d1e4c651ea46920a48a9a01",
"status": "broadcasted",
"submittedAt": "2026-04-15T03:00:00Z",
"broadcastedAt": "2026-04-15T03:00:08Z",
"confirmedAt": null,
"failedAt": null,
"createdAt": "2026-04-15T03:00:00Z"
}Ejemplos de código
cURL Ejemplo de solicitud
curl -X POST 'https://api.uugate.com/openapi/payout/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",
"fromAddress": "TNjBrNq2a9FK2vwu4W9C1QdLKSZ42Yx5YY",
"toAddress": "TS7b7iD8G2PaPqK1TqSmLJ9nrrYH4oKX1S",
"amount": "35.50",
"deleteSourceAfterSuccess": false,
"merchantOrderNo": "PO202604150001",
"notifyUrl": "https://merchant.example.com/api/uugate/payout-notify"
}'Notas
- La API publica solo admite pagos individuales. Los pagos por lote estan disponibles solo en el panel del comercio.
- Un pago de 10 requiere al menos 10 de saldo disponible en el origen, sin reserva adicional, independientemente de deleteSourceAfterSuccess. El importe no se reduce; la cuenta de tarifas debe cubrir la tarifa de red.
- Envia true / false, no cadenas. Los reintentos con el mismo merchantOrderNo deben conservar el parametro. No se puede borrar el origen si hay otras transferencias sin finalizar.
- Crear o transmitir con exito no equivale a confirmacion en cadena. La eliminacion logica conserva historial, registros y referencias de claves. Un fallo o cancelacion conserva el origen.
- The create API automatically attempts submission. Use status from the response or a later query; an HTTP 2xx alone is not on-chain success.