Verzamelbetaling maken: van Excel naar SEPA XML-bestand
2026-04-04
Het is de laatste werkdag van de maand. Vijftig leveranciers moeten betaald worden, de lijst staat in Excel en je bank wil een XML-bestand. Je bouwt het in elkaar, uploadt het en krijgt een kale melding terug: “XML Schema Validation Failed”. Dan begint het zoeken naar die ene ampersand in een bedrijfsnaam of dat ene bedrag met een komma.
Een verzamelbetaling (ook wel batchbetaling of SEPA batch) is één bestand met al je betaalopdrachten, dat je in één keer bij je bank aanlevert. Een generator voor verzamelbetalingen zet je gegevens uit Excel of CSV om in het exacte XML-formaat dat banken eisen. In dit artikel lees je hoe je je gegevens voorbereidt, hoe je het bestand maakt, welke fouten tot afwijzing leiden en wanneer je beter via een API kunt automatiseren.
Waarom een verzamelbetaling met de hand maken je tegenhoudt
Een SEPA XML-bestand met de hand maken is traag en riskant. Eén verkeerd IBAN, een vreemd teken in een naam of een verkeerd datumformaat kan een hele betaalrun laten mislukken, soms met honderden transacties erin.

De gevolgen zijn concreet:
- Kosten: sommige banken rekenen kosten voor afgewezen bestanden of teruggekomen betalingen.
- Verloren uren: je financiële mensen zijn bezig met bestanden maken, controleren en repareren in plaats van met analyse of planning.
- Te late betalingen: leveranciers en medewerkers krijgen hun geld niet op tijd, wat relaties onder druk zet en tot rente of boetes kan leiden.
| Handmatig | Met een generator | |
|---|---|---|
| Bestand maken | XML zelf opbouwen of overtypen | Excel of CSV uploaden en kolommen koppelen |
| IBAN-controle | Rij voor rij met het oog | Automatisch, vóór het bestand wordt gemaakt |
| Fout opsporen | Zoeken in de XML na afwijzing | Fout zichtbaar in je bronbestand |
| Focus van het team | Gegevens invoeren | Controleren en goedkeuren |
Een generator voor verzamelbetalingen is daarom geen luxe maar basisgereedschap. Je werkt in je vertrouwde spreadsheet en de tool regelt de XML-structuur.
Je gegevens voorbereiden voor een foutloze verzamelbetaling
Een verzamelbetaling is nooit beter dan de gegevens die je erin stopt. Zie het als een checklist vóór vertrek: wie dit goed doet, krijgt geen afwijzingsmails van de bank.
Je spreadsheet op orde
Dit zijn de punten die je altijd controleert:
- Naam van de ontvanger: houd je aan het basistekenset (A-Z, a-z, 0-9 en eenvoudige leestekens). Schrijf “P. & L. Services” als “P en L Services”. Banken zijn hier streng.
- Adres van de ontvanger: vaak optioneel, maar als je het opneemt, verdeel het dan over aparte kolommen (straat, postcode, plaats, land).
-
Bedragen: in het XML-bestand is een punt het decimaalteken: € 1.200,50 wordt
1200.50. Zorg dat je kolom echte getallen bevat, zonder euroteken of duizendtalscheiding als tekst. - Tekencodering: sla CSV-bestanden op als UTF-8, zodat namen met accenten niet verminkt raken.
De verplichte velden per betaling
Of het nu om een SEPA-overboeking (SCT) of een SEPA-incasso (SDD) gaat: zonder deze velden stopt je batch.
| Veld | Uitleg | Voorbeeld |
|---|---|---|
| IBAN | Het rekeningnummer van de ontvanger. | NL91ABNA0417164300 |
| BIC | De code van de bank van de ontvanger; binnen SEPA meestal optioneel. | ABNANL2A |
| Bedrag | Het bedrag, met een punt als decimaalteken. | 250.75 |
| End-to-end-ID | Jouw unieke referentie per betaling, bijvoorbeeld het factuurnummer. | INV-2026-03-112 |
| Omschrijving | De tekst die de ontvanger op zijn afschrift ziet, of het betalingskenmerk. | Diensten maart 2026 |
Vuistregel: controleer IBAN’s vóórdat je het XML-bestand maakt, niet erna. Eén tikfout laat een betaling mislukken. De gratis IBAN-validator controleert een nummer in een paar seconden.
Een voorbeeld uit de praktijk
Stel: Groothandel Van Dijk B.V. in Zwolle betaalt drie leveranciers. Een goed opgebouwd CSV-bestand ziet er zo uit:
Naam,IBAN,Bedrag,EndToEndID,Omschrijving
"Drukkerij Jansen","NL91ABNA0417164300",1250.00,"INV-DJ-001","Drukwerk Q1"
"Kantoorartikelen Noord","BE68539007547034",345.50,"INV-KN-452","Bestelling kantoorartikelen"
"Software Werk GmbH","DE89370400440532013000",5200.25,"INV-SW-987","Softwarelicentie"
Elke kolom heeft één doel, de formaten kloppen en alle verplichte gegevens zijn aanwezig. Met zo’n bronbestand komt je XML-bestand vrijwel altijd in één keer door de controle van de bank.
Zo maak je je eerste verzamelbetaling-bestand
Met je gegevens klaar in een spreadsheet is de volgende stap het omzetten naar een XML-bestand dat je bank accepteert.

