Extracto de dispersiones
GET/paymentsProbar
La llamada la hace tu navegador, contra el servidor que elijas arriba. Si la documentación no está servida desde el mismo origen que la API, el navegador puede bloquear la respuesta por CORS: en ese caso abre estas páginas desde la propia API (/docs) o usa el curl de arriba.
const url = 'http://localhost:3000/v1/payments?from=2026-08-30&to=2026-08-30&status=created&limit=25';const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'http://localhost:3000/v1/payments?from=2026-08-30&to=2026-08-30&status=created&limit=25' \ --header 'x-api-key: <x-api-key>'Scope payments:read. El extracto: filtra por rango de fechas, estado, beneficiario o usuario, y pagina por cursor. Es con lo que se cuadra una jornada.
from y to filtran por settled_at, no por created_at: una dispersión creada a las 23:58 y liquidada a las 00:03 pertenece al día siguiente. El orden de la página, en cambio, es created_at descendente, que es lo que hace estable el cursor.
Authorizations
Sección titulada «Authorizations»Parameters
Sección titulada «Parameters»Query Parameters
Sección titulada «Query Parameters»Example
2026-08-30Desde este día, INCLUSIVE. Filtra por settled_at.
Example
2026-08-30Hasta este día, INCLUSIVE. Filtra por settled_at.
submitted = el riel la aceptó y está liquidando. Es el estado HABITUAL justo después de dispersar, porque el riel de bolívares es asíncrono. No reintentar: se cierra por webhook.
unknown = el riel no confirmó y no sabemos si pagó. NO reintentar: se resuelve consultando al proveedor y notificamos por webhook.
Filtra por desenlace. settled para cuadrar; unknown y failed para vigilar.
Todas las dispersiones que ha recibido una persona
Tu usuario, si lo mandaste al dispersar
next_cursor de la página anterior
Responses
Sección titulada «Responses»Página del extracto
object
object
Fila del extracto (GET /payments). Trae lo necesario para cuadrar un día sin abrir cada pago: a quién, cuánto, cuándo liquidó y con qué comprobante. Para la historia de transiciones, GET /payments/{id}.
object
A quién se le entregó
submitted = el riel la aceptó y está liquidando. Es el estado HABITUAL justo después de dispersar, porque el riel de bolívares es asíncrono. No reintentar: se cierra por webhook.
unknown = el riel no confirmó y no sabemos si pagó. NO reintentar: se resuelve consultando al proveedor y notificamos por webhook.
Motivo del estado. En un failed, el reason del riel
Lo que recibió el beneficiario
Nuestra comisión. 0 en un pago failed
El comprobante que ve el beneficiario en su banco. Es el número que te va a citar cuando pregunte «¿con qué referencia me pagaste?». Es el único identificador del envío que publicamos. null hasta que el envío se completa.
Cuándo salió el dinero de verdad. Es la fecha por la que filtran from y to, y la que decide a qué cierre pertenece el pago.
Cuándo lo pediste
Example
{ "data": [ { "id": "89920401-26da-4f69-b57d-bc20e0366ce2", "customer_id": null, "beneficiary_id": "8ade3e33-6f1c-4d0a-9d33-2c6b0a41f7e2", "status": "settled", "status_reason": null, "payout_asset": "BS", "payout_amount": "5000000", "fee_amount": "50000", "method": "pago_movil", "bank_reference": "012345678901", "settled_at": "2026-08-30T19:06:44.120Z", "created_at": "2026-08-30T19:04:01.812Z" } ], "has_more": true, "next_cursor": "MjAyNi0wOC0zMFQxOTowNDowMS44MTJafDg5OTIwNDAx"}Error con código estable
object
object
Contexto estructurado del error cuando lo hay: qué límite se superó y de cuánto, qué campo es inválido, cuánto saldo había. No aparece en errores internos.
object
Código ESTABLE. Programa contra esto.
Example
{ "error": { "type": "invalid_request_error", "code": "insufficient_balance", "request_id": "req_8a0312ba896772bc441134cd" }}