ValidateFin
Terug naar blog
·Bijgewerkt 11 mrt 2026·SEPA·Door Eliel Nicaise

15 veelvoorkomende SEPA XML-fouten en hoe ze te verhelpen

Een uitgebreide gids voor de meest voorkomende validatiefouten in SEPA pain.001 en pain.008, met praktische oplossingen voor elke fout.

Waarom SEPA XML-bestanden worden afgewezen

SEPA XML-bestanden (pain.001 voor overboekingen en pain.008 voor incasso's) volgen strikte ISO 20022-schema's die zijn gedefinieerd door de European Payments Council (EPC). Zelfs kleine afwijkingen van de verwachte structuur zorgen ervoor dat banken volledige betaalgroepen afwijzen. Inzicht in veelvoorkomende fouten bespaart tijd en voorkomt kostbare betalingsvertragingen.

Deze gids behandelt de 15 meest voorkomende SEPA XML-fouten die treasury-teams, accountants en ontwikkelaars door heel Europa tegenkomen. Elke fout bevat de oorzaak, het betrokken XML-element en een geteste oplossing.

Of u nu SAP, Oracle of een aangepast ERP gebruikt — deze patronen zijn universeel van toepassing op alle SEPA-conforme betalingsbestanden.

Schema- en structuurfouten

Deze fouten treden op wanneer de XML-structuur niet overeenkomt met het EPC XSD-schema.

1. Verkeerde naamruimte of schemaversie

Het root-element <Document> moet de juiste naamruimte declareren voor uw pain.001-versie (bijv. urn:iso:std:iso:20022:tech:xsd:pain.001.001.09). Het mengen van naamruimten van verschillende versies veroorzaakt een directe XSD-validatiefout.

2. Ontbrekende verplichte GrpHdr-velden

Het GroupHeader (GrpHdr)-blok vereist MsgId, CreDtTm, NbOfTxs, CtrlSum en InitgPty. Het weglaten van een van deze velden — met name CtrlSum — zorgt ervoor dat het bestand schemavalidatie niet doorstaat voordat de bank de betalingsinstructies verwerkt.

3. Ongeldige XML-codering of BOM

SEPA XML moet UTF-8-codering gebruiken. Bestanden met een BOM (Byte Order Mark), UTF-16 of Windows-1252-codering worden afgewezen. Zorg ervoor dat uw exporttool puur UTF-8 zonder BOM schrijft.

4. Elementen in verkeerde volgorde

ISO 20022-schema's handhaven een strikte elementvolgorde. Bijvoorbeeld, in PmtInf moet PmtMtd voor ReqdExctnDt verschijnen. Het omwisselen van elementposities — zelfs als alle gegevens aanwezig zijn — veroorzaakt een schemavalidatiefout.

5. Dubbele MsgId over bestanden

Elk SEPA-bestand moet een unieke MsgId hebben. Als uw systeem dezelfde MsgId hergebruikt voor verschillende betaalgroepen, zal de bank het duplicaat afwijzen als een mogelijk replay-aanval. Gebruik tijdstempels of UUID's om uniciteit te garanderen.

IBAN- en BIC-fouten

Fouten in rekeningidentificatoren zijn de meest voorkomende reden voor SEPA-afwijzingen.

6. Ongeldige IBAN-controlesom (mod-97)

IBAN's gebruiken een mod-97-algoritme voor hun controlecijfers (posities 3-4). Een enkele cijferfout laat de controlesom mislukken. Valideer IBAN's altijd programmatisch voordat u ze in uw SEPA-bestand opneemt. ValidateFin controleert elke IBAN in uw bestand automatisch.

7. IBAN-lengte komt niet overeen met land

Elk land heeft een vaste IBAN-lengte (bijv. DE=22, FR=27, BE=16, NL=18). Een IBAN met het verkeerde aantal tekens voor het landprefix is onmiddellijk ongeldig.

8. Verouderde of ongeldige BIC

BIC/SWIFT-codes kunnen verouderd raken na bankfusies. Het gebruik van een verouderde BIC veroorzaakt routeringsfouten. Voor SEPA-betalingen binnen de EER is BIC optioneel sinds 2016 — overweeg het weg te laten en de bank het te laten afleiden van de IBAN.

Bedrag- en valutafouten

Financiële validatiefouten die batchgewijze afwijzing veroorzaken.

9. CtrlSum komt niet overeen met transactietotaal

De CtrlSum in GrpHdr moet exact gelijk zijn aan de som van alle InstdAmt-waarden in het bestand. Zelfs een afrondingsverschil van € 0,01 zorgt ervoor dat het volledige bestand wordt afgewezen. Gebruik decimaal-nauwkeurige rekenkunde, geen zwevende komma.

10. Niet-EUR-valuta in SEPA-bestand

SEPA Credit Transfers ondersteunen alleen EUR. Als uw bestand bedragen in GBP, CHF of andere valuta bevat, zal de bank het afwijzen. Gebruik een apart internationaal betalingskanaal voor niet-EUR-overboekingen.

11. Bedragsformaat met verkeerd decimaalteken

SEPA XML gebruikt een punt (.) als decimaalteken, geen komma. De waarde moet exact 2 decimalen hebben: <InstdAmt Ccy="EUR">1500.00</InstdAmt>. Waarden zoals "1500" of "1.500,00" zijn ongeldig.

Datum- en identificatiefouten

Veelvoorkomende fouten in datums en referentievelden.

12. Verleden of ongeldig uitvoeringsdatum

De ReqdExctnDt moet een huidige of toekomstige werkdag zijn. De meeste banken wijzen datums in het verleden en datums meer dan 30 dagen vooruit af. Weekenddatums worden verschoven naar maandag, maar sommige banken wijzen ze direct af.

13. Ongeldige tekens in EndToEndId

Het EndToEndId-veld (max 35 tekens) staat alleen een beperkte set toe: a-z, A-Z, 0-9 en enkele speciale tekens (/, -, ?, :, (, ), ., +, spatie). Tekens zoals #, @, é, ü worden afgewezen.

14. Ontbrekende crediteurenidentificator voor SDD

SEPA Direct Debit (pain.008) vereist een geldig Creditor Identifier (CI) in CdtrSchmeId. Dit is een landspecifieke registratie (bijv. ICS in Frankrijk, Gläubiger-ID in Duitsland). Zonder dit mislukt de gehele SDD-batch.

15. NbOfTxs-aantal komt niet overeen

Het NbOfTxs-veld in GrpHdr moet overeenkomen met het werkelijke aantal CdtTrfTxInf- (of DrctDbtTxInf-)elementen in het bestand. Een verschil — vaak veroorzaakt door gedeeltelijke bestandsgeneratie — veroorzaakt directe afwijzing.

Valideer uw SEPA-bestanden direct

ValidateFin detecteert alle 15 hierboven genoemde fouten — en meer. Upload uw pain.001- of pain.008-bestand en ontvang directe feedback over schema-conformiteit, IBAN-validatie, bedragsconsistentie en tekencodering.

SEPA-validator openen

Veelgestelde vragen

Wat is de meest voorkomende SEPA XML-fout?

De meest voorkomende fout is een ongeldige IBAN-controlesom (mod-97-fout). Dit is goed voor ongeveer 30% van alle SEPA-bestandsafwijzingen. Valideer IBAN's altijd voordat u uw betalingsbestand genereert.

Kan ik SEPA-fouten verhelpen zonder het volledige bestand opnieuw te genereren?

Het hangt van de fout af. Eenvoudige fixes zoals het corrigeren van een IBAN of het aanpassen van CtrlSum kunnen worden gedaan door de XML direct te bewerken. Structurele fouten (verkeerde elementvolgorde, ontbrekende naamruimte) vereisen echter meestal regeneratie vanuit het bronsysteem.

Controleert ValidateFin alle 15 fouten?

Ja. ValidateFin valideert uw SEPA-bestand tegen EPC XSD-schema's, controleert elke IBAN met mod-97, verifieert CtrlSum-consistentie, valideert tekencodering en markeert alle structurele problemen. De validatie draait volledig in uw browser — er wordt geen bestand geüpload.

Waarom wijst mijn bank een bestand af dat XSD-validatie heeft doorstaan?

XSD-validatie controleert alleen XML-structuur. Banken passen ook bedrijfsregels toe: geldige uitvoeringsdatums, correcte CtrlSum, unieke MsgId en correcte IBAN/BIC. ValidateFin controleert zowel schema als bedrijfsregels.

Zijn SEPA-foutcodes gestandaardiseerd?

Ja. Banken gebruiken ISO 20022-redenscodes (bijv. AC01 voor onjuiste IBAN, AM05 voor duplicaat, AG01 voor verboden transactietype). De EPC beheert een volledige lijst in het SEPA Reason Codes-document.

Hoe voorkom ik SEPA-fouten in mijn ERP?

Implementeer IBAN-validatie bij gegevensinvoer, gebruik een SEPA XML-bibliotheek (geen stringconcatenatie) voor bestandsgeneratie, valideer het uitvoerbestand vóór verzending en test altijd eerst met het validatietool van uw bank.

Wat gebeurt er als een SEPA-bestand wordt afgewezen?

De bank stuurt een pain.002-statusrapport terug met afwijzingsredenscodes voor elke mislukte transactie. U moet de fouten corrigeren en het volledige bestand of het getroffen betalingsblok opnieuw indienen.

Kunnen tekencoderingsproblemen onzichtbaar zijn?

Ja. Sommige tekens (zoals typografische aanhalingstekens " " of em-dashes —) zien er correct uit op het scherm maar vallen buiten de SEPA-tekenset. Ze veroorzaken afwijzing zonder een duidelijk visueel teken. ValidateFin markeert deze onzichtbare coderingsproblemen.

Is er een verschil in foutafhandeling tussen pain.001.001.03 en .09?

De nieuwere versies (09, 11) hebben strengere validatie. Sommige velden die optioneel waren in 03 zijn nu verplicht. De tekensetbeperkingen zijn hetzelfde. ValidateFin valideert tegen de specifieke versie die in uw bestand is gedeclareerd.

Hoe lang heb ik om een afgewezen SEPA-bestand te corrigeren?

Er is geen standaarddeadline, maar betalingsvertragingen stapelen zich op. De meeste treasury-teams streven ernaar om binnen 4 werkuren te corrigeren en opnieuw in te dienen. Pre-validatie met ValidateFin elimineert de meeste afwijzingsscenario's.