Guía: conciliación bancaria automática para contadores en LATAM
Cómo automatizar la conciliación bancaria mensual de tus clientes con extracción de PDFs y matching contra pólizas. Para contadores con 10+ clientes en México y LATAM.
Nota sobre disponibilidad. El flujo manual de esta guía (procesar PDFs en el dashboard de finO$ y exportar CSV para importar a Contpaqi/Aspel) se hace desde el dashboard, y también puedes automatizarlo con el API REST de finO$. Lo que sigue en el roadmap son los conectores oficiales (sync directa a Siigo/Alegra), el email-to-extract y los webhooks.
La conciliación bancaria manual de 20 clientes consume 15+ horas al mes. Con extracción de PDFs en el dashboard ($5 MXN/hoja) y matching contra Contpaqi/Aspel/Siigo, baja a 2 horas. Esta guía explica el flujo end-to-end; la automatización vía API está en el roadmap.
El problema real
Si llevas la contabilidad de 10-50 PYMEs, cada cierre mensual sigue este ritual:
- Le pides al cliente sus estados de cuenta (PDF, idealmente; algunos te mandan screenshots, otros impresos escaneados)
- Capturas o intentas importar los movimientos a Contpaqi/Aspel/Siigo
- Cruzas contra las pólizas registradas
- Investigas las diferencias (partidas pendientes, cheques no cobrados, comisiones no registradas)
- Cierras
El paso 2 es donde mueres. Capturar manualmente 200-500 movimientos × 20 clientes son 15-30 horas al mes que tu despacho podría usar en lo que sí paga: consultoría, planeación fiscal, asesoría.
El stack de automatización
Tres piezas:
1. Extracción: convertir PDF en datos limpios
Aquí entra finO$. Le mandas el PDF del banco (BBVA, Santander, Banamex, lo que sea) y te devuelve JSON estructurado con cada movimiento: fecha, descripción, monto, tipo, contraparte, referencia SPEI, comisiones desglosadas.
Costo: $5 MXN por hoja procesada, con 30 hojas gratis al mes por workspace (no se acumulan). Estado típico de 8 hojas = $40 MXN. 20 clientes × 8 hojas = 160 hojas; menos las 30 gratis, $650 MXN/mes en extracción. Si manejas muchos clientes, el plan Pro trae múltiples workspaces, más hojas incluidas y un precio por hoja más bajo. Hablemos.
Cobras a tus clientes $200-500 MXN extra por cliente al mes por “procesamiento digital”. Tu margen: 80%+.
2. Normalización: catálogo de cuentas SAT-aligned
El JSON sale con campos consistentes sin importar el banco. Tu trabajo es mapear cada movimiento al catálogo de cuentas del cliente:
- Cargo en TPV de Walmart → 51011010 (compras de bienes)
- Transferencia recibida de cliente con RFC → 11020001 (clientes)
- Comisión bancaria → 71010001 (gastos financieros)
finO$ aplica una categorización base alineada al catálogo SAT más usado en MX. Puedes ajustar las reglas por cliente (por ejemplo: “pagos a OXXO siempre van a 51030001 viáticos”) y se aplican a todos los estados que subas en adelante.
3. Import: directo a tu sistema contable
Los principales sistemas contables mexicanos aceptan importación de movimientos bancarios:
- Contpaqi: módulo “Bancos” acepta CSV con formato fijo
- Aspel COI: importación desde Excel
- Siigo (CO/MX): conector oficial en el roadmap; hoy, CSV manual o script propio contra ambos APIs
- Alegra (LATAM): conector oficial en el roadmap; hoy, CSV manual o script propio contra ambos APIs
finO$ exporta en cualquiera de estos formatos desde el dashboard. Solo cargas el archivo y Contpaqi/Aspel pre-llena las pólizas para que tú las revises y postees.
El flujo end-to-end
Para un cliente típico mensual:
1. Cliente sube su PDF de BBVA al portal compartido (o te lo manda por WhatsApp y tú lo subes)
2. finO$ procesa el PDF en 15 segundos → JSON con 47 transacciones
3. Tu regla de categorización pre-clasifica 42 transacciones automáticamente
4. Revisas las 5 que la regla no pudo clasificar (gastos one-off, transferencias atípicas)
5. Exportas CSV para Contpaqi
6. Contpaqi importa, pre-llena pólizas, tú revisas y posteas
Tiempo total: ~10 minutos vs 1-2 horas manual.
Comparado contra alternativas
| Método | Costo mensual (20 clientes) | Tiempo mensual |
|---|---|---|
| Captura manual | $0 (pero 15-30h de tu tiempo) | 15-30 horas |
| Asistente contable junior | $8,000-12,000 MXN | 0 horas tuyas, 30 del junior |
| Bank aggregation (Belvo) | $$$$ (custom enterprise) | Depende de OAuth uptake |
| finO$ + Contpaqi/Aspel | $650 MXN + tu sistema actual | 2 horas tuyas |
Para la mayoría de despachos, finO$ es la opción más eficiente: no contratas, no entregas credenciales bancarias, no cambias de software contable.
Setup paso a paso
Paso 1: Crea tu cuenta
Entra a getfinos.com y crea tu cuenta gratis; empiezas en el momento, sin lista de espera. Cada workspace trae 30 hojas gratis cada mes. Si quieres automatizar, la API key se crea desde Configuración → API. Si llevas muchos clientes y quieres varios workspaces, el plan Pro te da más hojas incluidas, precio por hoja más bajo y usuarios ilimitados: habla con ventas desde la página de precios.
Paso 2: Configura tu regla de categorización base
Si llevas 20+ clientes, probablemente tienes patrones recurrentes: pagos al SAT, transferencias entre cuentas propias, comisiones bancarias. Define las reglas una vez en el dashboard de finO$ y aplican a todos los estados nuevos.
Paso 3: Define tu flujo de archivos
Opciones:
- Web upload manual: abres el dashboard, subes los PDFs uno por uno
- API: un script Python/Node que tome los archivos de una carpeta de Dropbox/Drive y los mande a
POST /api/v1/statements - Email-to-extract (en el roadmap): mandarás el PDF por correo a una dirección específica de finO$ y procesará automático
Para 20+ clientes, el web upload manual ya baja el cierre a un par de horas; un cron mensual contra el API lo hace aún más eficiente.
Paso 4: Integra el export con tu sistema contable
Descargas el CSV/Excel directamente desde el dashboard (botón “Exportar para Contpaqi / Aspel”) y lo importas. Para un cliente suelto también puedes pasar estados de cuenta PDF a Excel desde el convertidor, sin configurar nada. Si prefieres automatizarlo, lees las transacciones del API y armas el archivo con un script como este:
import csv, os, requests
BASE = "https://api.getfinos.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['FINOS_API_KEY']}"}
movimientos = requests.get(f"{BASE}/transactions", headers=HEADERS, params={
"from": f"{mes}-01", "to": f"{mes}-31", "limit": 200,
}).json()["data"]
# Solo lo confirmado: la lista trae validadas y pendientes.
confirmados = [m for m in movimientos if m["status"] == "validated"]
with open(f"contpaqi-{cliente}-{mes}.csv", "w", newline="", encoding="utf-8") as f:
w = csv.writer(f)
w.writerow(["Fecha", "Concepto", "Cargo", "Abono"])
for m in confirmados:
cargo = -m["amount"] if m["amount"] < 0 else ""
abono = m["amount"] if m["amount"] > 0 else ""
w.writerow([m["date"], m["concept"], cargo, abono])
El mismo bucle sirve para Aspel COI: cambia el orden de columnas al que espera su módulo de Bancos. Si prefieres no escribir el CSV tú, el botón “Exportar para Contpaqi / Aspel” del dashboard ya te lo entrega con el formato correcto.
Preguntas que siempre nos hacen
¿Mis clientes necesitan dar acceso a su banco?
No. Solo te mandan el PDF descargado de su banca en línea. Sin OAuth, sin credenciales.
¿Funciona con bancos pequeños o regionales?
Soportamos los 20 bancos más grandes de México y los principales de CO/AR/CL/PE. Si tu cliente usa un banco regional, mándanos una muestra anonimizada y lo agregamos en 48-72h.
¿Qué pasa si el PDF está protegido con contraseña?
Le pasas la contraseña al subirlo desde el dashboard; finO$ no la retiene después de procesar. La subida por API todavía no acepta contraseña, así que esos PDFs van por el dashboard.
¿Pueden facturar a mi cliente directamente?
No por ahora. Tú nos facturas a nosotros y le facturas con margen a tu cliente. Es más simple para todos.
Empieza este mes
Si tu cierre del mes próximo va a ser el mismo dolor de siempre, empieza ahora:
Procesa el primer cliente como prueba ($40 MXN) y mide cuánto tiempo te ahorró. Si funciona, escalas.