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.

POST/openapi/payout/orders

Encabezados

CampoTipoObligatorioDescripción
x-api-keystringSíComerciante API Key. Utilice el valor que comienza con mch_ de la página de configuración del comerciante API.
x-merchant-uidstringSíMerchant UID.
x-timestampstringSíMilisegundo de 13 dígitos timestamp. La desviación del reloj permitida por defecto es de 5 minutos.
x-noncestringSíCadena aleatoria única para cada solicitud, hasta 128 caracteres. Se rechaza la reutilización.
x-signaturestringSí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

CampoTipoObligatorioDescripción
chainCodestringSíCódigo de cadena. Valores admitidos: TRON / BSC / SOL.
tokenSymbolstringSíSímbolo simbólico.
fromAddressstringNoDirección del remitente especificada. Si se omite, el sistema asigna uno automáticamente.
toAddressstringSíDirección de recepción.
amountstringSíImporte del pago, hasta 6 decimales.
deleteSourceAfterSuccessbooleanNoBooleano 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.
merchantOrderNostringSíNúmero de pedido del lado comerciante.
notifyUrlstringSí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

CampoTipoObligatorioDescripción
orderNostringSíNúmero de orden de pago de la plataforma.
merchantOrderNostring | nullSíNúmero de pedido del comerciante.
fromAddressstring | nullSíDirección real del remitente.
toAddressstringSíDirección de recepción.
amountstringSíMonto del pago.
txHashstring | nullSíEl hash en cadena se devolvió después de la transmisión.
statusstringSíenviado / transmitido / confirmed / failed.
submittedAtstring | nullSíHora de envío.
broadcastedAtstring | nullSíHora de transmisión.
confirmedAtstring | nullSíHora de confirmación.
failedAtstring | nullSíTiempo fallido.
createdAtstring | nullSí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.