SEPA-bestand valideren: zo voorkom je afwijzingen door de bank
2026-02-12
Het is de 25e, de salarisbatch staat klaar en je uploadt het bestand in de zakelijke omgeving van je bank. Een paar uur later komt het terug: afgewezen vanwege een formaatfout die bij het aanmaken onschuldig leek. Niemand krijgt op tijd betaald en het financeteam moet alles onder tijdsdruk opnieuw doen.
Een SEPA-bestand valideren betekent dat je vóór het uploaden controleert of het bestand aan alle technische en inhoudelijke eisen voldoet, zodat je bank het in één keer verwerkt. Je kijkt naar vier dingen: de XML-structuur, de betaalgegevens (IBAN, namen), de machtigingsgegevens bij incasso’s en de controletotalen. Zo voorkom je dat complete batches met salarissen, leveranciersbetalingen of incasso’s worden geweigerd.
In dit artikel lees je welke fouten het vaakst misgaan, hoe je ze herkent en hoe je de controle automatiseert.
Waarom je een SEPA-bestand altijd valideert
Een afgewezen batch is geen technisch detail. Het raakt direct je cashflow. Leveranciers wachten op hun geld, klanten worden niet geïncasseerd en je team besteedt uren aan zoeken naar één fout.
Het goede nieuws: bijna elke afwijzing is te voorkomen. Validatie betekent dat je dezelfde controles uitvoert als de systemen van de bank, maar dan vóórdat je iets verstuurt.
Wat het kost als je niet valideert
| Type fout | Direct gevolg | Mogelijke kosten | Oplossing vooraf |
|---|---|---|---|
| Onjuist of niet-bestaand IBAN | De betreffende transactie wordt geweigerd. | Bankkosten per mislukte transactie (€ 0,20 tot € 0,50). | Controleer het controlegetal en het bestaan van het IBAN voordat je het bestand maakt. |
| Ongeldig XML-formaat (XSD) | De bank weigert de hele batch en verwerkt niets. | Vertraagde betalingen of incasso’s plus eventuele kosten. | Valideer de structuur tegen het officiële schema. |
| Totalen kloppen niet | Het bestand wordt geweigerd door een verschil tussen controletotaal en de som van de transacties. | Uren werk om het verschil te vinden. | Laat het controletotaal automatisch berekenen. |
| Verplichte velden leeg | De transactie zonder naam, kenmerk of andere essentiële gegevens wordt geweigerd. | Schade aan de relatie met klant of leverancier. | Zorg dat je software geen bestand kan maken met lege verplichte velden. |
Vuistregel: valideren is de laatste check van een piloot voor vertrek. Het is de laatste veiligheidscontrole die ervoor zorgt dat je betaalopdracht zonder turbulentie aankomt.
Bij instant payments is nauwkeurigheid nog belangrijker: een fout leidt direct tot een automatische weigering.
De technische structuur van het SEPA XML-bestand
Een SEPA-bestand is geschreven in een strikte taal die banken begrijpen: XML volgens de ISO 20022-standaard. Zie het als grammatica en spelling. Maak je een fout, hoe klein ook, dan wordt de boodschap onleesbaar en weigert het systeem het bestand.
De eerste en meest fundamentele validatie is dus de controle tegen het XSD-schema (XML Schema Definition). Voordat de bank naar bedragen of IBAN’s kijkt, controleert de software of het skelet van het bestand klopt. Is een tag niet goed afgesloten, ontbreekt een verplicht veld of staan blokken in de verkeerde volgorde, dan is de hele batch ongeldig.

