Evento con el detalle de cada intento de entrega
GET/events/{id}Probar
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/events/example';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/events/example \ --header 'x-api-key: <x-api-key>'Scope events:read. Cada intento con su código HTTP y su latencia. Incluye payload, el cuerpo exacto que te enviamos.
Authorizations
Sección titulada «Authorizations»Parameters
Sección titulada «Parameters»Path Parameters
Sección titulada «Path Parameters»Responses
Sección titulada «Responses»Evento con payload y deliveries
object
Deduplica por esto. También viaja en la cabecera x-event-id
dead = tu cola de fallidos, reentregable
El cuerpo que te enviamos
object
object
null si hubo timeout
Example
{ "id": "40545", "event_type": "payment.settled", "aggregate_type": "payment", "aggregate_id": "89920401-26da-4f69-b57d-bc20e0366ce2", "payload": { "paymentId": "89920401-26da-4f69-b57d-bc20e0366ce2", "asset": "BS", "amount": "5000000", "bankReference": "012345678901", "method": "pago_movil" }, "status": "published", "attempts": 3, "last_error": null, "next_attempt_at": null, "published_at": "2026-08-31T19:06:52.004Z", "dead_at": null, "created_at": "2026-08-31T19:06:44.120Z", "deliveries": [ { "attempt": 1, "status_code": 500, "ok": false, "error": "el receptor respondió 500", "duration_ms": 42 }, { "attempt": 2, "status_code": null, "ok": false, "error": "timeout", "duration_ms": 5001 }, { "attempt": 3, "status_code": 200, "ok": true, "error": null, "duration_ms": 87 } ]}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" }}