La Banque Postale et des PDFs
2020-12-03 📖 4 min
J'ai l'impression qu'une majorité de banques ne rendent pas facilement disponibles l'historique d'un compte. Dans mon cas, en regardant avec La Banque Postale, l'interface web ne permet d'afficher qu'un nombre très limité d'opérations par page, et limite à une poignée d'années la consultation. Tout le reste passe par les relevés de compte par PDF.
De leur côté, les relevés de compte contiennent tout un tas d'informations, de manière parfaitement non-utilisables de manière automatisée. Dans le cas de La Banque Postale, les fichiers sont nommés de manière très pratique "Relevé_de_compte.pdf", ce qui les rend absolument malpratiques à utiliser et archiver, dans la mesure où ils ont tous le même nom !
La moulinette
Pour faire un peu d'ordre dans tous mes documents de compte venant de La Banque Postale, je veux les renommer avec un nom de fichier pratique et informatif. J'ai donc créé une moulinette automatique pour faire ce job.
Présentation
Avant tout, je cherche un nom de document le plus informatif possible. Je me suis décidé pour un nom de fichier de ce type :
ℹ️ *Année-Mois-Jour* Type de document - *Informations complémentaires (balance)*.pdf
Par exemple, pour un relevé de comptes, "informations complémentaires" va contenir pour chaque compte le nom du compte et le solde de fin de mois. En pratique, ça peut ressembler à ça :
2017-09-21 Relevé de comptes - CCP (+ 2 970,34 EUR) - Livret A (+ 850,55 EUR) - Compte Épargne Logement (+ 199,69 EUR) - Plan Épargne Logement (+ 6 162,48 EUR).pdf
Oui, c'est un nom à rallonge, mais il a plusieurs avantages :
- Un tri alphabétique est aussi un tri chronologique, merci le format de date non ambigu ISO 8601,
- La nature du document est claire : on parle d'un relevé de comptes
- Le nom reflète bien le contenu du document sans avoir besoin de l'ouvrir : liste des comptes et leur solde, ce qui est pratique pour voir rapidement une anomalie (découvert, ou virement important d'argent, principalement)
Implémentation
La moulinette a été crée avec le langage de programmation Rust, qui à l'avantage d'inciter fortement à faire du code plutôt correct. J'étais parti avec une approche de type bricolage scandaleux, mais je me suis retrouvé avec quelque chose découpé en différent module pour chaque type de document détecté, avec gestion des erreurs, et une interface en ligne de commande pour donner un poil de flexibilité.
Néanmoins, rien de tout ça n'aurait été possible aussi facilement sans pdftotext
qui permet d'extraire tout le texte d'un fichier PDF. Avec le résultat de cette conversion, il est relativement simple d'avancer : dans les premières lignes, on va déterminer le type de document en cherchant un texte spécifique :
- Relevé de vos comptes quand c'est un relevé de plusieurs compte d'un coup,
- Relevé de votre avant que La banque Postale passe au relevés groupés. Ça peut être Relevé de votre CCP, Relevé de votre PEA, Relevé de votre CEL, ou tout autre type de compte du même genre,
- VOTRE PORTEFEUILLE, pour un relevé des actions,
- COMPTE RENDU D'OPERATION, pour les opérations sur les actions.
Il existe très probablement d'autres documents qui ne rentrent pas exactement dans ces quatre types prédéfinis, mais je ratisse déjà assez large pour traiter la majorité des documents que j'ai. Selon la quantité des documents non reconnus, il peut être intéressant d'étendre cette moulinette, ou alors de renommer à la main.
Certains documents renseignent pas le solde au moment de la création du relevé, mais l'évolution (positive ou négative) du total. Pour cela, il faut chercher si la valeur finale renseignée dans le tableau PDF se trouve dans la colonne de débit ou de crédit. Pour cela, pdftotext
propose une option très intéressante, qui permet de lui demander de conserver autant que possible le positionnement du texte du PDF. Ainsi, il est possible de regarder si le texte en face de la ligne "Total"
est plutôt sous le texte "Débit" ou "Crédit".
Utilisation
Dans mon cas, les documents émis par La Banque Postale se retrouvent dans leur service Digiposte, qui à l'avantage de permettre le téléchargement de plusieurs documents d'un coup, contrairement au site de La Banque Postale. Pour cela, il faut consulter la page listant les documents de La Banque Postale (certifiés ou non), descendre la page tout en bas pour charger plus que 50 premiers éléments, jusqu'à avoir tout chargé. Ensuite, il est possible de tout sélectionner d'un coup en utilisant la case à cocher tout en haut de la liste.
Une fois ma moulinette passée sur tous les fichiers (environ 140), seulement 2 son non identifiés et laissés tels quels.
Code source et téléchargement
Le code source est disponible au téléchargement sur Github. Pour le compiler et l'exécuter, il faut utiliser une interface en ligne de commande : cargo run CHEMIN
, avec CHEMIN le dossier contenant les fichiers à renommer (ou le fichier individuel).
Si vous n'avez pas cargo
, il s'installe en une commande.