How to create a SEPA direct debit file (pain.008) from Excel

Blog · 2026-10-02 · 3 min read

Free tool: Open the free direct debit generator – runs in your browser, files are not uploaded.

Clubs, gyms, schools, landlords and subscription businesses in the euro area collect recurring payments by SEPA Direct Debit (SDD). Online banking usually lets you upload one file for the whole run instead of creating each collection by hand. That file is a Customer Direct Debit Initiation message in ISO 20022 XML, known as pain.008. This guide covers what goes into it.

Before you start: what you need from your bank

1. The columns

ColumnRequired?Notes
NameYesThe payer (debtor). Up to 70 characters; accents are converted to the SEPA character set.
IBANYesThe payer's account. It must be in the SEPA zone and pass the mod-97 check.
AmountYesEuro, at most two decimals.
Mandate IDYesUp to 35 characters, exactly as on the signed mandate. Several banks reject spaces.
Mandate dateYesDate of signature, e.g. 2024-03-15 or 15.03.2024. It cannot be after the collection date.
SequenceOptionalFRST, RCUR, OOFF or FNAL. If empty, the default you choose is used (usually RCUR).
ReferenceRecommendedWhat the payer sees on their statement, up to 140 characters.
BIC, addressOptionalBIC is not needed for EEA IBANs. Address columns (Street, Building number, Postcode, Town, Country) are written as the payer's postal address.

2. Sequence types: FRST, RCUR, OOFF, FNAL

Every collection is tagged with a sequence type. OOFF is a one-off mandate used once. For recurring mandates the original rules required FRST for the first collection, then RCUR, and optionally FNAL for the last. Since November 2016 the rulebooks allow RCUR for the first collection too, so most creditors now send RCUR for everything recurring. Some banks still ask for FRST; follow your bank's guide.

A pain.008 file groups collections into payment information blocks (PmtInf), one per combination of sequence type and collection date. If your sheet mixes FRST and RCUR rows, the file has two blocks, each with its own count and control sum.

3. CORE or B2B

CORE works for consumers and businesses, and the payer can ask their bank for a refund of an authorised debit within eight weeks. B2B is only for business payers, who must register the mandate with their own bank. It has no refund right, and the payer's bank checks the mandate. Choose B2B only if you have signed B2B mandates.

4. What the XML looks like

<PmtInf><PmtInfId>DD20261002-1R</PmtInfId><PmtMtd>DD</PmtMtd>...
  <PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl><LclInstrm><Cd>CORE</Cd></LclInstrm><SeqTp>RCUR</SeqTp></PmtTpInf>
  <ReqdColltnDt>2026-10-08</ReqdColltnDt> ... your name, IBAN, BIC ...
  <CdtrSchmeId><Id><PrvtId><Othr><Id>DE98ZZZ09999999999</Id>
    <SchmeNm><Prtry>SEPA</Prtry></SchmeNm></Othr></PrvtId></Id></CdtrSchmeId>
  <DrctDbtTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId>
    <InstdAmt Ccy="EUR">29.90</InstdAmt>
    <DrctDbtTx><MndtRltdInf><MndtId>KUNDE-0001</MndtId><DtOfSgntr>2024-03-15</DtOfSgntr></MndtRltdInf></DrctDbtTx>
    ... payer's bank, name, IBAN, reference ...</DrctDbtTxInf>

Use pain.008.001.02 unless your bank asks for the newer pain.008.001.08. The .08 version uses BICFI and can carry a structured postal address.

5. The checks that save a rejected file

PayBatchKit's direct debit generator runs these checks in your browser and writes pain.008.001.02 or .08. Our tests validate the output against the official ISO 20022 schemas. Your data is not uploaded.

Free tool: Open the free direct debit generator – runs in your browser, files are not uploaded.

Sources

Related guides

Published 2026-10-02 by Karuna Labs. Our tools check file structure and checksums; always review outputs (and payment files in your bank's preview) before relying on them. This is general information, not financial, tax or legal advice.