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.