Compensalo es un protocolo abierto de reconciliación financiera. Recibe eventos de pagos y movimientos bancarios vía webhooks, los cruza automáticamente, y expone el estado de reconciliación a través de una API REST.
Flujo
Cómo funciona
Eventos
Tipos de eventos
Movimiento bancario
Se emite cuando un nuevo movimiento aparece en la cuenta bancaria. Contiene monto, fecha, contraparte y tipo (crédito/débito).
Pago recibido
Se emite cuando un pago es registrado en tu plataforma. Incluye monto, fecha, ID externo y fuente del pago.
API
Webhook
{
"eventType": "bank.movement.created",
"eventId": "evt_abc123",
"source": "habilitalo",
"timestamp": "2026-03-07T12:00:00Z",
"data": {
"movementId": "mov_001",
"accountId": "org_xxx",
"amount": 150000,
"currency": "CLP",
"date": "2026-03-07",
"description": "Transferencia recibida",
"counterparty": "Cliente SpA",
"type": "credit",
"journalEntryId": "je_001"
}
}La firma se envía en el header X-Habilitalo-Signature y se verifica con HMAC-SHA256 usando tu secret.
Schema
Modelos principales
| Modelo | Descripción | Estados |
|---|---|---|
| ReconciliationPosition | Movimiento bancario normalizado como posición a reconciliar | UNMATCHED → MATCHED → SETTLED |
| PaymentRecord | Pago registrado desde la plataforma del cliente | PENDING → CONFIRMED → RECONCILED |
| ReconciliationMatch | Relación entre posición y pago con tipo (EXACT/FUZZY) y score | — |
Integración
Quick start
Registra tu webhook
Configura la URL de tu endpoint y el secret HMAC-SHA256 para verificar las firmas de los eventos entrantes.
Envía eventos
Publica eventos bank.movement.created y payment.received al webhook. Compensalo los procesa y ejecuta el matching automáticamente.
Consulta posiciones
Usa GET /api/positions para ver el estado de reconciliación. Filtra por estado, fecha u organización.