Git Product home page Git Product logo

ingdirect-python's Introduction

ingdirect

Travis Coveralls github PyPI Docker Image size License

Description

Ce package permet de consulter très simplement ses comptes bancaires ING Direct.

J'ai écrit un article sur la création de ce module sur mon blog

🎁 Vous pouvez maintenant utiliser la commande via son image Docker

Pré-requis

  • Python 3
  • pip3

Installation

pip3 install -U ingdirect

Utilisation via la commande en ligne ing.py

Après installation, la commande ing.py est disponible dans le terminal.

ing.py

Après saisie des paramètres de connexion, la commande renverra le solde de chaque compte au format csv :

Nom du compte;Solde;Devise
Compte Courant XXXX 1234;1500,50;EUR
Livret A XXXX 3456;10000,00;EUR

Plus d'informations sur la commande, via :

ing.py --help

Les paramètres de connexion peuvent également être stockés dans des variables d'environnement. Par exemple :

export ING_NUM_CLIENT="1234567"
Variable d'environnement Description
ING_NUM_CLIENT Numéro de client ING Direct
ING_DATE_NAISSANCE Date de naissance au format JJMMAAAA (ex: 30121982)
ING_CODE Mot de passe ING Direct (ex : 123456)

Utilisation via le package Python

# -*- coding: utf-8 -*-
import ingdirect as ing

synthese_comptes = ing.synthese_comptes(num_client=<NUMERO_CLIENT>, date_naissance=<DATE_NAISSANCE>, code=<CODE_SECRET>)

for compte in synthese_comptes:
    print("%s %s : %.2f€" % (compte.type, compte.label, compte.solde))

print("Solde total des comptes : %.2f€" % (synthese_comptes.solde_total))

Ce qui renverra ce type de résultats :

Compte Courant XXXX 1234 : 1500.50€
Livret A XXXX 3456 : 10000.00€
Solde total des comptes : 11500.50€

Attributs de l'objet Synthese_comptes renvoyé par la fonction synthese_comptes

Nom de l'attribut Description
dict Dictionnaire complet renvoyé par ING
solde_total Solde total des comptes
liste_comptes Liste des objets de type Compte (cf. ci-dessous)

Attributs des objets de type Compte, obtenus via l'attribut liste_comptes

Nom de l'attribut Description
dict Dictionnaire complet renvoyé par ING
solde Solde du compte
label Nom du compte (ex: "XXXX 1234")
type Type du compte (ex: "Compte Courant")
uid Identifiant unique du compte

Docker

Vous pouvez utiliser l'outil ing avec son image Docker

Pour cela, exécutez :

docker run -it --rm thibdct/ing

🤘 Encore plus facile 🤘

J'ai créé un script bash pour créer le container Docker encore plus facilement.

Installation :

curl -s https://raw.githubusercontent.com/tducret/ingdirect-python/master/ing.sh \
> /usr/local/bin/ing && chmod +x /usr/local/bin/ing

Vous pouvez remplacer /usr/local/bin par un autre répertoire connu dans la variable d'environnement $PATH

On vérifie que cela fonctionne :

ing --help
ing -n NUMERO_CLIENT -d DATE_NAISSANCE -c CODE_SECRET

Vous pouvez mettre à jour l'outil avec :

ing --upgrade

et le désinstaller avec :

ing --uninstall

ingdirect-python's People

Contributors

tducret avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ingdirect-python's Issues

Erreur PIN

Bonjour, tout d'abord merci pour ce repo qui m'est bien utile 👍

Mais depuis peu j'obtiens systématiquement cette erreur :

ConnectionError: Status code 500 for url https://m.ing.fr/secure/api-v1/login/sca/pin
{"error":{"code":"INTERNAL_ERROR","message":"Ce service est indisponible pour le moment. Toutes nos excuses pour la gêne occasionnée. Pour effectuer vos opérations habituelles, réessayez plus tard ou contactez notre Centre de Relation Client."}}

Une idée d'où ça peut venir ?

Impossible d'installer le module

Bonjour,

Tout d'abord merci pour ce super travail et pour le site web très pédagogique.

J'essaye d'installer ce module mais je reçois les erreurs ci-dessous. J'ai bien rempli les requirements et testé avec un Python 3.5, 3.6, 3.7 et 3.8.

ERROR: Command errored out with exit status 1: command: /home/adrien/PycharmProjects/Python/ING/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-zpp9k40n/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-zpp9k40n/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-syqzjjlf cwd: /tmp/pip-req-build-zpp9k40n/ Complete output (7 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-req-build-zpp9k40n/setup.py", line 23, in <module> requirements = [str(ir.req) for ir in install_reqs] File "/tmp/pip-req-build-zpp9k40n/setup.py", line 23, in <listcomp> requirements = [str(ir.req) for ir in install_reqs] AttributeError: 'ParsedRequirement' object has no attribute 'req' ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Erreur d'authenfication

Hello,

Pour commencer, merci pour ce module ! =)

J'ai, cependant, une erreur qui est la suivante:

File "/usr/local/lib/python3.5/dist-packages/ingdirect/__init__.py", line 70, in synthese_comptes
    ing._login(num_client=num_client, date_naissance=date_naissance)
  File "/usr/local/lib/python3.5/dist-packages/ingdirect/client.py", line 79, in _login
    r = self._post(url=_URL_LOGIN, post_data=post_data_dict)
  File "/usr/local/lib/python3.5/dist-packages/ingdirect/client.py", line 72, in _post
    status=ret.status_code, url=url, content=ret.text))
ConnectionError: Status code 412 for url https://m.ing.fr/secure/api-v1/login/cif
{"error":{"code":"AUTHENTICATION.INVALID_CIF_AND_BIRTHDATE_COMBINATION","message":"Votre numéro de client et votre date de naissance ne correspondent pas. Veuillez réessayer.","values":{}}}

L'erreur semble assez claire, en revanche, ce sont les mêmes identifiants utilisés sur le web.
Je suis en Python 3.5.2.

Si une idée apparait, elle m'intéresse !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.