CSV to SEPA XML Converter: generate pain.001 from a spreadsheet
Turn any CSV or Excel file into a valid SEPA pain.001 or pain.008 XML file in seconds. Here is how the converter works and what your spreadsheet must contain.
Why generate SEPA XML from a spreadsheet?
Most accounting software and ERP systems let you export payment orders as CSV or Excel files. But banks require SEPA XML — specifically the pain.001 format for credit transfers and pain.008 for direct debits. Converting manually is error-prone and time-consuming.
A CSV to SEPA converter bridges this gap: you map your spreadsheet columns to the required SEPA fields, and the tool generates a valid, bank-ready XML file instantly — with IBAN validation, amount formatting, and namespace compliance included.
Blog.post7.s1.p3
What your CSV must contain
The converter requires at minimum these columns (column names can be mapped visually):
# CSV input (semicolon-separated)
creditor_name;creditor_iban;creditor_bic;amount;currency;reference
Supplier A;DE89370400440532013000;COBADEFFXXX;1200.00;EUR;INV-2026-001
Supplier B;FR7630006000011234567890189;BNPAFRPPXXX;350.00;EUR;INV-2026-002
# Generated pain.001 XML output
<Document>
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>MSG-20260303-001</MsgId>
<CreDtTm>2026-03-03T09:00:00</CreDtTm>
<NbOfTxs>2</NbOfTxs>
<CtrlSum>1550.00</CtrlSum>
<InitgPty><Nm>My Company</Nm></InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>PMT-001</PmtInfId>
<PmtMtd>TRF</PmtMtd>
<ReqdExctnDt><Dt>2026-03-05</Dt></ReqdExctnDt>
<Dbtr><Nm>My Company</Nm></Dbtr>
<DbtrAcct>
<Id><IBAN>BE68539007547034</IBAN></Id>
</DbtrAcct>
...
</PmtInf>
</CstmrCdtTrfInitn>
</Document>Required fields explained
These 5 fields are mandatory in every SEPA pain.001 transaction:
- Debtor IBAN — The account to be debited — must be a valid IBAN (mod-97 verified).
- Creditor IBAN — The beneficiary account — also IBAN-validated before XML generation.
- Amount — Must be a positive decimal number (e.g. 1500.00). Currency defaults to EUR.
- Payment reference — The reference communicated to the creditor — max 140 characters (EndToEndId).
- Execution date — Requested execution date in YYYY-MM-DD format. Must be a banking business day.
- Blog.post7.s3.f6.name — Blog.post7.s3.f6.desc
- Blog.post7.s3.f7.name — Blog.post7.s3.f7.desc
- Blog.post7.s3.f8.name — Blog.post7.s3.f8.desc
Common errors when generating SEPA XML
These are the most frequent issues when converting CSV to SEPA:
Invalid IBAN checksum
A typo in the IBAN will fail the mod-97 check. The converter validates all IBANs before generating XML.
Amount with wrong decimal separator
Use a dot (.) as decimal separator. Commas (,) cause parsing errors in most banking systems.
Missing BIC for non-EEA banks
Within SEPA, BIC is optional for domestic transfers but required for cross-border or non-EEA creditors.
Blog.post7.s4.e4.label
Blog.post7.s4.e4.desc
Blog.post7.s4.e5.label
Blog.post7.s4.e5.desc
Blog.post7.s4.e6.label
Blog.post7.s4.e6.desc
Blog.post7.s6.title
Blog.post7.s6.p1
- 1Blog.post7.s6.step1.title — Blog.post7.s6.step1.desc
- 2Blog.post7.s6.step2.title — Blog.post7.s6.step2.desc
- 3Blog.post7.s6.step3.title — Blog.post7.s6.step3.desc
- 4Blog.post7.s6.step4.title — Blog.post7.s6.step4.desc
- 5Blog.post7.s6.step5.title — Blog.post7.s6.step5.desc
Blog.post7.s6.p2
Blog.post7.s7.title
Blog.post7.s7.p1
Blog.post7.s7.p2
Blog.post7.s7.p3
Generate your SEPA XML file now
Upload your CSV, map your columns visually, and download a valid pain.001 or pain.008 file in seconds. 100% free, no registration, no data uploaded.
Open the CSV to SEPA ConverterFrequently Asked Questions
How do I convert a CSV file to SEPA XML format?
Upload your CSV to ValidateFin's CSV to SEPA Converter, then use the visual column mapping interface to match your CSV headers to SEPA fields (debtor IBAN, creditor IBAN, amount, reference, etc.). The tool generates a valid pain.001 or pain.008 XML file.
What is the difference between pain.001 and pain.008?
Pain.001 (Customer Credit Transfer Initiation) is for outgoing bank transfers — you push money to creditors. Pain.008 (Customer Direct Debit Initiation) is for collecting payments — you pull money from debtors. The converter supports both.
Do I need to format my CSV in a specific way?
No. The converter accepts any CSV format. The visual mapping interface lets you assign each column to the corresponding SEPA field. Required fields include creditor/debtor name, IBAN, amount, currency, and payment reference.