Het SEPA-bestand: opbouw, maken vanuit Excel en via API

2026-07-11

Het is de 25e van de maand en de contributies van 600 leden moeten worden geïncasseerd. De ledenadministratie staat in Excel, de bank wil een XML-bestand en niemand in het bestuur weet precies wat erin moet staan. Elk bedrijf of elke vereniging die meerdere betalingen verwerkt, komt vroeg of laat bij die vraag uit: blijven we handmatig werken, of stappen we over op gestandaardiseerde bestanden?

Een SEPA-bestand is de technisch juiste manier om betalingen bij je bank aan te leveren. Het is gestandaardiseerd, machineleesbaar en wordt automatisch verwerkt. Je stuurt de bank geen losse gegevens, maar een formeel gedefinieerd XML-document dat de bank inleest, controleert en uitvoert. Als je eenmaal begrijpt hoe het werkt, wordt het een gewone administratieve routine en geen IT-drempel.

In dit artikel lees je hoe een SEPA-bestand is opgebouwd, hoe je het maakt vanuit Excel, CSV of een API, welke fouten vaak voorkomen en hoe je test voordat je uploadt.

Wat is een SEPA-bestand en waarom doet het ertoe?

Een SEPA-bestand is een XML-document met betaalopdrachten, gebaseerd op de ISO 20022-standaard. Sinds 1 februari 2014 is het in de eurozone verplicht voor overboekingen en incasso’s in euro; in Nederland verdwenen daarmee formaten als ClieOp3. Banken accepteren geen eigen formaten van bedrijven meer, en software die nog oude formaten maakt, krijgt afwijzingen.

Wat levert het je op?

  • Automatisering: betalingen worden na de upload automatisch verwerkt, zonder handwerk.
  • Minder fouten: een vast formaat haalt typefouten en verwarring over opmaak weg.
  • Schaal: één SEPA-bestand kan tot 100.000 betalingen bevatten.
  • Compliance: met het actuele formaat voldoe je aan de regels voor eurobetalingen in de EU.

Vooral bij terugkerende betalingen, zoals contributies, abonnementen en termijnen, verandert het SEPA-bestand je werkwijze. Wat vroeger uren handwerk kostte, wordt een eenvoudige upload per week of per maand.

pain.001 en pain.008

Er zijn twee hoofdtypen:

Type Wat het doet Voorbeelden Bijzonderheden
pain.001 Overboekingen: jij betaalt Leveranciers, salarissen, terugbetalingen Eenvoudige structuur met opdrachtgever en begunstigde
pain.008 Incasso’s: jij int Contributies, abonnementen, facturen Complexer door machtigingen, incassant-ID en sequentietype

Het verschil doet ertoe omdat structuur, verplichte velden en validatieregels verschillen. Gebruik je het verkeerde type, dan volgt al snel een afwijzing.

Hoe een SEPA-bestand is opgebouwd

Een SEPA-bestand is geen platte lijst, maar een hiërarchisch document. Wie die opbouw begrijpt, vindt fouten eerder.

Schema van de opbouw van een SEPA-bestand

Bovenaan staat het document met algemene metadata. Daaronder het initiatieblok met de basisgegevens (in XML de Group Header: bericht-ID, aanmaakdatum, aantal transacties en controletotaal). Het derde niveau bevat de betaalinformatieblokken, die gemeenschappelijke gegevens bundelen zoals de rekening van de opdrachtgever en de uitvoeringsdatum. Onderaan staan de afzonderlijke transacties.

Waarom die hiërarchie? Efficiëntie. In plaats van je bedrijfsnaam bij elke betaling te herhalen, zet je hem één keer in het betaalblok. Banken verwerken het bestand sneller omdat ze de structuur lezen en niet elk veld afzonderlijk hoeven te interpreteren.

Kernpunt: het aantal transacties en het controletotaal in de header moeten exact overeenkomen met de transacties eronder. Klopt dat niet, dan keurt de bank het hele bestand af.

