Spain SEPA Credit Transfer — pain.001 Generator
Generate bank-ready SEPA Credit Transfer files (ISO 20022 pain.001, Cuaderno 34.14 compatible) for vendor, payroll and supplier payments — upload straight to your own Spanish bank, no gateway, no per-transaction fees
Build SEPA Credit Transfer initiation files inside Odoo and upload them directly to your bank's online portal. Every transfer is validated against the ISO 20022 rules — IBAN MOD-97 check digits, Spanish CCC national control digits, BIC structure and ISO 11649 RF references — and the message control sums and transaction counts are computed exactly as your bank re-derives them, so files clear validation on the first upload. Your account data never leaves your database.
pain.001.001.09 & pain.001.001.03
Emit the version your bank expects: pain.001.001.09 — the
ISO 20022 2019 message version on which the current SEPA Credit
Transfer scheme (2025 rulebook) is based, and the default — or the
legacy pain.001.001.03 (Spanish AEB Cuaderno 34.14 /
Norma 34) for an older upload channel. The namespace, the BIC element
(BIC vs BICFI) and the structure adapt
automatically.
Spanish IBAN & CCC validation
Every Spanish account is validated twice: the IBAN MOD-97 check digits and the two national CCC control digits (positions 9 and 10 of the 20-digit account code), using the official AEB weighted modulo-11 algorithm. Non-Spanish SEPA IBANs are validated with the ISO 13616 MOD-97 check. Bad accounts are caught before the file ever reaches your bank.
Structured & free-text remittance
Attach a free-text payment concept (up to 140 characters, transliterated
to the EPC SEPA Latin character set) or a structured ISO 11649
RF creditor reference — the module computes and validates the
RF check digits for you and wraps a plain reference into a valid
RFkk… reference automatically.
Build from vendor bills
Select posted vendor bills and the Build from Bills wizard turns them into a ready batch — netting amounts due per supplier into one transfer (or one transfer per bill), pulling each beneficiary's IBAN and BIC straight from their bank account.
What is in the box
| Feature | Detail |
|---|---|
| Message format | ISO 20022 pain.001.001.03 (Cuaderno 34.14) and pain.001.001.09 |
| Charge bearer | SLEV (shared) with Service Level SEPA |
| Batch booking | One consolidated debit on your statement, configurable |
| IBAN validation | ISO 13616 / ISO 7064 MOD-97-10 check digits |
| Spanish CCC | National modulo-11 control digits (AEB algorithm) |
| BIC validation | ISO 9362 structure, country must match the IBAN |
| References | Free text (140 chars) or ISO 11649 RF structured reference |
| Character set | EPC SEPA Latin set with accent transliteration (ñ→n, á→a) |
| Control totals | NbOfTxs and CtrlSum computed at message and payment level |
| Workflow | Draft → Generated → Sent, with chatter audit trail |
| Output | Downloadable UTF-8 XML, in-app preview, preflight check |
How it works
- Set your debtor IBAN, BIC and name once in Settings → SEPA Transfers ES, and pick the pain.001 version your bank accepts.
- Create a Credit Transfer batch, add beneficiaries (or build from posted vendor bills) and run the Preflight Check.
- Click Generate pain.001 — the file is validated, control sums computed and the XML produced.
- Download the XML and upload it to your own bank's portal. The module transmits nothing.
BYOK & data boundary
This module is a format generator. It builds the SEPA pain.001 file for you to upload through your own bank's channel with your own credentials. It is not a payment service provider and it transmits nothing to any external service — your banking data stays inside your Odoo database. Compatible with Odoo 18 and Odoo 19, Community and Enterprise.
Screenshots
Credit Transfers
Build From Bills
Update date: 2026-07-02