Analyseur de relevés bancaires est une bibliothèque Python open source qui analyse les relevés bancaires de six formats en DataFrames pandas structurés. Tout le traitement s'effectue localement -- zéro appel réseau, sortie déterministe et masquage automatique des DCP.
À qui s'adresse cette bibliothèque ?
- Équipes de trésorerie migrant de MT940 vers CAMT.053, ayant besoin d'un analyseur gérant les deux formats pendant la transition.
- Développeurs fintech construisant des pipelines de rapprochement, de reporting ou de comptabilité, souhaitant une seule dépendance au lieu de combiner mt940 + ofxparse + logique CSV personnalisée.
- Équipes de conformité nécessitant un masquage des DCP par défaut et une sortie déterministe et vérifiable, sans jamais envoyer de données vers des services externes.
- Toute personne refusant d'envoyer des données financières sensibles à un SaaS tiers quand un outil local et open source peut faire le travail.
Formats pris en charge
| Format | Norme | Types de fichiers | Classe du parseur |
|---|---|---|---|
| CAMT.053 | ISO 20022 Bank-to-Customer Statement | .xml |
CamtParser |
| PAIN.001 | ISO 20022 Credit Transfer Initiation | .xml |
Pain001Parser |
| CSV | Exports bancaires génériques | .csv |
CsvStatementParser |
| OFX | Open Financial Exchange | .ofx |
OfxParser |
| QFX | Quicken Financial Exchange | .qfx |
QfxParser |
| MT940 | Norme SWIFT | .mt940, .sta |
Mt940Parser |
Tous les formats produisent des DataFrames pandas normalisés avec des noms de colonnes cohérents, rendant le traitement en aval agnostique du format.
Fonctionnalités clés
- Détection automatique du format :
detect_statement_format()identifie le format ;create_parser()instancie le bon parseur. - Analyse en streaming : Traitez de gros fichiers (50 Mo+, 50K+ transactions) avec une mémoire constante grâce à
parse_streaming(). - Traitement parallèle : Analysez plusieurs fichiers simultanément avec
parse_files_parallel()via ProcessPoolExecutor. - Dédoublonnage : Détectez les doublons exacts et les correspondances suspectes avec des scores de confiance explicables.
- Analyse en mémoire :
from_string()etfrom_bytes()pour les flux SFTP et API sans E/S disque. - Traitement ZIP sécurisé :
iter_secure_xml_entries()avec limites de ratio de compression, plafonds de taille et rejet des entrées chiffrées. - Export : CSV, JSON, Excel (
.xlsx) et DataFrames Polars en option.
Sécurité et confidentialité
- Masquage des DCP : Les noms, IBAN et adresses sont masqués par défaut en sortie CLI. Activez
--show-piipour afficher les données complètes. - Protection XXE : L'analyse XML utilise
resolve_entities=False,no_network=True,load_dtd=False. - Protection anti-bombe ZIP : Limites de ratio de compression (100:1 par défaut), plafonds de taille (10 Mo), rejet des entrées chiffrées.
- Prévention du parcours de répertoires : Liste noire de motifs dangereux et résolution des liens symboliques.
- Sécurité de la chaîne d'approvisionnement : Dépendances verrouillées par hash SHA-256, SBOM CycloneDX, attestation de provenance de build.
Performance
| Métrique | Valeur |
|---|---|
| Débit CAMT.053 | 27 000+ tx/s |
| Débit PAIN.001 | 52 000+ tx/s |
| Latence par transaction (CAMT) | 37 microsecondes |
| Latence par transaction (PAIN.001) | 19 microsecondes |
| Délai avant premier résultat | < 2 ms |
| Évolution mémoire (1K-50K tx) | Constante (streaming) |
| Couverture de tests | 100% couverture de branches |
| Tests | 467 répartis sur 29 fichiers de tests |