---
title: "Enable Banking"
space: "ERPNext"
url: "https://www.prilk.com/docs/erpnext/integrations/banking/enable-banking"
updated: "2026-05-16"
---

# Enable Banking

Enable Banking connects ERPNext to your real bank via the [Enable Banking](https://enablebanking.com) 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](https://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](../reconciliation/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](https://github.com/prilk-consulting/enable_banking).