De meest gebruikte formaten
Elk type opdracht heeft zijn eigen formaat. Wie het verkeerde gebruikt, krijgt gegarandeerd een afwijzing.
- pain.001: voor SEPA-overboekingen, zoals salarissen of leveranciersbetalingen.
- pain.008: voor SEPA-incasso’s, dus het innen van betalingen bij je klanten.
Deze formaten veranderen. Versie pain.001.001.09 is de nieuwste voor overboekingen en bevat velden voor gestructureerde adressen, die vanaf november 2026 verplicht worden. Met een verouderde versie loop je het risico dat je bestand niet meer past bij de systemen van je bank. Hoe zo’n bestand in elkaar zit, lees je in het SEPA XML-bestandsformaat uitgelegd.
Typische structuurfouten
Kernpunt: XSD-validatie is alles of niets. Een bestand is 100% geldig of 100% ongeldig. Eén verkeerd teken kan de hele batch laten weigeren.
Fouten die we steeds weer zien:
- tags die verkeerd genest of niet afgesloten zijn;
- niet-toegestane tekens zoals
&of letters met accenten (é, ë, ü) zonder juiste codering; - ontbrekende informatieblokken, bijvoorbeeld een betalingsinformatieblok zonder uitvoeringsdatum.
Juist in Nederlandse namen en adressen zitten vaak trema’s en accenten (Daniëlle, Café de Brug). Zet die om of zorg voor correcte UTF-8-codering voordat je het bestand aanlevert.
Betaal- en incassogegevens controleren
Een foutloze XML-structuur is maar de helft van het werk. Een bestand kan de technische controle doorstaan en toch geweigerd worden omdat de gegevens niet kloppen.
De meest voorkomende en vaak duurste fout is een verkeerd getypt IBAN. Dat leidt niet alleen tot een weigering en bankkosten. Bestaat dat verkeerde IBAN toevallig wel, dan kan het geld op de verkeerde rekening terechtkomen. Het terughalen daarvan is een lang proces en lukt niet altijd. Met de gratis IBAN-check controleer je een rekeningnummer snel voordat het in je bestand komt.

Naam en IBAN: Verification of Payee
Om fraude en fouten tegen te gaan, controleren banken of het IBAN bij de naam van de rekeninghouder past. Deze dienst, Verification of Payee (VoP), is sinds oktober 2025 verplicht voor banken in de EU. Nederlandse banken werkten al eerder met een naam-nummercontrole, dus voor veel Nederlandse bedrijven voelt dit vertrouwd.
Het antwoord komt vrijwel direct:
- Volledige match: de gegevens kloppen.
- Gedeeltelijke match: er zit waarschijnlijk een kleine typefout in de naam. Je krijgt een waarschuwing.
- Geen match: de gegevens wijken volledig af. Dan gaat er een alarmbel af.
Vuistregel: ook als je de betaling bij geen match toch kunt doorzetten, is dat spelen met vuur. De kans is groot dat het geld niet bij de juiste persoon aankomt.
Machtigingsgegevens bij incasso’s
Bij incasso’s (pain.008) wordt het serieus. De machtiging is de toestemming van je klant om van zijn rekening te incasseren. Elke machtiging heeft een uniek machtigingskenmerk, en dat moet bij elke incasso precies kloppen. Vindt de bank van je klant de machtiging niet, dan wordt de incasso direct geweigerd. Hoe dat kenmerk werkt, lees je in het SEPA-incassokenmerk uitgelegd.
Let ook op:
- Ondertekeningsdatum: die moet altijd vóór de eerste incasso liggen.
-
Type incasso: geef aan of het om een doorlopende machtiging (
RCUR) of een eenmalige machtiging (OOFF) gaat.
Een fout in een van deze velden kan de incasso laten mislukken. Erger nog: je klant kan denken dat je zonder toestemming geld afschrijft.
Controletotalen en bedragen
Ook met een perfecte structuur en kloppende gegevens wordt je bestand geweigerd als de cijfers niet optellen. De regel is simpel en onverbiddelijk: de som van alle transacties moet tot op de cent gelijk zijn aan het totaal dat je in de header opgeeft. De bank kijkt naar twee velden:
-
<CtrlSum>(controletotaal): de som van de bedragen van alle transacties in de batch. -
<NbOfTxs>(aantal transacties): hoeveel overboekingen of incasso’s het bestand bevat.
Klopt een van beide niet, dan wordt de hele batch teruggestuurd. Of het verschil nu één cent is of duizenden euro’s maakt niet uit.
Een rekenfout van 12 cent
Stel: je maakt een salarisbatch voor 50 medewerkers. Door een kleine fout in een spreadsheetformule staat in <CtrlSum> een bedrag dat 12 cent lager is dan de werkelijke som. Alle 50 IBAN’s kloppen en de XML is goed opgebouwd, maar de bank ziet het verschil en weigert het bestand. Niemand wordt betaald en je team gaat in de haast op zoek naar de fout.
Kernpunt: de controle op totalen is een vangnet tegen typefouten, niet-bijgewerkte Excel-formules en dubbele of ontbrekende regels. Laat deze totalen daarom altijd automatisch berekenen.
SEPA-bestanden automatisch valideren
Wie bestanden handmatig controleert, kent het: traag, repetitief en een bron van menselijke fouten. Veel mensen beginnen met gratis online validators. Die zijn handig voor een losse check, maar wil je echt een bestand met IBAN’s en persoonsgegevens van je klanten uploaden naar een website zonder garantie op versleuteling? Dat is een slechte gewoonte die tot problemen met de AVG kan leiden.
| Kenmerk | Gratis online validators | Professionele platforms (SaaS) |
|---|---|---|
| Gegevensbeveiliging | Laag. Geen garantie op versleuteling of verwijdering. | Hoog. Versleuteling en automatische verwijdering. |
| Ondersteunde formaten | Beperkt, meestal alleen XML. | Breed: Excel, CSV en oudere formaten. |
| Automatisering (API) | Geen. Het proces is 100% handmatig. | Volledig via een API in je eigen systemen. |
| Diepgang | Basis, vaak alleen de XSD-structuur. | Compleet: IBAN, BIC, machtigingen, controletotalen. |
| Kosten | Gratis. | Abonnement dat meegroeit met je gebruik. |
Een platform als GenerateSEPA zegt niet alleen of een bestand goed of fout is. Het zet je spreadsheet in een paar seconden om naar een gevalideerd XML-bestand. Je koppelt je Excel-kolommen aan de juiste SEPA-velden en hoeft nooit meer met XML-code te werken. Wil je alleen een bestaand incassobestand controleren, gebruik dan de gratis SEPA-incasso XML-validator.

