Skip to Content

SEPA Credit Transfer NL

40.95 40.95

Instant digital delivery after payment confirmation.
License: OPL-1, every download is watermarked.
Terms and Conditions

SEPA Credit Transfer for the Netherlands — pain.001 Generator

Turn vendor bills and ad-hoc payouts into ISO 20022 pain.001 XML files you upload to your own Dutch bank — BIC derived automatically from the NL IBAN, end-to-end reference handling built in, no gateway, no per-transaction fees, your data never leaves Odoo.

What this module does

This app builds standards-compliant SEPA Credit Transfer (SCT) initiation files in the ISO 20022 CustomerCreditTransferInitiation (pain.001) format, tuned for Dutch banks. You assemble a batch of credit transfers in Odoo, generate the XML, download it, and upload it through your bank's own online-banking channel (Rabo Internetbankieren Professional, ING InsideBusiness, ABN AMRO Access Online). Nothing is sent to any third-party service: this is a pure format generator, so payment data stays in your database and you keep your existing banking relationship and credentials.

Dutch bank profile & BIC from IBAN

Every Netherlands IBAN encodes a four-letter bank identifier (INGB, RABO, ABNA, BUNQ, TRIO, SNSB, KNAB …). The module maps that code to the bank's registered BIC automatically, so you can enter just the IBAN and the file still carries the correct creditor agent. More than sixty Dutch bank identifiers are recognised out of the box.

Two schema versions

Generate 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 for an older Dutch upload channel that still requires it. The same batch can be exported in either version; the BIC element switches between <BIC> and <BICFI> as the schema requires.

End-to-end reference handling

Dutch reconciliation relies on structured references. The module builds and validates the ISO 11649 RF creditor reference (RF + MOD-97 check digits) with one click and writes it into RmtInf/Strd/CdtrRefInf with the SCOR code and ISO issuer. It also validates the Dutch 16-digit betalingskenmerk (acceptgiro payment reference) against its published modulo-11 check and carries it in the remittance text so the creditor's accounting recognises it. The EndToEndId is always populated — explicit value, then RF reference, then your reference — so no transaction is ever sent without a traceable identifier.

Real IBAN & BIC validation

Every IBAN is checked with the full ISO 13616 / ISO 7064 MOD-97-10 algorithm and the per-country length registry, so a typo is caught before the file leaves Odoo. BICs are validated against the ISO 9362 structure and their country is cross-checked against the IBAN country. Legacy Dutch domestic account numbers can be verified with the elfproef (eleven-test) weighted checksum.

Feature highlights

  • pain.001.001.03 and .09 from one batch
  • Automatic BIC from the NL IBAN bank code
  • ISO 11649 RF creditor reference builder + validator
  • Betalingskenmerk modulo-11 validation
  • EndToEndId always populated and SEPA-clean
  • Batch booking (collective debit) toggle
  • Build from vendor bills wizard, grouped per payee
  • Control sum and transaction count auto-computed
  • SEPA character-set transliteration of names & text
  • Draft → Generated → Uploaded workflow with chatter

pain.001 message structure

ISO 20022 elementFilled by the module
GrpHdr / MsgId, CreDtTm, NbOfTxs, CtrlSumMessage id, timestamp, count and control sum
PmtInf / PmtMtd = TRF, BtchBookgCredit transfer, optional collective booking
PmtTpInf / SvcLvl / Cd = SEPASEPA service level
ReqdExctnDtRequested execution date
Dbtr / DbtrAcct / DbtrAgtOrdering party, ordering IBAN, debtor BIC
ChrgBr = SLEVShared charges (SEPA mandatory)
CdtTrfTxInf / PmtId / EndToEndIdPer-transfer end-to-end reference
Amt / InstdAmt Ccy = EURTransfer amount in euro
CdtrAgtCreditor BIC (derived from NL IBAN) or NOTPROVIDED
Cdtr / CdtrAcctCreditor name and IBAN
RmtInf / Ustrd or StrdFree text / betalingskenmerk or RF structured reference

How it works — no gateway, your bank, your control

Create a SEPA batch, add credit transfers (or build them from posted vendor bills), validate the data, then generate the pain.001 file. Download the XML and upload it in your bank's own portal. The module never connects to any external payment service: it is a format generator. You keep your bank's authentication and authorisation flow exactly as today; this app only produces the file your bank already accepts.

Compatibility

Odoo 18 and 19 (Community and Enterprise). Depends only on account, base and mail — no third-party Python libraries, no external service.

Screenshots

Credit Transfers

Credit Transfers

Build From Bills

Build From Bills

Update date: 2026-07-02