Skip to content

Fetch transactions from GoCardless API & append them to an Excel file

Notifications You must be signed in to change notification settings

KevinTheMix/gocardless-to-excel

Repository files navigation

GoCardless to Excel

Goes through the steps of the GoCardless web API to produce a JSON containing the last transactions. Then uses pandas/openpyxl to parse that json and append it as rows in an existing Excel file (completing missing rows based on Transaction ID column).

Quick Tips

Glossary

  • eIDAS (Electronic Identification & Trust Services) = EU-wide legislation defining how to certify identity & signatures digitally
  • Providers = registered organization entrusted to act as a third-party to handle banking information on behalf of users and deliver them granular services
    • AISP (Account Information Service Provider) = provider of AIS
    • PISP (Payment Initiation Service Provider) = provider of PIS
  • Requisition = link to bank account (sample)
  • Services = granular functionality (eg read but not write)
    • AIS (Account Information Service) = service to access account balances & transaction histories
    • PIS (Payment Initiation Service) = service to initiate/cancel a payments
  • PSD2 (Payment Services Directive 2) = citizen-benefiting EU law mandating banks to offer a secured digital access (API) via third-party apps

/!\ All URLs must end with /

  • create a user secret
  • HTTP POST to get access (& refresh) token, save it in a file
  • (optional) HTTP GET banks list
  • (optional) HTTP POST end user agreement (can change history days)
  • HTTP POST to create a requisition (authenticate with bank via an OAuth-like workflow)
    • POST response contains a link (opened in a browser)
    • Set http://localhost as return/redirect URL
    • Authenticates (via ItsMe), then browser gets redirected to localhost URL with a requisition ID (in URL as a query parameter named ref)
    • That requisition ID is actually a reference to that user's consent stored in GoCardless backend
  • HTTP GET accounts, passing requisition ID
  • HTTP GET transactions, passing account ID

Usage

  • .\go_venv\Scripts\Activate.ps1
  • main.py <secret_file> <excel_file> <excel_sheet>
  • Build .exe via pyinstaller --onefile (--windowed) (--name gocardless.exe) main.py

About

Fetch transactions from GoCardless API & append them to an Excel file

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages