Het SEPA-bestand uitgelegd: opbouw, machtiging en veelgemaakte fouten

2026-01-27

Je moet honderd leveranciers betalen of vijfhonderd contributies incasseren. Eén voor één invoeren in je internetbankieren? Dat is traag en een broedplaats voor fouten. Daarom werken bedrijven met een SEPA-bestand: een elektronisch bestand met alle instructies die je bank nodig heeft om een reeks overboekingen of incasso’s in één keer uit te voeren. Het is een XML-bestand en werkt als een soort digitaal paspoort voor je geld.

In dit artikel zie je hoe zo’n bestand is opgebouwd, welke rol de machtiging speelt, hoe je het vanuit een spreadsheet maakt en hoe je de fouten oplost waardoor banken bestanden terugsturen. Wil je eerst de basis, lees dan wat een SEPA-document is.

De rol van het SEPA-bestand in je financiën

Laptop met een icoon van een digitaal paspoort en een blauw boek 'SEPA DOCUMENT' op een bureau.

Met een SEPA-bestand bundel je al die opdrachten in één gestandaardiseerd bestand dat je bank in één keer verwerkt. Dat bespaart tijd en voegt een laag veiligheid toe. Doordat SEPA de betalingen in Europa heeft gelijkgetrokken, zijn de oude nationale systemen verdwenen. In Nederland was dat ClieOp03; dat formaat is vervangen door SEPA XML.

Kernpunt: Een SEPA-bestand is de moderne versie van een bankbatch: een bestand met betaal- of incasso-opdrachten dat je software maakt en je bank in één keer uitvoert.

Twee soorten SEPA-bestanden

  • SEPA-overboekingen (SCT, pain.001): om geld te versturen, bijvoorbeeld salarissen of facturen van leveranciers. Dit heet ook een batchbetaling of verzamelbetaling.
  • SEPA-incasso’s (SDD, pain.008): om geld te ontvangen, zoals contributies, abonnementen of terugkerende facturen, altijd met een getekende machtiging van de klant.

Overboeking tegenover incasso: duwen of trekken?

Een overboeking “duwt” geld van jouw rekening naar een ander. Een incasso “trekt” geld van de rekening van een ander naar jou.

Kenmerk SEPA-overboeking (SCT) SEPA-incasso (SDD)
Doel Geld versturen (betalen) Geld ontvangen (innen)
Wie start De betaler De incassant
Voorwaarde Voldoende saldo Getekende SEPA-machtiging
Voorbeeld Salarissen uitbetalen Maandcontributie van de sportschool innen

Wie SEPA-bestanden goed beheerst, heeft meer grip op zijn financiën, minder handwerk en minder fouten. Meer achtergrond vind je in de hulpartikelen over SEPA.

De opbouw van een SEPA XML-bestand

Zie een SEPA XML-bestand als een officieel formulier, maar dan gemaakt voor een machine: het systeem van je bank. In plaats van vakjes gebruikt het tags in een strikte hiërarchie, bijna als een stamboom. Elk gegeven heeft een vaste plek; gaat er één mis, dan stopt alles.

De drie niveaus

  1. Groep A, Group Header: de voorkant van het bestand. Hier staat wie de opdracht geeft (jouw bedrijf) en een unieke code voor de hele batch, de MsgId. Vergelijk het met een track-and-tracenummer.
  2. Groep B, Payment Information: de gemeenschappelijke gegevens van de batch: overboeking of incasso, de uitvoeringsdatum en je eigen rekening. Dit blok heeft een eigen kenmerk, de PmtInfId.
  3. Groep C, Transaction Information: het hart van het bestand. Eén regel per betaling of incasso, met IBAN, bedrag, kenmerk en bij incasso’s het machtigingskenmerk.

Eén groep A omvat een groep B, die op haar beurt meerdere groepen C bevat, één per transactie.

Verplichte velden die je niet kunt negeren

Een fout of ontbrekend veld en de bank keurt het bestand af, zoals een brief zonder adres niet aankomt.

Vuistregel: Een goed SEPA XML-bestand is als een orkest waarin elk instrument op tijd zijn noot speelt. Ontbreekt één verplicht veld, dan valt de melodie stil.

Let vooral op:

  • Unieke kenmerken (MsgId en PmtInfId): elke batch krijgt nieuwe kenmerken. Hergebruik wordt direct opgemerkt.
  • IBAN en BIC: het IBAN moet het juiste formaat voor het land hebben. De BIC is binnen de EER niet meer verplicht, maar sommige banken vragen hem nog. Bij twijfel: meenemen.
  • Uitvoeringsdatum (ReqdColltnDt / ReqdExctnDt): in het formaat JJJJ-MM-DD en een geldige datum in de toekomst.
  • Bedrag (InstdAmt): altijd met een punt als decimaalteken. Een bedrag als “1.234,56” wordt afgekeurd; correct is “1234.56”.

