Naar de inhoud
SyncMyShop

WooCommerce en boekhouding

WooCommerce koppeling met je boekhoudpakket

Een WooCommerce koppeling met je boekhoudpakket zet elke order als boeking of factuur in Exact Online, Moneybird, e-Boekhouden, SnelStart, Twinfield of Yuki, met de juiste btw-code, debiteur en grootboekrekening. Wat er landt en hoe snel hangt af van het pakket: van 150 verzoeken per 5 minuten tot 5.000 per dag.

Wat je tussen WooCommerce en je boekhoudpakket koppelt

De richting is bijna overal dezelfde: orders, terugbetalingen en betalingen gaan van WooCommerce naar de boekhouding. Wat er in het pakket ontstaat verschilt per pakket en soms per abonnement.

Pakket Wat een order wordt Voorraad uit de API
Exact Online verkoopboeking, verkoopfactuur, of verkooporder op Handel alleen Handel en Productie
SnelStart factuur of order, afhankelijk van het pakket voorraadbeheer vanaf inControle, API-details niet openbaar
Moneybird externe verkoopfactuur (external_sales_invoices) geen voorraad in de API
e-Boekhouden.nl factuur (/v1/invoice) of mutatie (/v1/mutation) vlag inStockManagement op een artikel, geen endpoint voor aantallen
Twinfield transactie of factuur via de XML-webservice processxml niet in de gelezen documentatie
Yuki verkoopfactuur via XML (ProcessSalesInvoices) niet in de webservice voor verkoop

SnelStart verdeelt de functies over pakketten: inZicht noemt het zelf het pakket "voor orderbeheer", inControle het pakket "voor controle over voorraden en bestellingen". Bij Exact Online staat in de API-documentatie bij elke resource in welk pakket hij werkt; de uitwerking voor WooCommerce staat op WooCommerce Exact Online koppeling. Heb je een ERP in plaats van een boekhoudpakket, kijk dan op WooCommerce AFAS koppeling.

Welk systeem is leidend, per gegeven

Gegeven Leidend Richting Gedrag
Order, regels, bedragen, btw-bedragen WooCommerce naar het pakket één keer, met het ordernummer als referentie
Btw-code en grootboekrekening het pakket vaste tabel in de koppeling per tarief, land en soort regel
Debiteur het pakket zoeken, anders aanmaken bestaande gegevens niet overschreven
Factuurnummer de factuurplugin of het pakket afgesproken per shop nooit uit allebei
Betaling WooCommerce en de betaalprovider naar het pakket op de openstaande post
Terugbetaling WooCommerce, orders/<id>/refunds naar het pakket creditfactuur of creditboeking

Wat WooCommerce en een boekhoudpakket anders bewaren

Een tarief tegenover een btw-code

Eén WooCommerce-orderregel met 21% btw in drie boekhoudpakketten Dezelfde orderregel uit WooCommerce, standaard btw-klasse en tariefcode NL-BTW-1, inclusief btw ingevoerd, wordt in Exact Online een btw-code uit de eigen administratie, in e-Boekhouden de vaste code HOOG_VERK_21 en in Moneybird het ID van een tarief. Moneybird gebruikt het standaardtarief als dat ID ontbreekt, en e-Boekhouden rekent standaard exclusief btw. WooCommerce, order Boekhoudpakket, orderregel line_items[0].tax_class leeg = standaard tax_lines[0].rate_code NL-BTW-1 prices_include_tax true Exact: VATCode 4 uit VATCodes, per administratie e-Boekhouden: vatCode HOOG_VERK_21 vaste code van het pakket Moneybird: tax_rate_id id uit /tax_rates leeg = standaardtarief e-Boekhouden: inExVat IN leeg = EX Moneybird: prices_are_incl_tax true leeg = instelling administratie tabel per pakket tarief plus land altijd meesturen
Hetzelfde tarief, drie manieren om het aan te leveren. De rode velden hebben een standaardwaarde die stil de verkeerde btw oplevert als de koppeling ze leeg laat.

WooCommerce geeft elke orderregel een tax_class en zet de toegepaste tarieven in tax_lines, met een rate_code zoals NL-BTW-1. Elk pakket wil iets anders. Exact Online vraagt een code uit de eigen administratie. e-Boekhouden heeft vaste codes: HOOG_VERK_21, LAAG_VERK_9, VERL_VERK voor verlegd en AFST_VERK voor afstandsverkoop binnen de EU. Moneybird vraagt het ID van een tarief uit /tax_rates, en dat ID verschilt per administratie.

