Skip to main content

API for the Tangerine Bank

Project description

```
_____ _
|_ _|_ _ _ __ __ _ ___ _ __(_)_ __ ___
| |/ _` | '_ \ / _` |/ _ \ '__| | '_ \ / _ \
| | (_| | | | | (_| | __/ | | | | | | __/
|_|\__,_|_| |_|\__, |\___|_| |_|_| |_|\___|
|___/
```


[![Latest PyPI version](https://img.shields.io/pypi/v/tangerine.svg)](https://pypi.python.org/pypi/tangerine)
[![CircleCI](https://circleci.com/gh/kevinjqiu/tangerine.svg?style=svg)](https://circleci.com/gh/kevinjqiu/tangerine)
[![codecov](https://codecov.io/gh/kevinjqiu/tangerine/branch/master/graph/badge.svg)](https://codecov.io/gh/kevinjqiu/tangerine)

API and scraper for the Tangerine Bank (Canada).

Install
=======

pip install tangerine

Usage
=====

Authentication
--------------

```python
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.

List accounts
-------------

With an active session, use `client.list_accounts()`:

```python
with client.login():
accounts = client.list_accounts()
```

List transactions
-----------------

```python
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)
```

Download statements
-------------------

```python
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)
```


Contribution
============

Requirements:

* Python 3
* [pipenv](https://github.com/kennethreitz/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 :)


Licence
=======

MIT

Changelog
=========

See [CHANGELOG.md](CHANGELOG.md)

Authors
=======

tangerine was written by Kevin J. Qiu <kevin@idempotent.ca> with [contributors](https://github.com/kevinjqiu/tangerine/graphs/contributors).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

tangerine-0.3.9-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file tangerine-0.3.9-py3-none-any.whl.

File metadata

File hashes

Hashes for tangerine-0.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6e52232429222e78c7d38073d3efae031595ebe8051d97d1a5e73cff29c8ee0e
MD5 1fb78f243888c6932675e54ae3b677bc
BLAKE2b-256 484ce6138e1c04e9b4b0d1082ab7c6e348665f44c19a674e8077e9fc4d4e6638

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page