Een SEPA-bestand maken: Excel, CSV of API

Vrijwel niemand schrijft XML met de hand. Je begint met gegevens in Excel of CSV en zet die om.

Methode Voordelen Nadelen Beste voor
Excel Iedereen kent het, flexibel voor eenmalige aanpassingen, overzichtelijk Gevoelig voor opmaakfouten, speciale tekens, verplichte velden moeilijk af te dwingen Eerste kennismaking, kleinere betaalruns, teams zonder IT
CSV Eenvoudig, eenduidig, makkelijk te exporteren uit systemen Minder overzichtelijk, vraagt duidelijke afspraken over kolomkoppen Terugkerende exports uit ERP of boekhoudsoftware
API Volledig geautomatiseerd, valideert bij aanlevering, directe koppeling Vraagt ontwikkelwerk en een eerste investering Grote volumes, vaste patronen, volledige integratie

Hoe je stap voor stap vanuit Excel werkt, lees je in een SEPA XML-bestand maken. Kom je nog van ClieOp3, kijk dan naar van ClieOp3 naar SEPA XML.

Van gegevens naar een geldig SEPA-bestand

Een betrouwbare werkwijze voorkomt de meeste problemen:

  1. Gegevens voorbereiden: opschonen en ordenen in Excel of CSV.
  2. Verplichte velden controleren: is alle verplichte informatie aanwezig?
  3. Datakwaliteit controleren: kloppen de IBAN’s, staan bedragen zonder valutateken, zijn datums consistent?
  4. Koppelen aan de SEPA-structuur: welke kolom hoort bij welk XML-veld?
  5. XML genereren: laat een tool het bestand maken; handmatig XML schrijven is zelden zinvol.
  6. Valideren tegen het schema: controleer of de XML technisch correct is.
  7. Eindcontrole: een tweede persoon kijkt bedragen en tegenpartijen na.
  8. Uploaden bij de bank: via internetbankieren of een directe koppeling.

Ervaren teams slaan soms stappen over. Nieuwe teams kunnen beter de hele lijst volgen.

Veelgemaakte fouten in een SEPA-bestand

De meeste fouten vallen in drie groepen.

Fouten in de gegevens

  • IBAN’s: verkeerd formaat, typefouten, ontbrekende landcode. Eén typefout en de betaling wordt niet uitgevoerd. Controleer twijfelgevallen met de IBAN-validator.
  • Bedragen: als tekst opgemaakt, met valutateken of met het verkeerde decimaalteken (XML verwacht 1250.50, niet 1.250,50).
  • Namen: speciale tekens, te lang, problemen met codering.
  • Datums: gemengde notaties of waarden buiten het toegestane bereik.

Voorkomen: valideer je brongegevens vóór de conversie en ga er niet van uit dat Excel-kolommen schoon zijn.

Fouten in de structuur

  • Ontbrekende verplichte velden: de XML is technisch geldig, maar de bank keurt af omdat bijvoorbeeld machtigingsgegevens ontbreken.
  • Verkeerde pain-versie: het bestand gebruikt de verouderde pain.008.001.02, die vanaf november 2026 wordt afgewezen.
  • Namespace-problemen: de XML declareert de verkeerde namespace, waardoor de bank de structuur niet kan lezen.

Voorkomen: weet welke pain-versie je bank verwacht, valideer tegen het schema en test eerst met een klein bestand.

Fouten in de koppeling

  • Dubbele machtigingskenmerken: dezelfde machtiging staat twee keer in het bestand.
  • IBAN past niet bij de naam: het rekeningnummer hoort bij een andere tegenpartij.
  • Verkeerde doelcodes: betalingen zijn verkeerd geclassificeerd.

Voorkomen: houd je stamgegevens schoon, gebruik vaste kenmerken en documenteer je koppelingen.

Vuistregel: loopt het vast, controleer dan eerst de gegevens, daarna het formaat en pas daarna de technische structuur.

