Extracción de extractos bancarios
De PDF a datos estructurados y verificados

El OCR lee el texto. Pero un extracto bancario no es texto, es una tabla. El OCR le da "1.250,00" pero no si es un débito, un crédito o un saldo acumulado. Le da "VIREMENT RECU / ÜBERWEISUNG" pero no a qué fila pertenece. Si se equivoca en una asignación, todos los saldos posteriores estarán mal. Holofin reconstruye la estructura de la tabla, asigna cada valor a su fila y columna, y prueba el resultado conciliando el saldo.

Agendar una demo
BANQUE LEFORT & CIE
24 avenue Marceau, 75008 Paris
Relevé de compte
Janvier 2025
Compte courantFR76 3000 4012 3400 0107 8425 162EUR
Dumont Consulting SARLPériode: 01/01 – 31/01/2025
Solde précédent:12 450,00
Nouveau solde:14 270,30
Date op.LibelléDébitCréditSolde
03/01VIR RECU SALAIRE JANV3 200,0015 650,00
05/01PRLV SEPA ASSURANCE MMA328,5015 321,50
10/01VIR SEPA LOYER BUREAU1 250,0014 071,50
15/01PRLV SEPA EDF ELECTRICITE187,4013 884,10
18/01CB MONOPRIX PARIS 0862,3013 821,80
22/01VIR RECU CLIENT FACTURE 2401568,5014 390,30
28/01VIR RECU REMB TROP PERCU120,0014 510,30
✓ Saldo conciliado✓ 23 transacciones✓ EUR

Por qué el OCR genérico
sigue fallando

Un extracto bancario parece una tabla simple. No lo es. Cada emisor formatea las cosas de manera diferente y el formato PDF en sí mismo juega en su contra. Esto es lo que realmente falla.

El problema principal

Cada banco lo hace de forma diferente

No existe un estándar para el diseño de los extractos bancarios. BNP Paribas coloca las fechas a la izquierda y utiliza columnas separadas para Débito/Crédito. Deutsche Bank usa una sola columna de Importe con indicadores D/C. Revolut ni siquiera incluye saldos acumulados. Una plantilla entrenada con un banco produce resultados inservibles con otro.

¿Es "1.250" mil o 1,25?

Los bancos franceses escriben "1 250,00 €". Los alemanes escriben "1.250,00 EUR". Los británicos escriben "£1,250.00".

El mismo punto significa "miles" en Frankfurt y "decimales" en Londres. La misma coma significa lo contrario. Un espacio es un separador de miles en París y nada en Nueva York.

Lea mal un separador y un pago de alquiler de €1.250 se convierte en €1,25. Su comprobación de saldo no lo detectará. Los números seguirán sumando, solo que al total incorrecto.

¿Qué columna es el débito?

¿Una columna o dos? ¿Números negativos o un indicador "D/C"? ¿Un signo menos a la izquierda, a la derecha o entre paréntesis? Los bancos alemanes usan "S" y "H". Algunos simplemente dejan la otra columna en blanco. La tabla parece obvia para un humano. Es una pesadilla analizarla programáticamente.

Tablas que se dividen entre páginas

200 transacciones no caben en una página. La tabla continúa en la página 2, a veces con los encabezados repetidos, a veces no. Una transacción puede comenzar en una página y terminar en la siguiente. Necesita recomponer la tabla antes de poder extraer algo.

Múltiples cuentas en un solo PDF

Su cliente envía un único PDF de 47 páginas. Contiene tres cuentas (corriente, ahorros, tarjeta de crédito) a lo largo de cuatro trimestres. Son 12 extractos separados dentro de un archivo. Trátelo como una tabla continua y obtendrá datos incoherentes.

Múltiples extractos bancarios en un solo PDF

No todo lo que parece una transacción lo es

Los bancos rellenan los extractos con tablas auxiliares que parecen exactamente transacciones: desgloses de pagos con tarjeta que listan cada pago sin contacto, resúmenes de transferencias SEPA que repiten cada débito directo, listas de comisiones, cálculos de intereses. Extráigalos y contará dos veces. Omita el incorrecto y su saldo no cuadrará.

Las transacciones reales residen en la tabla principal. Todo lo demás es ruido disfrazado de datos.

Cómo funciona

Cada extracto bancario pasa por cuatro etapas. Sin plantillas, sin configuración específica por emisor. El mismo flujo maneja BNP Paribas y Chase.

Clasificación

Nuestro clasificador identifica más de 100 emisores bancarios utilizando pistas visuales y de contenido: posiciones de encabezados, estructuras de columnas, logotipos, patrones de texto. Sin plantillas que configurar por banco.

