Tu historia es tuya. Habilitala.
Un protocolo abierto de conectores para habilitar tu historial financiero,
operativo y comercial — desde cualquier fuente, en minutos.
Protocolo abierto TypeScript Agnóstico al dominio Licencia MIT
Website · Whitepaper · GitHub
La integración de datos — financieros, operativos y comerciales — está rota de tres maneras:
| Problema | Qué pasa |
|---|---|
| Fragmentación | Cada fuente requiere su propia lógica de parsing, formatos de fecha, normalización de montos. Los equipos construyen esto desde cero cada vez. |
| Lock-in | Los agregadores controlan el formato, la entrega, el calendario de sync y el manejo de errores. Cambiar de agregador = reescribir tu capa de ingestión. |
| Extracción de renta | USD 0.50/conexión/mes suena razonable — hasta que tu cliente PYME tiene 3 cuentas y paga USD 5/mes. El agregador se lleva el 30%. |
Habilitalo es el protocolo abierto. Separa el qué de la integración (qué datos entran, qué eventos salen) del cómo (el pipeline que los procesa).
Un Conector es una declaración + una función de transformación. Tres pasos:
Define un manifiesto JSON que describe tu fuente de datos y los tipos de evento que habilita.
{
"id": "fintoc-v1",
"name": "Fintoc Open Banking",
"version": "1.0.0",
"auth": "api_key",
"events": [
"bank.movement.created",
"bank.account.synced"
]
}Escribe una función pura que mapea datos crudos a eventos canónicos. Tu historial completo, sin perder un día.
const transform: HabilitaloTransform = (raw, ctx) => ({
id: crypto.randomUUID(),
timestamp: new Date().toISOString(),
source: 'habilitalo',
type: 'bank.movement.created',
version: '1.0.0',
payload: {
amount: raw.amount,
currency: mapCurrency(raw.currency),
description: raw.description,
counterparty: raw.sender_account?.holder_name,
date: raw.post_date,
},
meta: {
connector: 'fintoc-v1',
tenant: ctx.tenantId,
trace_id: ctx.traceId,
},
})Los eventos fluyen al ecosistema. El día uno de tu nuevo sistema tiene toda la historia del anterior.
Fuente de datos → Conector → Evento Canónico → Ecosistema
Cada conector emite eventos en una forma canónica única — el sobre universal que fluye a través de todo el sistema:
interface CanonicalEvent {
id: string // UUID único
timestamp: string // ISO 8601
source: 'habilitalo'
type: string // e.g. 'bank.movement.created'
version: string // Versión del esquema
payload: Record<string, unknown>
meta: EventMeta // connector, tenant, trace_id
}El pipeline toma datos crudos de cualquier fuente y produce asientos contables balanceados, eventos emitidos y resultados de análisis:
┌──────────────┐ ┌──────────────────┐ ┌──────────────┐
│ 1. Ingestión │ ──→ │ 2. Procesamiento │ ──→ │ 3. Análisis │
│ │ │ │ │ │
│ Raw → Stage │ │ Stage → Ledger │ │ Anomalías │
│ Dedup hash │ │ Partida doble │ │ Recurrentes │
└──────────────┘ └──────────────────┘ └──────────────┘
| Etapa | Entrada | Salida | Responsabilidad |
|---|---|---|---|
| Ingestión | Datos crudos de la fuente | RawEntry en staging |
Parsing, normalización, deduplicación por SHA-256 |
| Procesamiento | RawEntry pendientes |
JournalEntry con partida doble |
Clasificación, posteo al libro mayor, validación de balance |
| Análisis | Asientos del libro mayor | Anomalías y patrones | Detección de anomalías, identificación de recurrentes |
Cada etapa es secuencial y desacoplada — una falla en una etapa no corrompe las demás.
Cada conector habilita una fuente de datos al protocolo. Activos hoy o en camino:
| Conector | Tipo | Región | Estado |
|---|---|---|---|
| Fintoc Open Banking | Banking | Chile / LATAM | Activo |
| Importación CSV | Archivo | Global | Activo |
| Entrada Manual | Formulario | Global | Activo |
| SAT México | Impuestos | México | Próximamente |
| Stripe | Pagos | Global | Próximamente |
| QuickBooks | Contabilidad | USA | Próximamente |
Construir un nuevo conector = escribir una función de transformación + un manifiesto JSON. El pipeline se encarga del resto.
| # | Principio | |
|---|---|---|
| 1 | Declarativo | Un conector se define, no se programa. Manifiesto JSON + función pura. |
| 2 | Agnóstico al dominio | Nació en finanzas, pero cualquier fuente — operativa, comercial, clínica — puede expresarse como conector. |
| 3 | Sin lock-in | Protocolo abierto, MIT. Tus datos, tus reglas. Cambiar de implementación no requiere reescribir conectores. |
| 4 | Verificable | Deduplicación por SHA-256, partida doble balanceada, trazabilidad completa por evento. |
| 5 | Funciones puras | Los transforms no tienen side effects. Reciben datos crudos, retornan eventos canónicos. Testeable, reproducible. |
| 6 | Infraestructura compartida | Deduplicación, posteo al libro mayor, entrega de eventos, detección de anomalías — todo reutilizable entre conectores. |
Habilitalo es la capa de habilitación de datos del ecosistema:
External World → HABILITALO → Servicialo → Compensalo → Coordinalo
(Bancos, APIs) (Habilita) (Ejecuta) (Paga) (Agenda)
| Capa | Protocolo | Rol |
|---|---|---|
| Habilitalo | Open Connector Protocol | Habilita historial desde cualquier fuente |
| Servicialo | Service Orchestration Protocol | Orquesta servicios profesionales |
| Compensalo | Settlement Protocol | Liquida pagos entre partes |
| Coordinalo | Scheduling Protocol | Coordina agendas y recursos |
habilitalo/
├── index.html # Landing page (habilitalo.com)
├── whitepaper.html # Whitepaper técnico completo
├── og-image.svg # Open Graph image
└── README.md
| Versión | Estado | |
|---|---|---|
| Protocolo | 0.1 | Whitepaper publicado |
| Website | — | habilitalo.com |
El estándar de mapeo es público. Tú dictas las reglas del lenguaje.
- Escribe un transform
- Declara un manifiesto
- Abre un PR
Lee el whitepaper para la especificación completa.
MIT — Habilitalo es un protocolo abierto. Cualquiera puede implementarlo.