Grisbi et un compte de la BanquePostale

Etant utilisateur de grisbi et titulaire d’un compte à la BanquePostale, je souhaitais contrôler facilement mes comptes au travers du service Videoposte.

Comme d’habitude, mon fidèle ami Perl est là pour m’aider 🙂

Grisbi est un excellent logiciel de comptabilité personnelle. Seulement voilà, il permet d’importer des fichier pour faire des pointages, mais pas de les récupérer directement sur les sites internet des banques. Voilà un petit script perl pour combler cette lacune.

Tout d’abord, il faut récupérer le module Perl permettant d’accéder au site web de votre banque, ici la BanquePostale.
[code lang= »bash »]
wget http://search.cpan.org/CPAN/authors/id/P/PI/PIXEL/Finance-Bank-LaPoste-4.00.tar.gz
tar xvf Finance-Bank-LaPoste-4.00.tar.gz
cd Finance-Bank-LaPoste-4.00
perl Makefile.PL
make sudo make install
[/code]
Ensuite, il fait créer le script videoposte.pl suivant:

[code]

#!/usr/bin/perl -w

use Finance::Bank::LaPoste;
use POSIX;

my @accounts = Finance::Bank::LaPoste->check_balance(username => « XXXXXX »,
password => « NNNNNN »);

foreach my $account (@accounts)
{
my $date=strftime(« %Y%m%d », localtime);
my $qifdate=strftime(« %d/%m/%Y », localtime);
my $filename=$account->;account_no. »_ ».$date. ».qif »;
open(FD, »> $filename » );
print FD « !Type:Bank\n »;
print FD « D ».$qifdate. »\n »;
print FD « T ».$account->balance. »\n »;
print FD « CX\n »;
print FD « PSolde\n »;
print FD « L[« .$account->name. »]\n »;
print FD « ^\n »;
foreach ($account->statements)
{
my ($y,$m,$d)=($_->date =~ m/(\d+)\/(\d+)\/(\d+)/);
print FD « D ».$d. »/ ».$m. »/ ».$y. »\n »;
print FD « P ».$_->description. »\n »;
print FD « M ».$_->description. »\n »;
print FD « T ».$_->amount. »\n »;
print FD « L[Import AUTO]\n^\n »;
}
close(FD);
}

[/code]

Pensez à remplacer les XXXX et NNNN par vos numéros de compte et votre mot de passe. Ensuite, le script va vous créer autant de fichier QIF que vous n’avez de comptes. Chaque fichier contient votre relevé de compte des 30 derniers jours. Vous pouvez par exemple placer ce script dans la crontab pour qu’il vous récupère vos relevés de comptes toutes les semaines.

Vous n’avez plus qu’à importer ces fichiers dans grisbi pour pointer automatiquement vos opérations.

Je n’ai pas testé, mais le script doit fonctionner pour les autres banques, il suffit juste d’utiliser le bon module Perl.

Comme il est précisé sur le site de l’auteur, celui-ci vous invite à relire son code pour s’assurer de son intégrité (On ne sait jamais, quand il s’agit d’argent…).

Amusez vous bien 😉

[EDIT 5/04]: Module perl mis à jour en version 4.00 pour supporter la nouvelle authentification mise en place par la Banque Postale.

6 réponses sur “Grisbi et un compte de la BanquePostale”

  1. Salut,
    Je n’arrive pas à utiliser Finance::Bank::LaPoste.
    J’obtiens l’erreur suivante :
    Can’t call method "value" on an undefined value at /usr/lib/perl5/site_perl/5.8/
    Finance/Bank/LaPoste.pm line 128.
    Est-ce que ton script videoposte.pl marche toujours pour toi ?
    Merci

  2. Salut,

    Je viens de tester ce soir, ça ne marche plus ;-( La dernière fois que je m’en suis servi, ça fonctionnait ( le 17/03 ).

    Je vais essayer de regarder le code. Sinon il faudra attendre une MAJ de l’auteur…

  3. Salut,

    Je viens d’ouvrir un bug sur le site CPAN. J’espère que l’auteur pourra nous corriger ça rapidement 😉

  4. L’auteur Pascal ‘Pixel’ Rigaux nous a entendu, il a mis à jour son module. Un grand merci pour sa réactivité 🙂

  5. Apparemment il y a un point virgule de trop dans
    my $filename=$account->;account_no.”_”.$date.”.qif”;
    entre account-> et account_no.

  6. Bonjour, voila mon problème :
    J’ai lancé : [code]perl videoposte.pl[/code]
    j’ai eu une erreur : [code]syntax error at videoposte.pl line 13, near « ->; »
    Execution of videoposte.pl aborted due to compilation errors.[/code]
    j’ai enlevé tranformé la ligne : [code]my $filename=$account->;account_no. »_ ».$date. ».qif »;[/code]
    en
    [code]my $filename=$account->account_no. »_ ».$date. ».qif »;[/code]
    puis relancé [code]perl videoposte.pl[/code]
    et la, j’obtient : [code]bad response from first url[/code]
    Et là, je ne sais plus…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En savoir plus sur Notes d'un bricoleur

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continue reading