1. Upload je spreadsheet
Je uploadt je Excel- of CSV-bestand in de browser; er is niets te installeren. Of het nu om tien of tienduizend betalingen gaat, de werkwijze is hetzelfde.
2. Koppel je kolommen aan de SEPA-velden
Dit is de belangrijkste stap. Je geeft aan welke kolom in jouw bestand overeenkomt met welk SEPA-veld: jouw kolom “Crediteur” is de naam van de ontvanger, jouw kolom “Rekening” het IBAN, enzovoort. Je hoeft niets te weten van de structuur van een XML-bestand. In GenerateSEPA wordt die koppeling onthouden, zodat je volgende betaalrun sneller gaat.
3. Laat de IBAN’s controleren
Voordat het bestand wordt gemaakt, worden de IBAN’s gecontroleerd op structuur en controlecijfers. Een fout IBAN zie je dus terug in je eigen gegevens in plaats van in een afwijzing van de bank. Je verbetert de rij in je spreadsheet en gaat verder.
4. Genereer het XML-bestand
Daarna kies je het type bestand:
- pain.001.001.03: voor SEPA-overboekingen (SCT), zoals leveranciers, salarissen en onkostenvergoedingen.
- pain.008.001.02: voor SEPA-incasso’s (SDD), als je geld int bij klanten, in Core of B2B.
Het bestand download je direct en upload je in het zakelijk internetbankieren van ING, Rabobank, ABN AMRO of je eigen bank. Meer achtergrond vind je in de gids over de SEPA XML-converter.
Veelvoorkomende fouten bij een verzamelbetaling oplossen
Je hebt het bestand geüpload en de bank wijst het af. Geen paniek: meestal gaat het om een handvol bekende problemen die je in een paar minuten oplost.

