_____ _
|_ _|_ _ _ __ __ _ ___ _ __(_)_ __ ___
| |/ _` | '_ \ / _` |/ _ \ '__| | '_ \ / _ \
| | (_| | | | | (_| | __/ | | | | | | __/
|_|\__,_|_| |_|\__, |\___|_| |_|_| |_|\___|
|___/
API and scraper for the Tangerine Bank (Canada).
pip install tangerine
from tangerine import InteractiveSecretProvider, TangerineClient
secret_provider = InteractiveSecretProvider()
client = TangerineClient(secret_provider)
with client.login():
...
Using InteractiveSecretProvider
will prompt user for username/account #, security challenge questions and PIN number.
The call to client.login()
will initiate the login process. After the login is successful, subsequent calls to the API will be authenticated.
If client.login()
is used as a context manager (i.e., with client.login():
), logout will be automatically initiated after the code block exits
or any exception is raised.
With an active session, use client.list_accounts()
:
with client.login():
accounts = client.list_accounts()
with client.login():
accounts = client.list_accounts()
start_date = datetime.date(2017, 10, 1)
end_date = datetime.date(2017, 11, 1)
client.list_transactions([acct['number'] for acct in accounts], start_date, end_date)
with client.login():
accounts = client.list_accounts()
start_date = datetime.date(2017, 10, 1)
end_date = datetime.date(2017, 11, 1)
client.download_ofx(account[0], start_date, end_date)
Requirements:
- Python 3
- pipenv
- basic knowledge of Python and git
To contribute to the development, fork this repo to your github account, and clone it.
$ git clone https://YOUR-CLONE-URL tangerine
$ cd tangerine
$ pipenv install # this creates the virtualenv and installs the dependencies
$ pipenv shell # this activates the virtualenv
$ git checkout -b branch-for-feature-or-bug-fix
HACK...HACK...HACK
$ git commit ...
$ git push
and send a PR :)
MIT
See CHANGELOG.md
tangerine was written by Kevin J. Qiu kevin@idempotent.ca with contributors.