De SEPA-machtiging als basis voor incasso’s

Is het SEPA-bestand het voertuig waarmee je incasseert, dan is de machtiging de sleutel. Zonder voorafgaande toestemming is elke incasso waardeloos en kan hij direct worden teruggeboekt.

Wat er in een machtiging moet staan

  • Incassant-ID: je unieke code als incassant.
  • Machtigingskenmerk: een alfanumerieke code per machtiging, de ID van die specifieke afspraak.
  • Gegevens van de betaler: volledige naam, adres en het IBAN.
  • Soort machtiging: doorlopend of eenmalig.
  • Datum en handtekening van de rekeninghouder.

Core en B2B

Schema van de opbouw van een SEPA-bestand: header, batch en transactie.

Elke transactie in het incassobestand hangt aan een specifieke machtiging, en die machtiging hoort bij een schema.

Core werkt voor elk type klant: particulieren, zzp’ers en bedrijven. De klant heeft 8 weken om een geautoriseerde incasso zonder opgaaf van reden te laten terugboeken, en 13 maanden als er geen geldige machtiging was.

B2B is alleen voor betalingen tussen bedrijven of zelfstandigen. Heeft de betaler de machtiging bij zijn bank laten registreren, dan vervalt het terugboekrecht. Dat geeft jou zekerheid, maar de betaler moet zijn bank wel vóór de eerste incasso informeren.

Een SEPA-bestand maken vanuit een spreadsheet

Laptop op een houten bureau met een spreadsheet om een SEPA-bestand te maken.

Een SEPA-bestand maken is geen klus voor IT-specialisten. Het startpunt is voor de meeste bedrijven een Excel- of CSV-bestand.

Je spreadsheet goed inrichten

Elke rij is één transactie, elke kolom één gegeven. Minimaal:

  • Naam van de ontvanger of klant.
  • IBAN: volledig, zonder spaties of streepjes.
  • Bedrag.
  • Omschrijving: kort en duidelijk, zichtbaar op het afschrift van de ander.
  • Machtigingskenmerk (alleen incasso).
  • Datum van de machtiging (alleen incasso).

Een uitgebreider overzicht vind je in welke gegevens in je CSV-bestand voor SEPA-incasso horen.

Tips tegen de bekende fouten

  1. Geen lege verplichte cellen: IBAN, bedrag en naam in elke rij.
  2. Eén datumformaat: bijvoorbeeld DD-MM-JJJJ of JJJJ-MM-DD, consequent.
  3. Eerst IBAN’s controleren: een fout IBAN is direct afkeur. Haal je lijst eerst door een IBAN-validator.
  4. Geen speciale tekens: vermijd “€”, “#”, “&” en letters met trema of accent in namen en omschrijvingen.

Van spreadsheet naar XML

Is je spreadsheet in orde, dan doet een tool als GenerateSEPA het zware werk. Je uploadt je Excel of CSV, geeft aan welke kolom bij welk SEPA-veld hoort en downloadt het XML-bestand. De tool zet de gegevens niet alleen om maar controleert ze ook: een laatste kwaliteitscheck voordat je het bestand in je internetbankieren uploadt.

De meest voorkomende fouten in SEPA-bestanden oplossen

Een afgekeurd bestand betekent soms dat salarissen niet op tijd binnen zijn, een belangrijke leverancier niet betaald wordt of incasso’s vertraging oplopen. De meeste afkeur komt door een handvol fouten die je vooraf kunt opvangen.

Ongeldig of verkeerd opgebouwd IBAN

Eén verkeerd cijfer, een extra teken of een ontbrekende landcode (“NL”) en de transactie valt om.

  • Oorzaak: typefouten of kopiëren uit verschillende bronnen zonder controle.
  • Oplossing: controleer vóór het maken van het bestand. GenerateSEPA doet dat standaard, en losse rekeningnummers controleer je met de gratis IBAN-validator.

Ontbrekende BIC

Binnen de EER is de BIC niet meer verplicht, maar sommige systemen of transacties vragen er nog om.

  • Oorzaak: aannemen dat de BIC nooit meer nodig is.
  • Oplossing: bij twijfel opnemen. Met bank bij IBAN vind je de BIC bij een geldig IBAN.

Machtiging en incasso sluiten niet aan

Een fout in het machtigingskenmerk of de datum en de bank kan de toestemming niet verifiëren.

  • Oorzaak: het kenmerk in het XML-bestand wijkt af van dat in je administratie, of de incassodatum ligt vóór de datum van ondertekening.
  • Oplossing: houd één centraal, actueel machtigingenbestand bij en neem kenmerken letterlijk over.