Segmentación

Los PDF con múltiples cuentas se dividen antes de la extracción. Detectamos los límites de las cuentas por IBAN, número de cuenta y marcadores de período. Ese PDF de 47 páginas se convierte en 12 segmentos, procesados en paralelo.

Extracción

Un modelo visual lee el diseño de la página y extrae datos precisos de las transacciones: fecha, descripción, débito, crédito, saldo acumulado y metadatos de la cuenta. Sin reglas de plantillas. El modelo entiende la estructura de la tabla.

Cada extracción produce un JSON como este:

{
  "bank_name": "Qonto",
  "currency": "EUR",
  "account_type": "current",
  "usage_type": "business",
  "client_names": ["Starflight Dynamics GmbH"],
  "account_number": "DE15100101232339317943",
  "start_balance": 3071.69,
  "end_balance": 3030.39,
  "start_date": "2025-05-01",
  "end_date": "2025-05-31",
  "validation_status": "OK",
  "transactions": [
    {
      "transaction_date": "2025-05-02",
      "value_date": "2025-05-02",
      "amount": -963.9,
      "description": "Schmittlein Kloster Arbeitsrecht Partnerschaft",
      "credit": null,
      "debit": 963.9,
      "page": 1,
      "row": 1
    }
  ]
}

Validación

Aquí es donde la mayoría de las herramientas se detienen, y donde nosotros empezamos. Cada segmento extraído es verificado:

  • Conciliación de saldos: saldo inicial + total créditos − total débitos = saldo final, con una tolerancia de €2. Si la ecuación no cuadra, la extracción se marca para revisión.
  • Continuidad del saldo acumulado: el saldo acumulado de cada transacción debe ser igual al saldo anterior más/menos el importe de la transacción. Las interrupciones indican filas faltantes o mal extraídas.
  • Ordenación de fechas: las fechas de las transacciones deben estar en secuencia cronológica dentro del período del extracto. Las fechas desordenadas sugieren errores de asignación de filas.
  • Detección de duplicados: las transacciones idénticas (misma fecha, descripción, importe) se marcan para revisión en lugar de incluirse silenciosamente.

Ecuación de conciliación de saldos:

Muestre su trabajo

Cada valor extraído lleva coordenadas que apuntan a su posición exacta en la página de origen. No solo "esto vino de la página 3", sino el cuadro delimitador a nivel de píxel alrededor del texto original. Puede verificar cualquier número haciendo clic en él.

A los auditores les encanta esto

Cuando un auditor pregunta "¿de dónde salió este número?", usted se lo muestra. La ubicación exacta en el PDF de origen, resaltada. Nada de "el sistema lo dijo".

Corrija errores en segundos

Su revisor detecta un importe incorrecto. Hace clic en el valor. La región de origen se resalta en el documento original. Compare, corrija y continúe.

Trazabilidad completa de datos

Rastree cualquier número desde la decisión de crédito hasta el extracto bancario original, la página y la fila. La cadena completa queda documentada. Los reguladores no tendrán que confiar solo en su palabra.

BNP Paribas - January 2025
Date
Description
Amount
Balance
03/01
VIR RECU SALAIRE
+3,200.00
15,650.00
15/01
VIR SEPA LOYER JANV
-1,250.00
14,400.00
18/01
PRLV SEPA EDF ELEC
-187.40
14,212.60
22/01
CB CARREFOUR MARKET
-62.30
14,150.30
28/01
VIR RECU REMB TROP
+120.00
14,270.30
Fecha / Descripción
Crédito
Débito
Balance

Scale and Coverage

Procesamos más de 100.000 documentos al mes para equipos de préstamos en toda Europa. Así es como se ve la infraestructura.

Infrastructure

~40 segundos por extracto

Carga a JSON validado. Los documentos multisegmento se procesan en paralelo, por lo que un PDF de 12 segmentos no tarda 12 veces más.

REST API + webhooks

Cargue vía API, reciba un webhook cuando termine. Soporte para carga por lotes.

Infraestructura europea, cumple con el RGPD

SLA de tiempo de actividad del 99,9%. Retención configurable. Los datos nunca salen de la UE.

Bancos que cubrimos

Bancos franceses

BNP Paribas, Société Générale, Crédit Agricole, Crédit Mutuel, La Banque Postale, Boursorama, CIC, LCL, Caisse d'Épargne

Bancos alemanes

Deutsche Bank, Commerzbank, Sparkasse, Volksbank, N26, DKB, ING DiBa, HypoVereinsbank

