Payload Pay-Out
El nombre del evento llega en el header X-Webhook-Event de cada entrega, no dentro del body JSON. Todos los montos van en pesos COP enteros.
payout.completed
Sección titulada «payout.completed»{ "externalId": "b4f6d2f0-6a1e-4c9b-9d3a-2f8e7c6b5a41", "type": "PAYOUT", "status": "COMPLETED", "amount": 30000, "currency": "COP", "feeCharged": 800, "e2eId": "E2E-20260601-0002", "updatedAt": "2026-06-01T10:02:00.000Z"}payout.failed
Sección titulada «payout.failed»{ "externalId": "b4f6d2f0-6a1e-4c9b-9d3a-2f8e7c6b5a41", "type": "PAYOUT", "status": "FAILED", "amount": 30000, "currency": "COP", "feeCharged": 0, "e2eId": null, "failureReason": "Llave Bre-B no encontrada", "updatedAt": "2026-06-01T10:02:00.000Z"}payout.expired
Sección titulada «payout.expired»{ "externalId": "b4f6d2f0-6a1e-4c9b-9d3a-2f8e7c6b5a41", "type": "PAYOUT", "status": "EXPIRED", "amount": 30000, "currency": "COP", "failureReason": "Transaction expired without provider confirmation", "expiredAt": "2026-06-01T10:10:00.000Z"}Campos comunes
Sección titulada «Campos comunes»| Campo | Descripción |
|---|---|
Header X-Webhook-Event | Nombre del evento (payout.completed, payout.failed, payout.expired) |
externalId | ID de la dispersión en Rivopay (el mismo que devolvió la creación) |
type | Siempre PAYOUT |
status | Estado: COMPLETED, FAILED, EXPIRED |
amount | Monto enviado en pesos COP |
feeCharged | Fee cobrado en pesos COP (0 si la dispersión falló) |
e2eId | Identificador end-to-end de la red Bre-B (null si falló; no aplica a Nequi) |
failureReason | Motivo del fallo o expiración |