to select ↑↓ to navigate
ERPNext

ERPNext

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

Enable Banking

Enable Banking

Enable Banking connects ERPNext to your real bank via the Enable Banking PSD2 API. It supports 2,500+ banks across the EU and EEA through Open Banking — major Dutch banks (ABN AMRO, ING, Rabobank, Bunq, Knab, Triodos, ASN, SNS, RegioBank, Volksbank), plus Belgian, German, French, Nordic and other EEA banks.

Transactions sync automatically every night; no manual CSV exports from your bank's portal.

What you'll need

  • An Enable Banking application — sign up at enablebanking.com and create one in the Control Panel. Sandbox usage is free.
  • Three pieces of information from the Application page:
    • application_id (UUID)
    • kid (the key ID)
    • The RS256 private key PEM — downloadable when you first create the application. Save it now; you can't re-download it later.
  • Your bank's online-banking credentials (you'll authenticate at your bank during setup; ERPNext never sees the password).
  • A configured ERPNext Bank Account for each bank account you want to sync.

How it compares to GoCardless Banking

Both pull transactions over PSD2 Open Banking. The main differences:

  • Auth — Enable Banking signs a fresh JWT per API call (locally, with your private key). GoCardless issues you an access token that ERPNext refreshes daily.
  • Coverage — Enable Banking has stronger Nordic and EEA reach; GoCardless has stronger UK reach. Both cover the major Dutch and Belgian banks.
  • Consent lifetime — Both PSD2-capped at ~180 days. After that you re-authorize via the bank.

If GoCardless Banking is already working for you, there's no reason to switch. Reach for Enable Banking when you want EEA-wide coverage or prefer the simpler stateless auth model.

One-time setup: connect to Enable Banking

  1. Open Enable Banking Settings in the awesomebar.
  2. Fill in Application ID, KID, and Private Key (paste the PEM, including the -----BEGIN PRIVATE KEY----- lines).
  3. Set Environment to Sandbox while testing, or Production for real banks.
  4. Copy the auto-filled Redirect URL and paste it back into your Enable Banking Control Panel under the application's allowed redirect URLs. The two must match exactly.
  5. Click Test Connection — the app signs a JWT, calls GET /application and reports success or the error message.

Connecting a bank account (per bank)

  1. From Enable Banking Settings, click Browse Banks.
  2. Pick a country and PSU type (personal for consumer accounts, business for company accounts).
  3. Pick a bank (ASPSP) from the list. The app creates an Enable Banking Session with status PENDING and an authentication URL.
  4. Open the auth URL — you (or the account owner) authenticates at the bank. The bank redirects back to /api/method/enable_banking.api.handle_auth_callback.
  5. The callback calls POST /sessions to exchange the auth code for a session, flips the session to AUTHORIZED, and auto-creates one Enable Banking Account per discovered bank account.

Per-account configuration

After authentication, open each Enable Banking Account and:

  • Link Bank Account — pick the matching ERPNext Bank Account. This is the link that lets transactions flow in.
  • Automatic Sync — tick to include this account in the daily scheduled fetch.
  • Click Fetch Account Details once to populate IBAN, account holder and current balance.

Fetching transactions

Three ways:

  1. Wait for the daily schedule — every account with Automatic Sync runs once per day.
  2. Manual fetch — open an Enable Banking Account and click Sync Transactions.
  3. Bulk manual fetch — run Fetch for All Accounts from Enable Banking Settings.

Each fetch pulls transactions from /accounts/{uid}/transactions, paginated via Enable Banking's continuation_key until exhausted. New transactions land as ERPNext Bank Transaction records (deduplicated by Enable Banking's stable reference), with debtor / creditor names and IBANs filled in for reconciliation.

After transactions arrive

Once in ERPNext as Bank Transactions, the transactions are ready for reconciliation. If you've also installed Advanced Bank Reconciliation, it'll match most transactions against your existing payments automatically.

Otherwise use the built-in Bank Reconciliation Tool.

Session expiry

PSD2 caps consents at 180 days. When a session expires, the daily job marks it EXPIRED and stops syncing its accounts. To resume:

  1. Start a new authorization via Browse Banks for the same bank.
  2. Re-link the new Enable Banking Account records to the same ERPNext Bank Accounts.

→ Full setup, troubleshooting and architecture details live in the Enable Banking app README.

Last updated 1 day ago
Was this helpful?
Thanks!