{"id":26775458,"url":"https://github.com/seyuki/boursobank-exporter","last_synced_at":"2026-04-18T01:05:12.553Z","repository":{"id":283365524,"uuid":"951537548","full_name":"Seyuki/boursobank-exporter","owner":"Seyuki","description":"Script python permettant d'exporter les opérations d'un compte BoursoBank (ou plusieurs) dans un fichier csv, une base de données SQLite, ou une base de données PostgreSQL.","archived":false,"fork":false,"pushed_at":"2025-03-27T08:31:42.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T09:38:31.319Z","etag":null,"topics":["bank","boursobank","boursorama","csv","postgresql","python","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Seyuki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-19T20:51:22.000Z","updated_at":"2025-03-27T08:31:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"89a900bd-9c18-4819-a0e3-ec2981939516","html_url":"https://github.com/Seyuki/boursobank-exporter","commit_stats":null,"previous_names":["seyuki/boursobank-exporter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seyuki%2Fboursobank-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seyuki%2Fboursobank-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seyuki%2Fboursobank-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seyuki%2Fboursobank-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Seyuki","download_url":"https://codeload.github.com/Seyuki/boursobank-exporter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246131335,"owners_count":20728303,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bank","boursobank","boursorama","csv","postgresql","python","sqlite"],"created_at":"2025-03-29T03:18:24.112Z","updated_at":"2026-04-18T01:05:12.539Z","avatar_url":"https://github.com/Seyuki.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exporteur d'opérations bancaires BoursoBank\n\nScript python permettant d'exporter les opérations d'un compte BoursoBank (ou plusieurs) dans un fichier `csv`, une base de données `sqlite`, et/ou une base de données `PostgreSQL`.\n\n## Installation des dépendances\n\nLe script repose sur certains packages python qui peuvent être facilement installés via le fichier `requirements.txt`, avec pip :\n\n```\npip install -r requirements.txt\n```\n\n## Configuration\n\nDes informations sont obligatoires au bon fonctionnement du script, notamment l'identifiant client et le mot de passe de connexion à BoursoBank.\n\nCes informations peuvent être directement passées en argument du script (voir ci-dessous) ou être renseignées dans un fichier d'environnement `.env`.\n\n### Exemple de fichier .env\n\n```\nBOURSOBANK_CLIENT_ID   = '12345678'\nBOURSOBANK_PASSWORD    = '87654321'\nBOURSOBANK_ACCOUNTS_ID = '111c22222b55555a11111c66666b8888'\nBOURSOBANK_IDENTIFIER  = ''\nLOG_PATH               = '/var/logs/boursobank-exporter'\nOUTPUT_TYPE            = 'csv,sqlite,postgresql'\nEXPORT_PATH            = '~/exports_boursobank'\nSQLITE_DB_PATH         = 'exports_boursobank.db'\nPOSTGRESQL_CONN_STRING = 'postgresql://user:password@localhost:5432/dbname'\n```\n\n### Explication des variables d'environnement\n\n-   **BOURSOBANK_CLIENT_ID** : Identifiant client BoursoBank. Utilisé pour la connexion à l'espace client.\n-   **BOURSOBANK_PASSWORD** : Mot de passe utilisé pour la connexion à l'espace client.\n-   **BOURSOBANK_ACCOUNTS_ID** : Identifiant des comptes qui contiennent les opérations à exporter.\n    Plusieurs comptes peuvent être spécifiés, dans ce cas, ils doivent être séparés par une virgule.\n-   **BOURSOBANK_IDENTIFIER** : Identifiant du compte, si la connexion à l'espace client Bourso permet de gérer plusieurs comptes (par exemple un pro et un perso)\n-   **LOG_PATH** : Chemin vers le dossier qui contiendra le fichier de logs `boursobank_exporter.log`.\n    Si le chemin est vide (ou la variable non définie), alors le fichier de log sera créé dans le répertoire courant.\n-   **OUTPUT_TYPE** : Type d'exports souhaité. Les valeurs possibles sont : `csv`, `sqlite` ou `postgresql`. Il est également possible de spécifier plusieurs types, en les séparant par une virgule, exemple : `csv,sqlite` pour obtenir des exports en csv et dans la base SQLite.\n-   **EXPORT_PATH** : Chemin vers le dossier qui contiendra les exports `csv`. Cela peut être un chemin absolu ou relatif. Ne pas inclure le nom du fichier, car celui-ci sera généré automatiquement en fonction des paramètres d'export spécifiés en argument.\n    Si le chemin est vide (ou la variable non définie), alors les exports seront enregistrés dans le répertoire courant.\n-   **SQLITE_DB_PATH** : Chemin vers la base de données `sqlite` dans laquelle seront enregistrées les opérations. N'est pris en compte que si le type d'export est `sqlite` ou `both`.\n-   **POSTGRESQL_CONN_STRING** : Chaîne de connexion à la base de données PostgreSQL (au format `postgresql://`)\n\n\u003e [!Important]\n\u003e L'identifiant du compte pour la variable `BOURSOBANK_ACCOUNTS_ID` n'est pas le numéro affiché sur l'espace client BoursoBank.\n\u003e Il s'agit d'un autre identifiant, qui peut être récupéré dans l'URL de la page du compte.\n\u003e\n\u003e Par exemple : https://clients.boursobank.com/compte/cav/111c22222b55555a11111c66666b8888/mouvements\n\u003e\n\u003e `111c22222b55555a11111c66666b8888` sera donc l'identifiant du compte à spécifier.\n\n\u003e [!NOTE]  \n\u003e Pour un export SQLite ou PostgreSQL, la base contiendra une table dont le nom correspond à `client_[identifiant client]`. Les exports seront ajoutés à cette table sans écraser les précédents.\n\u003e Si la période de l'export englobe ou chevauche une période précédemment extraite, les données de cette périodes seront d'abord supprimées afin d'éviter des doublons d'opérations.\n\n## Utilisation\n\nAfin de réaliser un export en ligne de commande, le script `boursobank_exporter_cli.py` peut être exécuté avec les deux arguments suivants :\n\n-   `--from FROM_DATE` ou `-f FROM_DATE` : date au format `DD/MM/YYY` représentant la date de début des opérations à exporter.\n-   `--to TO_DATE` ou `-t TO_DATE` : date au format `DD/MM/YYY` représentant la date de fin des opérations à exporter.\n\nExemple :\n\n```\npython .\\src\\boursobank_exporter_cli.py -f \"01/01/2024\" -t \"31/12/2024\"\n```\n\nIl est possible de ne pas spécifier les dates, ou de n'en spécifier qu'une des deux. Dans ce cas, la valeur des dates non spécifiées sera automatiquement déduite par le script :\n\n-   **Début (--from)** : Si le chemin vers la base `sqlite` est spécifié (dans le fichier `.env` ou en argument), le script récupérera la date la plus récente des opérations déjà exportées pour le compte en question. Si le chemin vers la base `sqlite` n'est pas spécifié ou aucune donnée n'a été trouvée pour le compte, alors la date correspondra à la date d'il y a 30 jours.\n-   **Fin (--to)** : Date du jour.\n\nLes autres arguments obligatoires peuvent être omis s'ils sont déjà présents dans le fichier d'environnement `.env`. (Voir plus bas pour la correspondance entre les arguments et les variables d'environnement.)\n\n### Liste complète des arguments\n\nLa liste complète des arguments peut être obtenue en exécutant le script avec l'argument `-h` :\n\n```\npython .\\src\\boursobank_exporter_cli.py -h\n```\n\nQui retournera ceci :\n\n```\nusage: boursobank_exporter_cli.py [-h] [--client-id CLIENT_ID] [--password PASSWORD] [--identifier IDENTIFIER] [--accounts-id ACCOUNTS_ID] [--export-directory EXPORT_PATH]\n                                  [--output OUTPUT_TYPE] [--sqlite-db DB_PATH] [--postgresql-uri POSTGRESQL_URI] [--no-logs] [--from FROM_DATE] [--to TO_DATE]\n\noptions:\n  -h, --help            show this help message and exit\n  --client-id CLIENT_ID, -u CLIENT_ID\n                        Numéro client BoursoBank\n  --password PASSWORD, -p PASSWORD\n                        Mot de passe BoursoBank\n  --identifier IDENTIFIER, -i IDENTIFIER\n                        Identifiant BoursoBank (si plusieurs identifiants sont liés au même numéro client)\n  --accounts-id ACCOUNTS_ID, -a ACCOUNTS_ID\n                        Numéros de comptes BoursoBank, séparés par des virgules\n  --export-directory EXPORT_PATH, -d EXPORT_PATH\n                        Chemin vers le dossier dans lequel seront enregistrées les extractions\n  --output OUTPUT_TYPE, -o OUTPUT_TYPE\n                        Type d'export souhaité, peut être 'csv', 'sqlite' ou 'postgresql', ou une combinaison de ces 3 valeurs séparées par une virgule\n  --sqlite-db DB_PATH, -db DB_PATH\n                        Chemin vers la base de données SQLite\n  --postgresql-uri POSTGRESQL_URI, -pg POSTGRESQL_URI\n                        Chaine de connexion à la base PostgreSQL\n  --no-logs             Empêche le script d'enregistrer les logs sur le disque\n  --from FROM_DATE, -f FROM_DATE\n                        Date de début des transactions pour l'export\n  --to TO_DATE, -t TO_DATE\n                        Date de fin des transactions pour l'export\n```\n\n## Correspondance entre les arguments et les variables d'environnement\n\n| Argument           | Variable               | Obligatoire ?            | Par défaut                                                                 |\n| ------------------ | ---------------------- | ------------------------ | -------------------------------------------------------------------------- |\n| --client-id        | BOURSOBANK_CLIENT_ID   | X                        |                                                                            |\n| --password         | BOURSOBANK_PASSWORD    | X                        |                                                                            |\n| --identifier       | BOURSOBANK_IDENTIFIER  |                          |                                                                            |\n| --accounts-id      | BOURSOBANK_ACCOUNTS_ID | X                        |                                                                            |\n| --export-directory | EXPORT_PATH            |                          | .\\                                                                         |\n| --output           | OUTPUT_TYPE            |                          | csv                                                                        |\n| --sqlite-db        | SQLITE_DB_PATH         |                          | .\\boursobank_exports.db                                                    |\n| --postgresql-uri   | POSTGRESQL_CONN_STRING | X (si export PostgreSQL) |                                                                            |\n| --no-logs          |                        |                          | False                                                                      |\n| --from             |                        |                          | Date dernière opération exportée pour le compte, ou date d'il y a 30 jours |\n| --to               |                        |                          | Date du jour                                                               |\n\n\u003e [!NOTE]  \n\u003e Comme indiqué plus haut, les arguments obligatoires peuvent être omis si la variable d'environnement à laquelle ils sont associés est spécifiée.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseyuki%2Fboursobank-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseyuki%2Fboursobank-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseyuki%2Fboursobank-exporter/lists"}