Cela fait maintenant une dizaine d'années que j'utilise HomeBank pour suivre régulièrement mes dépenses et mes budgets. J'ai déjà eu l'occasion d'en parler par le passé, notamment pour importer l'historique de transactions PayPal1 ou encore gérer un historique de transactions avec un encours de carte bancaire à débit différé2.

Me voilà de retour pour vous partager un script permettant d'importer un historique de transactions Fortuneo, avec une nouveauté : l'utilisation de woob3 pour récupérer l'historique.

Sans woob les historiques seraient à récupérer en téléchargeant une à une les archives zip depuis l'interface client de Fortuneo, et cela ne me motivait pas tellement.

Ayant également une carte à débit différé auprès de cette banque, j'appelle deux fois woob : une première fois pour exporter les transactions par carte à venir (encours carte, avec woob bank coming) et la deuxième pour exporter les transactions du compte courant (woob bank history). Je choisis également d'en faire un export csv avec des champs sélectionnés, rdate pour la date de transaction par carte et date pour les autres types de transaction.

woob bank -b fortuneo coming <accountnumber>@fortuneo -f csv -s "rdate,label,amount" > HistoriqueFortuneoComing.csv
woob bank -b fortuneo history <accountnumber>@fortuneo -f csv -s "date,label,amount" > HistoriqueFortuneoCourant.csv

Une fois les fichiers récupérés, nous pouvons nous servir du script awk suivant pour rendre l'export compatible avec le format d'import4 de HomeBank :

#!/usr/bin/awk -f

BEGIN {
   FS=";"
   RS="\r\n"
}

{
   if (NR > 1) {
      if ($2 !~ /^CARTE [0-9]{2}\/[0-9]{2}/) {
         printf("%s;0;;%s;%s;%s;;\n", $1, $2, $2, $3);
      } else {
         buckets[$1] += $3
      }
   }
}

END {
   for (pos in buckets) {
      label = "Cb Diff"
      printf("%s;0;;%s;%s;%.2f;;\n", pos, label, label, buckets[pos])
   }
}

Note : comme pour le précédent article traitant d'une carte à débit différé, je rajoute une logique chargée de fusionner tous les mouvements par carte apparaissant sur le compte courant car ils correspondent au moment où l'encours est appliqué.

Je fais une petite boucle pour passer sur tous les fichiers :

for i in HistoriqueFortuneo*csv ; do hb-fortuneo.awk $i > fortuneo-$i ; done

Les fichiers qui en résultant peuvent maintenant être importés dans HomeBank.

Enjoy!