GoCardless Banking
GoCardless Banking connects ERPNext to your real bank via the GoCardless Bank Account Data API (formerly Nordigen). It supports 2,500+ banks in the UK and EU through Open Banking — including all major Dutch banks (ABN AMRO, ING, Rabobank, Bunq, Knab, Triodos, ASN, SNS, RegioBank, Volksbank).
Transactions sync automatically every night; no manual CSV exports from your bank's portal.
What you'll need
- A GoCardless Bank Account Data account (separate from a regular GoCardless payments account — sign up at bankaccountdata.gocardless.com).
- Your bank's online-banking credentials (you'll be redirected to your bank for authentication during setup, not asked to share creds with ERPNext).
- A configured ERPNext Bank Account for each bank account you want to sync.
GoCardless's Bank Account Data API is free for small volumes — see their pricing page for current limits.
One-time setup: connect to GoCardless
- Open GoCardless Banking Settings in the awesomebar.
- Paste your Secret ID and Secret Key from the GoCardless bankaccountdata dashboard.
- Click Generate Access Token. The app exchanges the secret pair for an access token + refresh token, valid for ~24 hours / 30 days respectively. They auto-refresh on a daily schedule from then on.
Connecting a bank account (per bank)
- Go to GoCardless Banking Agreement → New.
- Bank — search and pick your bank from the live list (fetched from GoCardless, so you'll see exactly what they currently support).
- Save. The form generates a Requisition Link.
- Click the link — you'll be redirected to your bank's online-banking login (your real bank, not GoCardless). Authenticate.
- Your bank redirects back to ERPNext via the OAuth callback. The agreement transitions to Authenticated, and GoCardless Banking Accounts are created for each bank account in scope.
Per-account configuration
After authentication, each discovered account becomes a GoCardless Banking Account record. Open each one and:
- Link Bank Account — pick the matching ERPNext Bank Account record. This is the link that lets transactions flow into ERPNext.
- Automatic Sync — tick this to include the account in the daily scheduled fetch. Untick it for accounts you only want to sync manually.
- Sync Frequency — daily is the default; the GoCardless API caps free-tier requests at 4 fetches per account per 24 hours, so daily is the sweet spot.
Fetching transactions
Three ways:
- Wait for the daily schedule. Every account with Automatic Sync ticked syncs once a day, typically overnight.
- Manual fetch from the account form. Open a GoCardless Banking Account, click Fetch Transactions. Useful when you want to see today's transactions before tomorrow's scheduled run.
- Bulk manual fetch. Run Fetch Transactions for All Accounts from GoCardless Banking Settings to refresh every account at once.
Each fetch:
- Pulls transactions from the GoCardless API (up to the past 90 days on first sync; incremental after that).
- Creates ERPNext Bank Transaction records, deduplicating by GoCardless transaction ID.
- Sets each new transaction's status to Unreconciled.
After transactions arrive
Once in ERPNext as Bank Transactions, the transactions are ready for reconciliation. If you've also installed Advanced Bank Reconciliation, the auto-reconcile job runs as part of the daily schedule and matches most transactions against your existing payments.
If not, use the standard Bank Reconciliation Tool from ERPNext.
Token management
GoCardless access tokens expire after about 24 hours. The app:
- Stores access + refresh tokens in GoCardless Banking Settings (the secret is encrypted at rest).
- Refreshes the access token daily via a scheduled task before it expires.
- Regenerates from secret pair if the refresh token has also expired (after ~30 days of disuse).
If you ever see authentication errors in the integration request log, the manual fix is: open GoCardless Banking Settings → click Generate Access Token again. The scheduler should handle this without intervention in normal operation.
Limitations
- EU/UK only. GoCardless's Bank Account Data API doesn't cover the US, APAC, or LATAM. For those, use CSV / camt.053 import into ERPNext directly.
- Read-only. This app fetches transactions; it doesn't initiate payments. For Dutch SEPA payments out, see the SEPA Payments feature of erpnext_netherlands.
- 90-day initial history. First sync pulls 90 days max — older transactions need a CSV / camt.053 import to backfill.
- Bank-specific quirks. A handful of EU banks return inconsistent transaction descriptions or apply rolling delays. If your bank's data looks off, check the integration request log for the raw response.