El Analizador de extractos bancarios es una biblioteca Python de código abierto que analiza extractos bancarios de seis formatos en DataFrames de pandas estructurados. Todo el procesamiento se realiza localmente -- cero llamadas de red, salida determinista y enmascaramiento automático de PII.
¿Para quién es?
- Equipos de tesorería que migran de MT940 a CAMT.053 y necesitan un analizador que gestione tanto los formatos antiguos como los nuevos durante la transición.
- Desarrolladores fintech que crean pipelines de conciliación, informes o contabilidad y quieren una única dependencia en lugar de combinar mt940 + ofxparse + lógica CSV personalizada.
- Equipos de cumplimiento normativo que necesitan enmascaramiento de PII por defecto y salida determinista lista para auditorías que nunca envía datos a servicios externos.
- Cualquiera que se niegue a enviar datos financieros sensibles a un SaaS de terceros cuando una herramienta local y de código abierto puede hacer el trabajo.
Formatos soportados
| Formato | Estándar | Tipos de archivo | Clase del parser |
|---|---|---|---|
| CAMT.053 | ISO 20022 Extracto banco-cliente | .xml |
CamtParser |
| PAIN.001 | ISO 20022 Iniciación de transferencia de crédito | .xml |
Pain001Parser |
| CSV | Exportaciones bancarias genéricas | .csv |
CsvStatementParser |
| OFX | Open Financial Exchange | .ofx |
OfxParser |
| QFX | Quicken Financial Exchange | .qfx |
QfxParser |
| MT940 | Estándar SWIFT | .mt940, .sta |
Mt940Parser |
Todos los formatos producen DataFrames de pandas normalizados con nombres de columna consistentes, haciendo que el procesamiento posterior sea agnóstico al formato.
Capacidades principales
- Detección automática de formato:
detect_statement_format()identifica el formato;create_parser()instancia el analizador correcto. - Análisis en streaming: Procese archivos grandes (50 MB+, 50K+ transacciones) con memoria acotada usando
parse_streaming(). - Procesamiento en paralelo: Analice múltiples archivos simultáneamente con
parse_files_parallel()usando ProcessPoolExecutor. - Deduplicación: Detecte duplicados exactos y coincidencias sospechosas con puntuaciones de confianza explicables.
- Análisis en memoria:
from_string()yfrom_bytes()para flujos de trabajo SFTP y API sin E/S de disco. - Procesamiento seguro de ZIP:
iter_secure_xml_entries()con límites de ratio de compresión, topes de tamaño de entrada y rechazo de entradas cifradas. - Exportación: CSV, JSON, Excel (
.xlsx) y DataFrames de Polars opcionales.
Seguridad y privacidad
- Enmascaramiento de PII: Nombres, IBANs y direcciones se ocultan por defecto en la salida CLI. Active la visualización con
--show-pii. - Protección XXE: El análisis XML usa
resolve_entities=False,no_network=True,load_dtd=False. - Protección contra bombas ZIP: Límites de ratio de compresión (100:1 por defecto), topes de tamaño de entrada (10 MB), rechazo de entradas cifradas.
- Prevención de path traversal: Lista de bloqueo de patrones peligrosos y resolución de enlaces simbólicos.
- Seguridad de la cadena de suministro: Dependencias con hash SHA-256 bloqueado, SBOM CycloneDX, atestación de procedencia de compilación.
Rendimiento
| Métrica | Valor |
|---|---|
| Rendimiento CAMT.053 | 27,000+ tx/s |
| Rendimiento PAIN.001 | 52,000+ tx/s |
| Latencia por transacción (CAMT) | 37 microsegundos |
| Latencia por transacción (PAIN.001) | 19 microsegundos |
| Tiempo hasta el primer resultado | < 2 ms |
| Escalado de memoria (1K-50K tx) | Constante (streaming) |
| Cobertura de pruebas | 100% cobertura de ramas |
| Pruebas | 467 en 29 archivos de prueba |
Empiece a construir
Primeros pasos con la instalación y ejemplos ❯
"Repositorio en GitHub"