Eventos
Todo lo que pasa en tu cuenta, como un registro ordenado. Lo mismo que llega por webhook.
Cada cambio importante genera un evento. Llega por webhook y queda en GET /v1/events, con la misma forma:
{
"id": "evt_01m3sgb02af7nb0jf73vwv2sd5",
"type": "payin.completed",
"schema_version": 1,
"occurred_at": "2026-10-18T12:03:12.418Z",
"livemode": false,
"data": {
"id": "pin_01m3sg9x0000000000000000",
"status": "completed",
"funding_account_id": "fa_01m3sg9w0000000000000000",
"amount": "45.871200",
"currency": "USDT",
"created_at": "2026-10-18T12:03:10Z",
"completed_at": "2026-10-18T12:03:12Z"
}
}| Campo | Qué es |
|---|---|
id | El id del evento. Úsalo para no procesar dos veces el mismo. |
type | Qué pasó. |
schema_version | La versión de la forma de data para ese tipo. Hoy, 1. |
occurred_at | Cuándo pasó. |
livemode | true en live, false en sandbox. |
data | El recurso, con la forma de la API. Puede ganar campos nuevos. |
Los eventos nunca traen datos de cuentas de beneficiarios ni datos personales de tus clientes.
Leer el registro
curl "$CAIBO_API/v1/events?after=$CURSOR&limit=100" -H "Authorization: Bearer $CAIBO_API_KEY"- Del más antiguo al más nuevo. Guarda
next_cursor(viene siempre) y continúa desde ahí: nunca te saltas un evento. typefiltra por un tipo exacto (payout.completed) o por una familia terminada en punto (payout.).resource_idtrae la historia de un recurso:?resource_id=pout_….- Un evento recién ocurrido puede tardar un instante en aparecer en la lista; el webhook no espera.
Catálogo
funding_account.active, funding_account.failed, payin.completed, payin.failed
payout.created, payout.completed, payout.failed, payout.cancelled, payout.returned, payout.return_settled
payout_batch.created, payout_batch.completed, payout_batch.cancellation_requested, payout_batch.cancellation_finished
remittance.created, remittance.processing, remittance.review, remittance.completed, remittance.failed, remittance.returned
refund.created, refund.approved, refund.processing, refund.completed, refund.failed
withdrawal.created, withdrawal.pending_approval, withdrawal.approved, withdrawal.submitted, withdrawal.completed, withdrawal.failed, withdrawal.cancelled
settlement.created, settlement.processing, settlement.on_hold, settlement.completed, settlement.failed, settlement_schedule.activated, settlement_schedule.blocked
customer.created, customer.updated, customer.status_changed, beneficiary.created, beneficiary.verified
hosted_session.created, hosted_session.payment_reported
risk.review_required, reconciliation.exception_created, reconciliation.exception_resolved
webhook.ping
La lista puede crecer. Ignora los tipos que no conoces; no fallen tu integración.