Een boekhoudkoppeling zet orders, facturen en betalingen uit je webshop, portaal of planningssysteem automatisch om in boekingen in je boekhoudpakket. Of die boekingen kloppen, hangt af van afspraken die je vooraf vastlegt: welke grootboekrekening, welk dagboek, welke btw code, welke relatie en welke periode. De controller of accountant maakt die afspraken; de koppeling voert ze elke keer op dezelfde manier uit.
Hieronder lees je waar een boekhoudkoppeling in de praktijk misgaat en hoe je elk onderdeel inricht, van het rekeningschema tot de aansluiting aan het eind van de maand. Pakketten als Exact Online, AFAS Profit, Twinfield en SnelStart bieden allemaal een API om boekingen aan te leveren. Waar we naar hun regels verwijzen, komt dat uit hun openbare documentatie.
Waar een boekhoudkoppeling misgaat
Wie een webshop of maatwerkapplicatie aan het boekhoudpakket koppelt, denkt eerst aan de techniek: inloggen op de API, een factuur versturen, een bevestiging terugkrijgen. Dat deel werkt meestal snel. De problemen komen later, bij de eerste btw aangifte of de eerste maandafsluiting, als een tussenrekening niet op nul uitkomt of een betaling nergens aan hangt.
Handwerk in finance is foutgevoelig, en dat handwerk wil je met een koppeling juist kwijt. In een enquête van Gartner onder 497 mensen in de controllersfunctie zei 18% minstens dagelijks een financiële fout te maken, 33% meerdere per week en 59% meerdere per maand. Een koppeling haalt het overtypen weg. Een slecht ingerichte koppeling herhaalt dezelfde fout wel bij elke order, en niemand ziet hem voorbij komen.
De meeste fouten vallen in een paar vaste groepen:
- Omzet of kosten op de verkeerde grootboekrekening, omdat een nieuw product of een nieuwe betaalmethode geen mapping heeft.
- Een verkeerde of ontbrekende btw code, waardoor de aangifte niet aansluit op de omzet.
- Dubbele debiteuren, omdat de webshop elke bestelling als nieuwe klant aanlevert.
- Boekingen in een periode die al is afgesloten, of boekingen die daardoor worden geweigerd.
- Betalingen die niet worden afgeletterd en als open post blijven staan.
Dit artikel gaat over die boekhoudkundige kant. Voor de bredere vraag hoe je webshop, WMS en planning aan een ERP koppelt, met routes als connectors en middleware, lees je ons artikel over de ERP koppeling. Hoe een API technisch werkt, staat in wat is een API koppeling.
Grootboekrekeningen mappen: de controller beslist, de koppeling volgt
Het rekeningschema is van de financiële afdeling. De koppeling leest het en voegt er zelf niets aan toe. Leg daarom in een mappingtabel vast welke gebeurtenis in de bronapplicatie op welke rekening, in welk dagboek en met welke btw code terechtkomt. Die tabel is het belangrijkste document van het project: de controller of accountant vult de rekeningen en codes in, de ontwikkelaars bouwen wat er staat.
Een vereenvoudigd voorbeeld voor een webshop met een betaalprovider:
| Gebeurtenis in de bron | Dagboek | Grootboekrekening | Btw code | Relatie |
|---|---|---|---|---|
| Factuur, product hoog tarief | Verkoopboek | Omzet hoog tarief | Hoog tarief | Debiteur |
| Factuur, product laag tarief | Verkoopboek | Omzet laag tarief | Laag tarief | Debiteur |
| Retour of creditnota | Verkoopboek | Zelfde omzetrekening als de factuur | Zelfde code als de factuur | Zelfde debiteur |
| Uitbetaling betaalprovider | Bank | Tussenrekening betaalprovider | Geen | Geen |
| Transactiekosten betaalprovider | Inkoopboek of memoriaal | Kosten betalingsverkeer | Bepaalt de accountant | Crediteur betaalprovider |
| Factuur onderaannemer uit planning | Inkoopboek | Kostenrekening per soort werk | Bepaalt de accountant | Crediteur |
De namen zijn voorbeelden. Welke rekeningen en codes je gebruikt, volgt uit je eigen rekeningschema en de keuzes van je accountant. Drie regels houden zo'n tabel beheersbaar:
- Mapping als instelling. Sla de tabel op buiten de programmacode, zodat finance een rekening kan wijzigen zonder nieuwe release.
- Stoppen bij onbekend. Laat de koppeling een boeking tegenhouden met een duidelijke melding zodra een combinatie ontbreekt. Een vangrekening "nog te rubriceren" loopt ongemerkt vol.
- Codes ophalen via de API. Lees rekeningen, dagboeken en btw codes uit het pakket en controleer de mapping daartegen. Exact Online heeft daarvoor onder meer de resources GLAccounts, Journals en VATCodes in zijn REST API.
Dagboeken en btw codes in de boekhoudkoppeling
Een dagboek bepaalt de soort boeking: verkoop, inkoop, bank of memoriaal. Geef de koppeling bij voorkeur een eigen verkoopboek of een herkenbare nummerreeks. Zo zie je in één oogopslag welke boekingen automatisch zijn binnengekomen, en kan finance een foute reeks terugdraaien zonder handmatige boekingen te raken. Of een apart dagboek past bij je administratie, beslist de controller.
Btw verdient extra zorg. Nederland kent een algemeen tarief van 21%, een verlaagd tarief van 9%, een nultarief en vrijstellingen, zoals de Belastingdienst beschrijft. Daarnaast bestaan situaties als verlegde btw en leveringen over de grens, elk met een eigen code in het pakket. De koppeling moet per regel een btw code meegeven. Het tarief afleiden uit het verschil tussen een bedrag inclusief en exclusief btw gaat mis bij kortingen en afronding.
Reken er niet op dat het boekhoudpakket een verkeerde code tegenhoudt. De documentatie van AFAS Profit meldt bij het aanleveren van journaalposten dat er geen controle plaatsvindt op de geldigheid van btw codes. De controle hoort dus in de koppeling of in de mappingtabel. Voor de keuze van de code heeft de koppeling ook gegevens uit de bron nodig, zoals het land van de klant en een btw nummer. Welke code bij welke situatie hoort, bepaalt de accountant.
Debiteuren, crediteuren en boekingsperiodes
Elke verkoopboeking hangt aan een debiteur en elke inkoopboeking aan een crediteur. De eerste valkuil is dubbele relaties. Een webshop kent klanten vaak alleen als mailadres, en zonder vaste sleutel maakt de koppeling bij elke bestelling een nieuwe debiteur aan. Sla daarom het relatienummer uit het boekhoudpakket op in de bronapplicatie, of match op een stabiel gegeven zoals KvK nummer of btw nummer. Matchen op naam levert vroeg of laat twee debiteuren voor één klant op.
Voor particuliere klanten kiezen veel organisaties een verzameldebiteur in plaats van een relatie per consument. Dat is een keuze van finance; de koppeling moet beide aankunnen. Bij crediteuren speelt nog iets. Laat de koppeling bankrekeningnummers van bestaande crediteuren niet ongezien overschrijven. Een gewijzigd rekeningnummer hoort bij een mens langs te gaan.
De tweede valkuil is de periode. In AFAS bepaalt de boekdatum automatisch het boekjaar en de periode, en "er mag niet worden geboekt in een geblokkeerde periode", aldus de UpdateConnector documentatie. Andere pakketten werken vergelijkbaar. Spreek af welke datum de koppeling als boekdatum gebruikt: factuurdatum, leverdatum of betaaldatum. Leg ook vast wat er gebeurt met een factuur die binnenkomt nadat finance de maand heeft afgesloten. De koppeling zet zo'n boeking in een wachtrij en meldt hem. Finance beslist of hij in de volgende open periode komt.
Afronding, creditnota's en betalingen afletteren
Afrondingsverschillen van een cent lijken klein, maar ze houden een aansluiting open. De Belastingdienst staat twee methodes toe: het btw bedrag afronden per factuurregel of over het totaal van de factuur. Beide methodes naast elkaar gebruiken mag niet. Rondt de webshop per regel af en rekent het boekhoudpakket over het totaal, dan ontstaan centverschillen. De oplossing is eenvoudig: de koppeling stuurt het btw bedrag mee zoals het op de factuur staat, en finance wijst een rekening aan voor de resterende afrondingsverschillen.
Creditnota's boek je als eigen document met een verwijzing naar de oorspronkelijke factuur, op dezelfde rekening en met dezelfde btw code. Die verwijzing is ook in de regels van de Belastingdienst terug te vinden, bijvoorbeeld bij de vereenvoudigde factuur die een eerdere factuur wijzigt. Een koppeling die een retour verwerkt door de oorspronkelijke boeking aan te passen, wist het spoor uit.
Betalingen zijn de derde bron van open posten. Een betaalprovider betaalt vaak één nettobedrag uit voor tientallen orders, met de transactiekosten er al af. Boek de uitbetaling daarom via een tussenrekening, boek de kosten apart en letter elke order af op het factuurnummer. Komt de tussenrekening aan het eind van de dag niet op nul uit, dan ontbreekt er een order, een kostenpost of een terugboeking.
Controle en aansluiting achteraf
Een boekhoudkoppeling is pas af als finance kan controleren wat hij heeft gedaan. Vier controles horen er standaard bij:
- Omzet per dag. Het totaal per btw code in de bronapplicatie is gelijk aan het totaal in het verkoopboek.
- Tussenrekeningen. De tussenrekening van de betaalprovider en eventuele kruisposten staan na verwerking op nul.
- Open posten. De openstaande debiteuren in het pakket komen overeen met de onbetaalde facturen in de bron.
- Spoor per boeking. Elke boeking draagt het ordernummer of factuurnummer uit de bron. Komt dezelfde order twee keer binnen, dan ontstaat er één boeking.
Dat spoor heeft een lange levensduur. De Belastingdienst vraagt de administratie 7 jaar te bewaren, en noemt daarbij uitdrukkelijk het grootboek en de debiteuren en crediteurenadministratie. Hoe lang je de logboeken van de koppeling bewaart, spreek je af met je accountant.
Houd ook rekening met de grenzen van het pakket. AFAS accepteert maximaal 1.000 regels per journaalpost. Twinfield weigert transacties boven 1.000 regels, adviseert er hoogstens 500 en staat 10 gelijktijdige verzoeken per klant en administratie toe. Een verzamelboeking van een drukke webshopdag moet je dus opknippen. Voor SnelStart staat de documentatie op het B2B API portaal. Komen er boekingen uit drie of meer systemen, dan loont een tussenlaag met één centrale plek voor mapping en logging; zie ons artikel over middleware.
Wij bouwen boekhoudkoppelingen als onderdeel van software integratie en API ontwikkeling. Dat doen we met 30+ engineers in Nijmegen en Sarajevo, ruim 30 jaar ervaring en 100+ projecten, ISO 9001 en ISO 27001 gecertificeerd. We beginnen met de mappingtabel samen met je controller, en de mensen die de koppeling bouwen, houden hem daarna draaiend.
Veelgestelde vragen
Wat is een boekhoudkoppeling?
Een boekhoudkoppeling is software die gegevens uit een webshop, portaal, planningssysteem of maatwerkapplicatie automatisch omzet in boekingen in een boekhoudpakket zoals Exact Online, AFAS, Twinfield of SnelStart. De koppeling kiest per boeking het dagboek, de grootboekrekening, de btw code, de relatie en de periode volgens vooraf vastgelegde afspraken.
Wie bepaalt de grootboekrekeningen en btw codes in een koppeling?
De controller of accountant. Die legt in een mappingtabel vast welke gebeurtenis op welke rekening, in welk dagboek en met welke btw code terechtkomt. De ontwikkelaars bouwen de koppeling volgens die tabel en zorgen dat hij stopt met een melding zodra een combinatie ontbreekt.
Boek je elke order apart of als verzamelboeking?
Dat hangt af van het volume en van wat finance wil kunnen terugzien. Aparte boekingen per factuur maken afletteren en controle eenvoudig. Een verzamelboeking per dag scheelt regels, maar let dan op de limieten van het pakket, zoals maximaal 1.000 regels per journaalpost in AFAS en per transactie in Twinfield.
Wat gebeurt er met een boeking in een afgesloten periode?
Het boekhoudpakket weigert hem meestal. Een goede koppeling zet zo'n boeking in een wachtrij, meldt hem aan finance en boekt hem pas nadat finance heeft gekozen in welke open periode hij hoort. De koppeling past zelf geen periodes aan.