“Invalid IBAN” of “BIC not found”
Verreweg de meest voorkomende oorzaak. Minstens één IBAN klopt niet, of de bijbehorende BIC ontbreekt of is ongeldig. Meestal is het een tikfout of een oud rekeningnummer van een klant. Zoek de rij in je spreadsheet, verbeter hem en maak het bestand opnieuw. Vraag nieuwe ontvangers hun IBAN schriftelijk te bevestigen.
“XML Schema Validation Failed”
Het bestand voldoet niet aan de formaatregels. Vaak komt dat door speciale tekens (&, € of letters die de bank niet accepteert) in een naam of omschrijving, of door een veld dat te lang is. De SEPA-standaard staat 140 tekens toe in de ongestructureerde omschrijving, maar sommige banken hanteren kortere limieten.
Kernpunt: verbeter altijd het bronbestand en genereer het XML-bestand opnieuw. Wie de XML met de hand aanpast, introduceert nieuwe fouten en verliest het spoor tussen bron en betaling.
Loop je vaak tegen dezelfde fout aan, lees dan de gids over een SEPA-bestand valideren.
SEPA-regels veranderen
Soms ligt het niet aan je gegevens maar aan het formaat. De SEPA-regels (de rulebooks van de European Payments Council) worden periodiek bijgewerkt en banken passen hun controles daarop aan. Wie XML-bestanden zelf bouwt, moet die wijzigingen bijhouden. Met een generator ligt dat technische werk bij de leverancier en hoeft je financiële team er niet over na te denken.
Opschalen: verzamelbetalingen automatiseren met een API
Groeit je bedrijf, dan wordt zelfs een gestroomlijnd handmatig proces een knelpunt. Een wekelijkse leveranciersrun of een maandelijkse salarisrun voor honderden medewerkers vraagt dan om automatisering.
Met een API praat je boekhoudsoftware of ERP rechtstreeks met de generator. In plaats van exporteren, inloggen en uploaden stuurt je systeem de betaalgegevens als JSON en krijgt het een SEPA XML-bestand terug. Dat levert op:
- Minder fouten: geen handmatige exports of verkeerde uploads meer.
- Direct beschikbaar: een betaling kan klaarstaan zodra hij in je systeem is goedgekeurd.
- Schaalbaar: tien betalingen of tienduizend, het proces is hetzelfde.
Endpoints, voorbeelden en authenticatie vind je in de API-documentatie. Het XML-bestand dat terugkomt, upload je daarna in je internetbankieren; GenerateSEPA verstuurt zelf niets naar de bank.
Checklist voor je volgende verzamelbetaling
| Stap | Wat je doet | Wanneer |
|---|---|---|
| 1 | Bronbestand opschonen: één rij per betaling, geen samengevoegde cellen | Vóór elke run |
| 2 | IBAN’s van nieuwe ontvangers controleren | Bij het aanmaken van de relatie |
| 3 | Unieke end-to-end-ID per betaling toekennen | Bij het opstellen van de batch |
| 4 | Kolommen koppelen en pain.001 of pain.008 genereren | Op de dag van de run |
| 5 | Bestand uploaden vóór de cut-off van je bank | Op de dag van de run |
| 6 | Bij afwijzing: bron verbeteren en opnieuw genereren | Direct na de melding |
Een goede verzamelbetaling begint bij schone gegevens en eindigt met een bestand dat de bank in één keer accepteert. Probeer GenerateSEPA 7 dagen gratis en zet je volgende betaalrun om vanuit je eigen Excel.
Veelgestelde vragen
- Wat is een verzamelbetaling?
- Een verzamelbetaling is één bestand met meerdere betaalopdrachten dat je in één keer bij je bank aanlevert, bijvoorbeeld voor salarissen of leveranciersfacturen. Binnen SEPA is dat een XML-bestand in het formaat pain.001. Je bank verwerkt alle betalingen uit het bestand in één run.
- Hoe maak ik een verzamelbetaling vanuit Excel?
- Zet per betaling één rij in Excel met naam, IBAN, bedrag en omschrijving. Upload het bestand in een converter, koppel de kolommen aan de SEPA-velden en download het XML-bestand. Dat bestand upload je daarna in je zakelijk internetbankieren.
- Wat is het verschil tussen pain.001 en pain.008?
- pain.001 is het bestand voor SEPA-overboekingen: jij betaalt leveranciers, medewerkers of terugbetalingen. pain.008 is het bestand voor SEPA-incasso's: jij int geld bij klanten op basis van een machtiging. Kies het type op basis van de richting van het geld.
- Waarom wijst mijn bank de verzamelbetaling af?
- De meest voorkomende oorzaken zijn een ongeldig IBAN, niet-toegestane tekens zoals een ampersand in een naam, een te lange omschrijving of een verplicht veld dat ontbreekt. Verbeter de fout in je bronbestand en genereer het XML-bestand opnieuw. Pas de XML niet met de hand aan.