Paneuropeos & internacionales

ING, HSBC, Revolut, Wise, Barclays, Lloyds, NatWest, UniCredit, Rabobank, ABN AMRO, Santander

Bancos de Reino Unido & EE. UU.

Chase, Bank of America, Wells Fargo, Citi, HSBC UK, Barclays UK, Monzo, Starling

¿No ve su banco? Probablemente funcione de todos modos.

No usamos plantillas. El motor de extracción lee el diseño del propio documento. Los nuevos emisores funcionan sin configuración.

Preguntas frecuentes

Las preguntas que más recibimos de los equipos de préstamos y contabilidad.

Holofin procesa extractos bancarios en PDF nativo de cualquier emisor del mundo, incluidos los principales bancos europeos, británicos y estadounidenses. Maneja tanto extractos generados digitalmente como escaneados. No se necesitan plantillas ni configuraciones específicas por emisor. El sistema aprende el diseño del propio documento. Cubrimos activamente más de 100 emisores con precisión de extracción validada, y los nuevos emisores suelen funcionar sin ninguna configuración.

El motor de segmentación de Holofin detecta los límites de las cuentas (IBAN, número de cuenta, marcadores de período) y divide los PDF combinados en segmentos de extractos individuales antes de la extracción. Un PDF de 47 páginas con 3 cuentas a lo largo de 4 trimestres se convierte en 12 segmentos individuales validados independientemente. Cada segmento se extrae y se concilia su saldo por separado, para luego agregarse en una respuesta JSON unificada.

La precisión a nivel de campo supera el 97% en extractos bancarios en PDF nativo de los emisores probados. Pero la precisión bruta no lo es todo. Cada extracción incluye conciliación automática de saldos (apertura + créditos − débitos = cierre), proporcionando una validación matemática que detecta errores de extracción que una simple métrica de precisión pasaría por alto. Cuando la conciliación falla, la extracción se marca para revisión humana en lugar de aprobarse silenciosamente.

Sí. Los extractos bancarios escaneados se procesan mediante OCR con decodificación de fuentes y reconocimiento de diseño. La precisión depende de la calidad del escaneo (se recomienda 300 DPI o superior). El paso de conciliación de saldos detecta la mayoría de los errores de OCR que afectan los totales financieros. Para escaneos degradados, el sistema marca los valores de baja confianza para que los revisores se centren en los campos que requieren atención, no en todo el documento.

Sí. Holofin proporciona una REST API para el envío programático de documentos y la recuperación de resultados. Cargue un PDF, reciba un webhook cuando se complete la extracción y obtenga el resultado JSON estructurado. Se admite el procesamiento por lotes: envíe cientos de documentos en una sola llamada a la API y recopile los resultados a medida que se completen. La autenticación utiliza claves API (API keys) con alcance a nivel de organización.

Tras la extracción, Holofin verifica la ecuación contable: saldo inicial + total créditos − total débitos = saldo final, con una tolerancia de €0.01 en la moneda del extracto. También se comprueba la continuidad del saldo acumulado: el saldo de cada transacción debe ser igual al saldo anterior más o menos el importe de la transacción. El orden de fechas y la detección de duplicados completan el conjunto de validaciones. Cuando falla alguna comprobación, la extracción se marca con detalles específicos del error en lugar de un fallo genérico.

Holofin gestiona automáticamente todos los formatos numéricos principales: decimales con coma europeos (1.234,56), decimales con punto de EE. UU./Reino Unido (1,234.56), miles separados por espacios (1 234.56), negativos entre paréntesis e indicadores D/C. La detección del formato es por documento, no por emisor. El sistema lee el formato real utilizado en el extracto y lo analiza en consecuencia. No se requiere configuración ni ajustes regionales.

Sí. Holofin procesa todos los datos en infraestructura europea. La retención de documentos es configurable por organización. Los datos están cifrados en reposo y en tránsito. No se utiliza el contenido de los documentos para el entrenamiento de modelos. Holofin puede ejecutar solicitudes de eliminación de datos en cumplimiento con el Artículo 17 del RGPD (derecho de supresión). Un Acuerdo de Procesamiento de Datos (DPA) está disponible para clientes empresariales.

Extracción de extractos bancarios

Data You Can
Bank On.

Envíenos los extractos bancarios que bloquearon su última herramienta. Los PDF de 47 páginas con múltiples cuentas. Los escaneos degradados. El oscuro formato de la Sparkasse alemana. Le mostraremos lo que sale del otro lado.

97%+ de precisión
100K+ documents/month
Conciliación de saldos en cada extracción
Holofin