Het gevaarlijke deel is wat er gebeurt als de koppeling een veld leeg laat. Moneybird gebruikt dan het standaardtarief van de administratie, dus een regel met 9% wordt stil een regel met 21%. e-Boekhouden vraagt de btw-code verplicht, maar rekent zonder inExVat met bedragen exclusief btw. Een prijs van € 24,20 inclusief btw die als exclusief binnenkomt, wordt € 24,20 x 1,21 = € 29,28 op de factuur. De koppeling stuurt daarom altijd zowel de code als de vlag voor inclusief of exclusief mee. Meer in bedragen en btw mappen.

Twee decimalen tegenover het tarief

De REST API van WooCommerce rondt bedragen standaard af op 2 decimalen. Btw van € 0,8673 wordt € 0,87, en een pakket dat het percentage terugrekent uit de bedragen vindt 21,07% in plaats van 21%. De koppeling vraagt orders op met dp=4 en kiest de code uit het tarief, niet uit een teruggerekend percentage.

Verzendkosten en toeslagen

Verzendkosten staan in WooCommerce in shipping_lines, toeslagen zoals een betaaltoeslag in fee_lines. In de meeste pakketten worden ze een eigen factuurregel met een eigen grootboekrekening. Welk tarief verzendkosten krijgen in een order met zowel 9% als 21%, leg je één keer vast met je boekhouder. De koppeling past die regel op elke order toe en zet het resultaat als aparte regels in het pakket. Zie btw voor webshops.

Grootboekrekeningen per regel

e-Boekhouden vraagt per factuurregel een ledgerId, Exact Online bij een verkoopboeking een GLAccount, Moneybird optioneel een ledger_account_id. WooCommerce kent geen grootboek. De koppeling kiest de rekening uit een tabel per tarief, per land en, als je dat wilt, per productcategorie. Een factuur in e-Boekhouden heeft hooguit 500 regels.

De technische werkelijkheid per pakket

Pakket API en toegang Limiet Per pagina
Exact Online REST, OAuth 2.0 60 per minuut, 5.000 per dag 60, sync 1.000
Moneybird REST, OAuth of persoonlijk token 150 per 5 minuten per IP-adres 50, maximaal 100
e-Boekhouden.nl REST, API-token naar sessietoken niet gedocumenteerd 100, maximaal 2.000
Twinfield SOAP met XML, OpenID Connect in credits: 1.000 per minuut per IP-adres, 500 per klant en administratie; ongecertificeerde koppelingen 5% daarvan 1.000 regels per boeking
Yuki SOAP, API-sleutel naar sessie-ID 1.000 aanroepen per dag per domein, uit te breiden tot 5.000 of 10.000 n.v.t.

De gegevens komen uit de documentatie van Moneybird, e-Boekhouden, Exact Online, Twinfield en Yuki (sinds september 2026 Nmbrs Accounting), nagelezen op 3 oktober 2026. SnelStart publiceert zijn B2B-API via een ontwikkelaarsportaal waarvoor je je eerst registreert; limieten staan niet op de openbare pagina's en zijn hier daarom niet vermeld.

Moneybird doorgerekend. 150 verzoeken per 5 minuten is 30 per minuut. Een order kost 3 verzoeken: contact zoeken, factuur aanmaken, betaling registreren. Bij 400 orders per dag is dat 1.200 verzoeken, 40 minuten rekentijd verspreid over de dag. Na een storing van 4 uur met 120 orders in de wachtrij duurt het inhalen 360 / 30 = 12 minuten. De limiet telt per IP-adres, dus elke koppeling die vanaf hetzelfde adres met Moneybird praat, deelt die 150. Boven de grens komt een 429 met Retry-After; de koppeling wacht die tijd af.

Tokens die verlopen. Twinfield geeft bij de authorization code flow een access token van 3.600 seconden en een refresh token met de scope offline_access. Elk SOAP-verzoek draagt naast het token de CompanyCode, en het adres van het cluster komt uit het token. e-Boekhouden geeft op POST /v1/session een sessietoken met een expiresIn; het API-token zelf zie je één keer, bij het aanmaken. Exact Online geeft een access token van 600 seconden. De koppeling ververst elk token voordat het verloopt, vanuit één proces.

Webhooks. Moneybird en Exact Online versturen webhooks, WooCommerce ook. De WooCommerce-webhook loopt via wp-cron en gaat uit na vijf mislukte afleveringen op rij, dus de koppeling haalt daarnaast elk uur gewijzigde orders op met modified_after. Zie WooCommerce REST API koppelen.

Wat een standaardkoppeling hier niet doet

