Captura de una dispersión ejecutada de punta a punta contra el entorno de pruebas
del disperador. Salieron 1.100,00 Bs por pago móvil y 1.871,60 Bs por
transferencia, a bancos venezolanos distintos, y el dinero se descontó del saldo.
Los cuerpos son los que viajaron por el cable, sólo con los identificadores
cambiados por sus equivalentes de prueba; las latencias son las de esa ejecución.
Son diez llamadas en el orden en que las hace una fintech ya conectada:
consultar bancos, cotizar, dispersar, comprobar en el banco, reintentar sin pagar
dos veces, cotizar en divisa, dispersar por otro instrumento, consultar el pago,
listar el día y mirar el saldo.
Traza real·10 llamadas·3393 ms de reloj
Pago móvil
1.100,00 Bs submitted
Transferencia
1.871,60 Bs submitted
Saldo al cerrar
499.996.998,50 Bs
Capturada
1 de septiembre de 2026 a las 16:18 UTC
Paso 1 de 10
GET/v1/payouts/banks?method=pago_movil342 ms
1. Consulta los bancos que acepta el instrumento
Devuelve 31 bancos para pago móvil. Abajo se muestran los cuatro primeros; el resto viene en la misma lista.
Respuesta
{
"method": "pago_movil",
"data": [
{
"code": "0001",
"name": "Banco Central de Venezuela",
"shortName": "BCV"
},
{
"code": "0102",
"name": "Banco de Venezuela S.A.C.A. Banco Universal",
"shortName": "Banco de Venezuela"
},
{
"code": "0104",
"name": "Venezolano de Crédito, S.A. Banco Universal",
"shortName": "Venezolano de Crédito"
},
{
"code": "0105",
"name": "Banco Mercantil, C.A. Banco Universal",
"shortName": "Mercantil"
}
]
}
La lista de transferencia es más corta. Por eso `method` es obligatorio.
POST/v1/quotes9 ms
2. Cotiza un importe exacto en bolívares
Fijas `deliver` y el beneficiario cobra ese importe exacto; la comisión se suma en `spend`. Sin conversión, `rate` viene a null.
{
"id": "71103d0a-4e59-4a9a-b3c1-de6917b8bbc1",
"status": "submitted",
"message": "El riel aceptó el envío y todavía no lo ha liquidado. Se confirmará por webhook (payment.settled); no lo reintentes con otra Idempotency-Key.",
"bankReference": null,
"asset": "BS",
"amount": "110000",
"feeAmount": "1100",
"totalDebited": "111100",
"method": "pago_movil",
"methodRequested": "pago_movil",
"methodChanged": false,
"beneficiaryId": "c8be416d-ceb1-4529-873c-74bce8606894",
"beneficiary": {
"fullName": "Maria Rodriguez",
"nationalId": "V12345678",
"bankCode": "0102",
"instrument": "pago_movil"
}
}
El estado es `submitted`, no `settled`: el banco aceptó la orden y entrega después.
GEThttps://api.disperador/api/v1/transactions/{externalId}210 ms
4. La transacción existe en el banco
Consultada en la API del disperador por NUESTRA referencia. Es la única comprobación del recorrido que no pasa por nuestro código.
{
"id": "71103d0a-4e59-4a9a-b3c1-de6917b8bbc1",
"asset": "BS",
"amount": "110000",
"method": "pago_movil",
"status": "submitted",
"message": "El riel aceptó el envío y todavía no lo ha liquidado. Se confirmará por webhook (payment.settled); no lo reintentes con otra Idempotency-Key.",
"feeAmount": "1100",
"beneficiary": {
"bankCode": "0102",
"fullName": "Maria Rodriguez",
"instrument": "pago_movil",
"nationalId": "V12345678"
},
"totalDebited": "111100",
"bankReference": null,
"beneficiaryId": "c8be416d-ceb1-4529-873c-74bce8606894",
"methodChanged": false,
"methodRequested": "pago_movil"
}
Mismo `id` que la primera llamada.
POST/v1/quotes9 ms
6. O cotiza en dólares, si tu saldo está en divisa
Aquí fijas `spend` y te devolvemos lo que llega. MISMA forma de respuesta que arriba: sólo cambia qué lado fijaste (`fixed`) y que ahora `rate` viene rellena.
Para dispersar bolívares suele convenir fijar `deliver`: con ésta el importe entregado te sale de la tasa, no lo eliges tú.
POST/v1/payouts1477 ms
7. Dispersa por transferencia bancaria
Mismo endpoint, otro instrumento. Cambia lo que identifica al beneficiario: cuenta de 20 dígitos en vez de teléfono, aunque el teléfono sigue haciendo falta.
{
"id": "a4f320a2-5964-49aa-8628-97a6aa418bd2",
"status": "submitted",
"message": "El riel aceptó el envío y todavía no lo ha liquidado. Se confirmará por webhook (payment.settled); no lo reintentes con otra Idempotency-Key.",
"bankReference": null,
"asset": "BS",
"amount": "187160",
"feeAmount": "1890",
"totalDebited": "189050",
"method": "transferencia",
"methodRequested": "transferencia",
"methodChanged": false,
"beneficiaryId": "ae3c8182-d543-46e9-aad0-873da3eeb196",
"beneficiary": {
"fullName": "Juan Perez",
"nationalId": "V23456789",
"bankCode": "0108",
"instrument": "transferencia"
}
}
GET/v1/payments/71103d0a-4e59-4a9a-b3c1-de6917b8bbc15 ms
8. Consulta un pago concreto
Con su historial de estados. `bank_reference` es el comprobante que reclama el beneficiario y aparece al liquidar.
El paso 3 devuelve submitted, no settled. Es el desenlace normal del
riel. El paso 4 lo confirma desde la API del disperador, donde el estado es «en
progreso». Ver estados de un pago.
El paso 5 repite el POST /v1/payouts con la misma Idempotency-Key y
devuelve el pago original, con el mismo id, en 4 ms. Ver
idempotencia.
Los pasos 2 y 6 son las dos formas de cotizar y devuelven la misma forma.
El 2 fija deliver; el 6 fija spend. Entre los dos cuerpos cambian fixed y
que en el 6 rate viene rellena; los nombres de los campos, no. Ver
cotizar en bolívares.
La única referencia del envío es bank_reference, el comprobante que ve el
beneficiario en su banco.