Skip to main content

CircleCI GitHub watchers Crates.io PyPi

Plaid2QIF Logo

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

  1. Install the plaid2qif command using pip

     $ pip install plaid2qif
    
  2. Authenticate and link with your financial institution (first time only). To do this, follow the steps for using the associated Account Linker tool.

  3. Configure your environment with required values. See "Authentication Configuration" below.

  4. 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>
    
  • account is the path to an account in the ledger in GnuCash that you ultimately want to import the transactions to. This is added to the !Account header in the QIF file. e.g.: Assets: Checking Accounts:Personal Checking Account. If the name has spaces be sure to quote this param.
  • account-type is a GnuCash account identifier type as documented here.
  • account-id is Plaid's account ID for the account you want to download, as obtained via list-accounts above.
  • By default, output will go to stdout to be redirected. If you want it to be written to a location use the output-dir parameter.

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 .env in your current working directory. Alternatively you could put the values in your ~/.profile or 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/*

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)

Source distribution for plaid2qif 1.4.0
File Size Uploaded
plaid2qif-1.4.0.tar.gz 8.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for plaid2qif 1.4.0
File Interpreter ABI Platform
plaid2qif-1.4.0-py3-none-any.whl Python 3 none any Details

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

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

3 release files

1.2.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page