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
- A direct debit agreement with your bank (the creditor bank).
- A Creditor Identifier (CI), for example
DE98ZZZ09999999999. In Germany it is issued by the Bundesbank; elsewhere usually by your bank or central bank. It has a country code, two check digits, a three-character business code (oftenZZZ) and a national ID. - A signed mandate from every payer, each with a unique mandate reference (mandate ID) and the date it was signed.
1. The columns
| Column | Required? | Notes |
|---|---|---|
| Name | Yes | The payer (debtor). Up to 70 characters; accents are converted to the SEPA character set. |
| IBAN | Yes | The payer's account. It must be in the SEPA zone and pass the mod-97 check. |
| Amount | Yes | Euro, at most two decimals. |
| Mandate ID | Yes | Up to 35 characters, exactly as on the signed mandate. Several banks reject spaces. |
| Mandate date | Yes | Date of signature, e.g. 2024-03-15 or 15.03.2024. It cannot be after the collection date. |
| Sequence | Optional | FRST, RCUR, OOFF or FNAL. If empty, the default you choose is used (usually RCUR). |
| Reference | Recommended | What the payer sees on their statement, up to 140 characters. |
| BIC, address | Optional | BIC 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
- Creditor Identifier check digits. They are computed with ISO 7064 mod 97-10 over the national ID plus the country code. The business code is not part of the calculation, so
DE98ZZZ09999999999andDE98ABC09999999999are both valid. - Mandate fields present for every row, with signature dates that make sense.
- Control sums per block and for the whole file, computed in cents.
- Timing. The scheme minimum is one interbank business day before the collection date, but banks set their own cut-offs, often several days earlier. Payers must also get a pre-notification (usually 14 days unless agreed otherwise).
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.
Sources
- European Payments Council – SEPA Direct Debit Core rulebook and implementation guidelines
- ISO 20022 message catalogue (pain.008)
- EPC262-08: Creditor Identifier overview
Related guides
- FRST vs RCUR: SEPA direct debit sequence types
- How to create a SEPA XML payment file from Excel
- How IBAN validation works
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.