Testen vóór de upload bij je bank

Stuur nooit je eerste productiebestand zonder lokale test:

  1. Open de XML in een teksteditor of XML-viewer; een geldig bestand laat zich zonder fouten lezen.
  2. Tel de records: komt het aantal betalingen overeen met wat je verwacht?
  3. Steekproef op bedragen: controleer vijf transacties.
  4. Valideer het schema met een SEPA-validator, bijvoorbeeld de SEPA-incasso XML-validator, of met de tool van je bank.
  5. Test bij de bank: sommige banken bieden een testomgeving. Gebruik die vóór productie.

Bij een afwijzing geven banken meestal een foutrapport met het veld dat het probleem veroorzaakt. Lees het zorgvuldig: het zegt vaak precies waar het misgaat, niet alleen “ongeldig bestand”.

Automatiseren met een API

Wordt het maken van SEPA-bestanden een vaste routine, dan loont automatisering. Een typische API-koppeling werkt zo:

  1. Je ERP of boekhoudsysteem stuurt de betaalgegevens via een API.
  2. De betaalservice ontvangt de gegevens, controleert ze en genereert SEPA XML.
  3. Het bestand gaat naar je bank.
  4. Een bevestiging gaat terug naar het bronsysteem.

Medewerkers hoeven dan niet meer te exporteren, om te zetten en te uploaden. Ze bevestigen in het bronsysteem en de rest gaat automatisch.

Checklist voor je SEPA-bestand

Stap Wat je doet Wanneer
Type kiezen pain.001 voor betalen, pain.008 voor innen Bij het inrichten
Gegevens opschonen IBAN’s, bedragen, namen en datums controleren Vóór elke conversie
Versie controleren Nagaan welke pain-versie je bank accepteert Bij het inrichten en bij bankwijzigingen
Valideren Schema-controle en steekproef Vóór elke upload
Vier-ogenprincipe Tweede persoon controleert en keurt goed Bij elke batch
Automatiseren API-koppeling voor terugkerende batches Zodra het volume het rechtvaardigt

Een SEPA-bestand is gestandaardiseerde XML die je bank voor eurobetalingen verwacht, en schone brongegevens voorkomen de meeste problemen. Wil je het zelf proberen? Zet je eigen Excel-bestand om met GenerateSEPA: 7 dagen gratis, met validatie vóórdat het bestand naar je bank gaat.


Veelgestelde vragen

Wat is een SEPA-bestand?
Een SEPA-bestand is een gestandaardiseerd XML-document waarmee bedrijven overboekingen en incasso's bij hun bank aanleveren. Het is gebaseerd op de ISO 20022-standaard en vervangt sinds 2014 nationale formaten zoals ClieOp3. De belangrijkste soorten zijn pain.001 voor overboekingen en pain.008 voor incasso's.
Vanuit welke formaten kun je een SEPA-bestand maken?
Meestal vanuit Excel of CSV. Excel is flexibel maar gevoelig voor opmaakfouten, CSV is eenvoudiger en betrouwbaarder voor exports uit systemen. JSON werkt goed voor technische koppelingen via een API. Ook oudere bankformaten en ERP-exports zijn om te zetten met een goede veldkoppeling.
Hoeveel betalingen kan één SEPA-bestand bevatten?
Eén SEPA-bestand kan tot 100.000 betaalopdrachten bevatten. Daardoor is het formaat geschikt voor bedrijven met grote volumes. De omschrijving per betaling is beperkt tot maximaal 140 tekens.
Wat controleer je voordat je een SEPA-bestand uploadt?
Controleer of alle verplichte velden aanwezig zijn, of IBAN's en namen kloppen, of de omschrijving goed is opgemaakt, of het bestand de pain-versie gebruikt die je bank accepteert en of de XML-structuur technisch valide is. Laat bij voorkeur één persoon het bestand maken en een tweede persoon het controleren en goedkeuren.

Gerelateerde artikelen