Voor ontwikkelaars is een JSON-API de sleutel: zo bouw je het maken en valideren van SEPA-bestanden direct in je ERP of boekhoudsoftware in. Meer achtergrond vind je in zo werkt een SEPA-converter.
Checklist: je SEPA-bestand valideren vóór het uploaden
| Stap | Wat je controleert | Wanneer |
|---|---|---|
| 1 | IBAN’s en namen van ontvangers of debiteuren | Bij het invoeren van stamgegevens |
| 2 | Machtigingskenmerk, ondertekeningsdatum en type (RCUR/OOFF) | Bij elke nieuwe machtiging |
| 3 | XML-structuur tegen het XSD-schema van de juiste pain-versie | Na het aanmaken van het bestand |
| 4 |
<CtrlSum> en <NbOfTxs> tegen de inhoud |
Vlak voor het uploaden |
| 5 | Speciale tekens en codering (UTF-8) | Vlak voor het uploaden |
| 6 | Testbestand met één transactie bij een onduidelijke foutmelding | Na een afwijzing |
Krijg je een afwijzing zonder duidelijke uitleg, maak dan een testbestand met één transactie. Werkt dat wel, dan zit de fout in de gegevens van een van de andere transacties. Werkt het niet, dan zit de fout in de structuur of de header.
Met de juiste tools ga je van onzekerheid over afwijzingen naar de rust dat elke batch in één keer wordt verwerkt. Probeer GenerateSEPA gratis en zet je Excel- of CSV-bestand om naar een gevalideerd SEPA XML-bestand.
Veelgestelde vragen
- Wat betekent een SEPA-bestand valideren?
- Je controleert vóór het uploaden of het XML-bestand voldoet aan het officiële schema en of de inhoud klopt: IBAN's, machtigingsgegevens, datums en controletotalen. Zo vang je dezelfde fouten af die de bank anders zou vinden. Een gevalideerd bestand wordt veel vaker in één keer verwerkt.
- Waarom weigert mijn bank het bestand zonder duidelijke foutmelding?
- Veel banken geven alleen een algemene melding zoals ongeldig formaat. Controleer dan eerst de XSD-structuur, daarna CtrlSum en NbOfTxs en tot slot vreemde tekens of een verkeerde codering. Helpt dat niet, maak dan een testbestand met één transactie om te zien of het probleem in de structuur of in de gegevens zit.
- Kan ik een Excel-bestand direct als SEPA-bestand valideren?
- Nee. De bank accepteert alleen XML, dus een Excel- of CSV-bestand moet eerst worden omgezet naar SEPA XML. Een converter doet die omzetting, berekent de controletotalen en controleert de IBAN's in dezelfde stap.
- Waarom accepteert de ene bank mijn bestand wel en de andere niet?
- SEPA is een Europese standaard, maar elke bank mag eigen gebruiksregels toevoegen, bijvoorbeeld over de lengte van de omschrijving of het formaat van het machtigingskenmerk. Een bestand dat de XSD-controle doorstaat, is dus niet bij elke bank gegarandeerd geldig. Check daarom ook de specificaties van je eigen bank.