Standaardkoppelingen tussen WooCommerce en boekhoudpakketten documenteren hun eigen grenzen. Deze komen terug bij meerdere aanbieders:

  • Alles als concept. Facturen en boekingen komen als concept binnen, omdat wijzigen achteraf in het pakket lastig is. Iemand moet ze daarna nog verwerken.
  • Eén kostenplaats en één magazijn per koppeling, vast ingesteld.
  • Artikelnummers inkorten of verlengen. Voor SnelStart vraagt een standaardkoppeling het artikelnummerveld van 10 cijfers op te hogen naar 25 tekens, omdat hij eigen artikelen voor verzendkosten en kortingen aanmaakt.
  • Alleen volledige terugbetalingen, binnen 30 dagen.
  • Geen velden van plugins. Vrije velden op de order worden niet gelezen.

Een gebouwde koppeling zet facturen definitief als je dat wilt, met de grootboekrekeningen, kostenplaatsen en btw-codes van jouw administratie, en verwerkt ook gedeeltelijke terugbetalingen.

Als het misgaat

Wat er misgaat Wat de koppeling doet Wat je ziet
Tarief zonder code in de tabel order naar de controlelijst de order, het tarief en het land
429 van het pakket wachten op Retry-After of het volgende venster niets, tenzij het aanhoudt
Factuurnummer bestaat al order vastgehouden, geen tweede nummer de order en het nummer
Token ingetrokken in het pakket alle stromen pauzeren een verzoek om opnieuw toegang te geven
Totaal van de regels wijkt af van het ordertotaal order naar de controlelijst het verschil in centen

Voordat een order wordt aangeboden, telt de koppeling de regels, verzendkosten en toeslagen op en vergelijkt die met het ordertotaal in WooCommerce. Een verschil van 1 cent door afronding wordt een afrondingsregel; een groter verschil gaat naar de controlelijst. Voor livegang draait de koppeling als dry run: je ziet per order welke regels, codes en rekeningen er in je pakket zouden komen.

Wij hosten en bewaken de koppeling en passen hem aan als je pakket of WooCommerce iets wijzigt. De platformkant staat op WooCommerce koppeling, de orderstroom op orders, klanten en verzending, en het overzicht op koppelingen. Per pakket: Exact Online koppeling, SnelStart koppeling, Moneybird koppeling, e-Boekhouden koppeling, Twinfield koppeling en Yuki koppeling. Vertel welk pakket je gebruikt en hoe je orders nu boekt.

Veelgestelde vragen

Welk boekhoudpakket werkt het best met WooCommerce?

Elk pakket op deze pagina heeft een API waarmee een order als factuur of boeking binnenkomt. Het verschil zit in wat er daarna kan. Exact Online Handel en Productie geven via de API voorraad per artikel terug aan de shop, net als een ERP zoals AFAS. In de API's van Moneybird en e-Boekhouden staat geen endpoint voor voorraadaantallen; daar boekt de koppeling de verkoop en de betaling.

Moet elke order een eigen debiteur worden?

Niet per se. Zakelijke klanten krijgen een eigen debiteur met btw-nummer, zodat facturen en openstaande posten per klant kloppen. Particulieren kunnen op één verzameldebiteur. De koppeling zoekt eerst op klantnummer, dan op e-mail en btw-nummer, en maakt pas daarna een nieuwe debiteur aan.

Komt het factuurnummer uit WooCommerce of uit het boekhoudpakket?

Uit één van de twee, en dat leg je vast. WooCommerce maakt zelf geen factuurnummers; die komen van een plugin en staan in meta_data op de order. Gebruik je zo'n plugin, dan neemt de koppeling dat nummer over, in e-Boekhouden in invoiceNumber (maximaal 50 tekens, eindigend op een cijfer). Zonder plugin geeft het pakket het nummer uit en schrijft de koppeling het terug bij de order.

Hoe komen betalingen van Mollie in de boekhouding?

Als betaling op de openstaande post van de factuur. De koppeling zoekt die post op het factuurnummer of de referentie. Bij Yuki kan een zoekactie op factuurnummer volgens de documentatie meer dan één post opleveren; daar zoekt de koppeling op het ID dat hij bij het aanmaken heeft bewaard. Zie wat is afletteren.

Kan ik later van boekhoudpakket wisselen?

Ja. De WooCommerce-kant blijft hetzelfde: orders, terugbetalingen en klanten via de REST API. Aan de pakketkant verandert de vertaaltabel voor btw-codes, grootboekrekeningen en debiteuren. Orders die al in het oude pakket staan worden niet opnieuw geboekt; de koppeling begint in het nieuwe pakket vanaf een afgesproken datum.

Vertel wat je nodig hebt

Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.

  • Je weet de prijs en de doorlooptijd voordat je iets toezegt
  • Wij zoeken uit welke koppeling het werk uit handen neemt
  • Wij verzorgen de bouw, hosting, bewaking en het onderhoud
  • Je team krijgt minder overtypwerk en minder uitzoekwerk

Leveranciers, producten, orders per dag, een ruwe schatting is prima.

Of mail direct: carsten@syncmyshop.com