Plaid2QIF
Description
Plaid2QIF downloads transactions from various financial institutions in JSON format and converts to formats usable by financial software.
Output Formats supported:
- QIF
- CSV
- JSON
- Extensible to others
Notes
- Tested extensively with GnuCash. Supported by any financial software that supports import from QIF.
- Supports any institution supported by Plaid.
Summary
# Download transactions in various formats (default QIF) from Plaid
plaid2qif download \
--account=<account-name> \
--account-type=<type> \
--account-id=<acct-id> \
--from=<from-date> \
--to=<to-date> \
[--output-format=<format>] \
[--output-dir=<path>] \
[--ignore-pending] \
[--verbose]
Usage
-
Install the
plaid2qifcommand usingpip$ pip install plaid2qif -
Authenticate and link with your financial institution (first time only). To do this, follow the steps for using the associated Account Linker tool.
-
Configure your environment with required values. See "Authentication Configuration" below.
-
Once configured, you're ready to download transactions and save them as QIF files:
plaid2qif download \ --from=<yyyy-mm-dd> \ --to=<yyyy-mm-dd> \ --account-type=<type> \ --account=<account-name> \ --account-id=<plaid-account-id> \ --credentials=<file>
accountis the path to an account in the ledger in GnuCash that you ultimately want to import the transactions to. This is added to the!Accountheader in the QIF file. e.g.:Assets: Checking Accounts:Personal Checking Account. If the name has spaces be sure to quote this param.account-typeis a GnuCash account identifier type as documented here.account-idis Plaid's account ID for the account you want to download, as obtained vialist-accountsabove.- By default, output will go to stdout to be redirected. If you want it to be written to a location use the
output-dirparameter.
Authentication Configuration
- You will need the following information configured in your environment in order to use this tool.
- The suggested way to populate your environment would be to use a file named
.envin your current working directory. Alternatively you could put the values in your~/.profileor however you normally initialize your environment.
| Configuration Parameter | Environment Variable Name | Description | Notes |
|---|---|---|---|
| Client ID | PLAID_CLIENT_ID |
Plaid's unique indentifier for your Plaid account. Obtain from your dashboard | Required. |
| Client Secret | PLAID_SECRET |
Plaid's authentication token for your Plaid account. Obtain from your dashboard | Required. |
| Plaid Environment | PLAID_ENV |
Operating environment. | Optional. Should be one of: sandbox, development, or production. Defaults to development. |
| Plaid API Version | PLAID_API_VERSION |
Version of the API that the plaid-python library supports. |
Optional. Defaults to 2020-09-14 |
| Access Token location | ACCESS_TOKEN_FILE |
Location of the token that grants access to a particular financial institution for downloading records from. | Required. |
Notes on Authentication Configuration
-
The access token and Plaid credentials are sensitive material as they grant access to data within your financial accounts. They should be handled carefully and not shared.
-
These are the most important values that need configuration in order to authenticate with your institution and then download records. Other values can be found in the sample.env.
-
If you're downloading from different institutions that result in multiple access token files, you can override the location of the file at the command line; see below for an example. This approach is open to suggestions for improvement if this doesn't work well for others. See Issue #27.
$ ACCESS_TOKEN_FILE=./cfg/chase.txt plaid2qif ... $ ACCESS_TOKEN_FILE=./cfg/citi.txt plaid2qif ...
Distribution
# increment version in `plaid2qif/__init__.py`
# commit everything & push
$ git tag -s vX.Y.Z
$ git push --tags
$ python3 setup.py sdist bdist_wheel
$ twine upload dist/*
Metadata
Release files for plaid2qif 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| plaid2qif-1.4.0.tar.gz | 8.6 kB | Without provenance | Details for plaid2qif-1.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| plaid2qif-1.4.0-py3-none-any.whl | Python 3 | none | any | Details for plaid2qif-1.4.0-py3-none-any.whl |
Total release size: 17.6 kB
Release files / plaid2qif-1.4.0.tar.gz
| Download URL | plaid2qif-1.4.0.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
db08159e7b7612d67a1cf53e1bb5f9ac8b3f97a6be3b3526074d247668d0c20d
|
|
BLAKE2b-256 checksum How to use checksums |
935e2aea42d4b37768d94385af45cb751fdcee9d2178c625264f02e9148e549a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/35.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.11.4 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.9.0
|
Release files / plaid2qif-1.4.0-py3-none-any.whl
| Download URL | plaid2qif-1.4.0-py3-none-any.whl |
|---|---|
| Size | 9.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f8d92ac1f730cd58256d6e96264712fe299ee70f8a612544b338e9a9334e54d5
|
|
BLAKE2b-256 checksum How to use checksums |
62a8ead2ac1269b443e8d349b691e55de418f725065a63df1d0d9414319c525f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/35.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.11.4 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.9.0
|
Security for plaid2qif 1.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.