Verkeerd decimaalteken

Een klassieker in Nederland. De SEPA XML-standaard eist een punt als decimaalteken, terwijl Nederlandse Excel-instellingen een komma gebruiken.

  • Oorzaak: rechtstreeks exporteren uit een Excel met Nederlandse landinstellingen. “150,25” wordt afgekeurd.
  • Oplossing: laat je conversietool het bedrag omzetten, of controleer de kolom vóór de export.
Fout Oorzaak Oplossing
Ongeldig IBAN Typefout, verkeerd cijfer of ontbrekende landcode IBAN-validator of automatische controle vóór het maken van het bestand
Verkeerd machtigingskenmerk Kenmerk wijkt af van de getekende machtiging Actueel machtigingenbestand, gegevens letterlijk overnemen
Verkeerd bedragformaat Komma in plaats van punt als decimaalteken Kolom controleren of automatisch laten omzetten
Ontbrekende BIC BIC weggelaten waar de bank hem nog vraagt BIC opnemen als je hem hebt
Onlogische incassodatum Datum vóór ondertekening of in het verleden Data consistent houden, uitvoeringsdatum in de toekomst

SEPA-bestanden automatiseren met een API

Bureau met laptop en monitor met code en een webinterface met de tekst 'Automate SEPA'.

Ben je verder dan bestanden maken vanuit een spreadsheet, dan is een API de volgende stap. Je ERP of CRM vraagt dan zelf bij GenerateSEPA een XML-bestand aan, zonder dat iemand op een knop hoeft te drukken.

Voordelen van een API-koppeling

  • Geen menselijke fouten: niemand typt of plakt nog gegevens.
  • Grote volumes: duizenden transacties per dag zonder extra werk.
  • Direct beschikbaar: bestanden worden gemaakt op het moment dat je ze nodig hebt.

Zo werkt het

  1. Je systeem verzamelt de gegevens: naam, IBAN, bedrag, kenmerk.
  2. Het doet een API-aanroep: de gegevens gaan in JSON naar de conversiedienst.
  3. De dienst controleert en genereert: het SEPA-bestand wordt volgens de standaard opgebouwd.
  4. Je krijgt het bestand terug: klaar om op te slaan en bij je bank te uploaden.

Meer technische details vind je in het hulpartikel over de API van GenerateSEPA.

Checklist voor elk SEPA-bestand

Stap Wat je controleert Wanneer
1. Soort bestand Overboeking (pain.001) of incasso (pain.008) Bij het opzetten
2. Spreadsheet Verplichte kolommen gevuld, één datumformaat Voor elke batch
3. IBAN’s Structuur en controlegetal Voor elke batch
4. Machtigingen Kenmerk en datum kloppen met je administratie Bij incasso’s
5. Bedragen Punt als decimaalteken in de XML Bij het omzetten
6. Validatie Bestand controleren vóór upload Voor elke upload

Wil je een bestaand incassobestand controleren voordat je bank dat doet? Gebruik de gratis SEPA-incasso XML-validator. En wil je je spreadsheets voortaan in seconden omzetten, probeer GenerateSEPA dan 7 dagen gratis.


Veelgestelde vragen

Wat is een SEPA-bestand?
Een SEPA-bestand is een XML-bestand met een reeks betaal- of incasso-opdrachten die je bank in één keer uitvoert. Voor overboekingen gebruik je pain.001, voor incasso's pain.008. Het is de moderne opvolger van de oude batchbestanden zoals ClieOp03.
Heb je speciale software nodig om een XML-bestand te openen?
Nee, een XML-bestand is platte tekst die je in Kladblok of een browser kunt openen. Je ziet dan wel vooral tags die voor systemen bedoeld zijn. Belangrijker dan het zelf lezen is dat de structuur klopt, zodat je bank het accepteert.
Kun je een SEPA XML-bestand met de hand aanpassen?
Technisch kan het, maar het is riskant. Eén verwijderde afsluittag of een verkeerd teken maakt het hele bestand ongeldig. Pas liever de gegevens in je Excel of CSV aan en maak het bestand opnieuw met een betrouwbare tool.
Waarom keurt de bank mijn SEPA-bestand af?
Meestal door een ongeldig IBAN, een bedrag met een komma als decimaalteken, een machtigingskenmerk dat niet klopt, een dubbel bestandskenmerk of een datum in het verleden. Die fouten zijn vooraf te controleren. Een tool die het bestand valideert voordat je het uploadt, voorkomt de meeste afkeur.

Gerelateerde artikelen