Payout statement
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. The statement: filter by date range, status, beneficiary or user, and page by cursor. It is what you reconcile a day with.
from and to filter by settled_at, not by created_at: a payout created at 23:58 and settled at 00:03 belongs to the next day. The page order, on the other hand, is created_at descending, which is what keeps the cursor stable.
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 = la red de pago la aceptó y está liquidando. Es el estado HABITUAL justo después de dispersar, porque la red de pago de bolívares es asíncrona. No reintentar: se cierra por webhook.
unknown = la red de pago no confirmó y no sabemos si pagó. NO reintentar: se resuelve automáticamente y te 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 = la red de pago la aceptó y está liquidando. Es el estado HABITUAL justo después de dispersar, porque la red de pago de bolívares es asíncrona. No reintentar: se cierra por webhook.
unknown = la red de pago no confirmó y no sabemos si pagó. NO reintentar: se resuelve automáticamente y te notificamos por webhook.
Motivo del estado. En un failed, el reason de la red de pago
Decimales: BS y USD 2; USDT y USDC 6 (1000000 = 1 USDT).
Decimales: BS y USD 2; USDT y USDC 6 (1000000 = 1 USDT).
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. En el entorno de pruebas es simulado y tiene la forma SIM- + 12 caracteres hexadecimales.
El concepto que mandaste al dispersar (reference). null si no mandaste ninguno. No es bank_reference.
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" }}