Volver

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.

Cómo funciona

Evento recibido
Posición creada
Matching engine
Reconciliado

Tipos de eventos

bank.movement.created

Movimiento bancario

Se emite cuando un nuevo movimiento aparece en la cuenta bancaria. Contiene monto, fecha, contraparte y tipo (crédito/débito).

payment.received

Pago recibido

Se emite cuando un pago es registrado en tu plataforma. Incluye monto, fecha, ID externo y fuente del pago.

Webhook

POST /api/webhook/habilitaloHMAC-SHA256
{
  "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.

Modelos principales

ModeloDescripciónEstados
ReconciliationPositionMovimiento bancario normalizado como posición a reconciliarUNMATCHED → MATCHED → SETTLED
PaymentRecordPago registrado desde la plataforma del clientePENDING → CONFIRMED → RECONCILED
ReconciliationMatchRelación entre posición y pago con tipo (EXACT/FUZZY) y score

Quick start

1

Registra tu webhook

Configura la URL de tu endpoint y el secret HMAC-SHA256 para verificar las firmas de los eventos entrantes.

2

Envía eventos

Publica eventos bank.movement.created y payment.received al webhook. Compensalo los procesa y ejecuta el matching automáticamente.

3

Consulta posiciones

Usa GET /api/positions para ver el estado de reconciliación. Filtra por estado, fecha u organización.

Ver código en GitHub