Bank Feed: GoCardless Bank Account Data (EU/UK)
by ERP Heritage https://www.erpheritage.com.au/Bank Feed: GoCardless EU/UK
Live PSD2 bank transaction feed from EU and UK accounts via GoCardless, bringing booked transactions directly into bank statements with no external charges.
Why this module
Bank Feed: GoCardless EU/UK
Free tier on GoCardless
No subscription lock-in, no Odoo IAP surcharge. Deploy on day one with free credentials from GoCardless.
Only settled transactions
Pulls booked transactions only, not pending. Matches final bank state without chasing pending reversals.
Trust the source
GoCardless already signs amounts correctly (negative = debit). No amount-flip logic, no reconciliation guessing.
Day in the life
A UK accountant at an EU subsidiary reconciles daily
Login, set date range, click Fetch. The GoCardless connector exchanges credentials for an access token once, then polls booked transactions for that date range and creates statement lines with counterparty names and descriptions intact. Amounts are already signed by the bank. Lines deduplicate on bank reference, so re-running fetch does not create duplicates. Done in 30 seconds; statement ready to match against invoices.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
Missing secret_id, secret_key, or account_id in profile triggers ConnectorError with a clear message listing which field is missing.
Rows missing transaction id, booking date, or amount are skipped silently. Only complete transactions become statement lines.
When remittance is an array instead of a single string, fields are joined with spaces into the description. Handles both structured and unstructured payment info.
Profile currency_code defaults to EUR if not set. GoCardless amounts carry their own currency field and override the profile default on a per-transaction basis.
Connector calls GoCardless /token/new/ endpoint fresh each run; no manual refresh token management. Profiles do not cache access tokens across runs.
What is inside
Built to do the job, end to end.
- connectors/gocardless_live.py. GoCardlessLiveConnector class inheriting LiveBankConnector. Implements authenticate() to exchange secret_id + secret_key for access token, and fetch_transactions() to query /accounts/{id}/transactions/ for booked list. _map_transaction() static method handles field mapping and validation.
- connectors/__init__.py. Imports gocardless_live module to trigger @register_connector decoration at import time, registering the connector under 'gocardless' key in the bank-feed framework registry.
- tests/test_gocardless_live.py. EhAccountIntegrationTestCase subclass with four test methods. Validates connector registration, token flow, signed amount mapping, counterparty/description extraction, remittance array handling, credential validation errors, and end-to-end profile.run_fetch() statement line creation.
- __manifest__.py. Module metadata declaring LGPL-3 license, version 19.0.1.0.0, depends on eh_account_bank_statement_import (the live bank-feed framework), and installs no data XML. Application flag false; auto_install false.
Honest about the edges
What this does not do, so nothing surprises you.
- Requires a GoCardless account with API credentials; no in-app credential wizard.
- Covers only EU and UK PSD2 banks on the GoCardless network; non-participating banks cannot be added.
- Pulls booked transactions only. Pending transactions are not fetched and do not affect reconciliation.
- Imports are idempotent on bank reference (transactionId), so re-running fetch with overlapping dates does not duplicate statement lines, but requires the bank-feed framework's statement management to avoid line collisions.
- Currency code in transaction payload overrides profile default; if neither is set, defaults to EUR. No currency conversion.
- Access token requested fresh on each fetch run; connector does not manage token refresh lifecycle or cached credentials.
GoCardless PSD2, EU bank feed, UK banking connector, open banking API, live transaction import, bank account data, automatic reconciliation, Nordigen successor, SEPA payments, booked transactions, statement automation, real-time bank sync
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
The Australia country pack for the ERP Heritage Employment Hero integration
Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...
Sync Employment Hero leave categories, leave requests and leave balances into the standard Odoo Time Off app, wit...
Show the Hijri (Umm al-Qura) date alongside Gregorian dates across Odoo 19
Please log in to comment on this module