Naar de inhoud
SyncMyShop

Koppelingen

Orders, klanten en verzending: een bestelling staat meteen overal waar hij moet staan

Een order uit je webshop staat zonder overtypen in je ERP of boekhouding, bij de juiste debiteur en met de juiste btw-code. Het magazijn krijgt de pickopdracht en de klant zijn track-and-trace. Wij bouwen de koppeling op jouw regels, en draaien en bewaken hem daarna.

Van bestelknop tot track-and-trace

Een klant bestelt. Daarna moeten vier partijen het weten: de administratie kent de order, het magazijn weet wat er gepickt wordt, de vervoerder krijgt een zending en de klant krijgt zijn code. Elke stap is een eigen stroom met een eigen richting en een eigen moment.

Gegeven Richting Moment
Order met regels, adressen en betaalstatus webshop naar ERP of boekhouding bij het plaatsen of bij betaling
Nieuwe klant webshop naar ERP met de eerste order
Pickopdracht ERP of koppeling naar magazijn zodra de order is vrijgegeven
Orderstatus en track-and-trace magazijn of vervoerder naar webshop bij elke zending
Factuur ERP naar webshop of klant na facturatie
Retour en creditnota webshop naar ERP en magazijn bij de retouraanmelding
Order 10482 van de webshop naar Exact Online, het magazijn en terug De webshop meldt order 10482 met een webhook en krijgt direct 200 terug. De koppeling zoekt de debiteur op btw-nummer, maakt de verkooporder aan in Exact Online en stuurt de pickopdracht naar het magazijn. De volgende ochtend meldt het magazijn de zending. De koppeling boekt de levering in Exact Online en zet status en track-and-trace in de webshop. Webshop WooCommerce Koppeling wachtrij Exact Online ERP Magazijn WMS order.created 10482 200 OK debiteur zoeken op btw-nummer debiteur 10432 POST SalesOrders 201, order 20417 pickopdracht, 3 regels volgende ochtend, 09:40 verzonden, code 3SABCD0123456 levering boeken status completed, track-and-trace Elke stap draagt webshoporder 10482 als sleutel. Een herhaling na een time-out maakt geen tweede order aan.
Order 10482 van bestelknop tot track-and-trace. De webshop krijgt direct antwoord, de rest loopt via de wachtrij.

De webshop wacht niet op het ERP. Hij meldt de order en krijgt direct 200 OK terug. De order staat dan in de wachtrij en de koppeling werkt de stappen daarna af. Shopify wil dat antwoord binnen 5 seconden hebben, en een verkooporder aanmaken met een debiteur, drie regels en een voorraadcontrole kan langer duren. Hoe die melding werkt staat in wat is een webhook. De andere vier stromen staan op koppelingen.

Waar een order in je administratie landt

Een order uit de webshop kan op drie manieren in de administratie komen, en het pakket bepaalt welke er bestaan. In Exact Online ziet dat er zo uit, nagelezen op 3 oktober 2026 in de API-documentatie van Exact Online:

Vorm Endpoint Beschikbaar in Kenmerk
Verkooporder SalesOrders Handel en Productie status 12 open, 20 gedeeltelijk, 21 volledig, 45 geannuleerd
Verkoopfactuur SalesInvoices ook in Boekhouden type 8020 factuur, 8021 creditnota; status 10 concept, 20 open, 50 verwerkt
Verkoopboeking SalesEntries de financiële administratie een boeking in een dagboek, type 20 of 21 voor een creditnota

Met Boekhouden is er dus geen verkooporder en loopt de voorraad niet mee in Exact Online. Dat verschil staat uitgewerkt in Exact Online Boekhouden of Handel. Facturen kunnen als concept (status 10) worden aangemaakt, zodat iemand ze naloopt voordat ze definitief zijn.

Vijf regels voor drie producten

Webshoporder 10482 heeft drie orderregels: 2 keer € 12,50, 1 keer € 48,00 en 4 keer € 6,25. Dat is € 25,00 plus € 48,00 plus € 25,00 is € 98,00. De btw van 21% is € 20,58 en het totaal € 118,58. In de boekhouding zijn dat vijf regels: drie omzetregels, één btw-regel en één regel op de debiteur.

Een order met drie producten is vijf boekingsregels Order 10482 heeft drie orderregels van 25,00, 48,00 en 25,00 euro en 20,58 euro btw. Aan de creditkant staan drie omzetregels en een btw-regel, samen 118,58 euro. Aan de debetkant staat een regel op debiteur 10432 van 118,58 euro. Credit: drie omzetregels en een btw-regel € 118,58 2 x 00482 € 25,00 1 x 01730 € 48,00 4 x 02215 € 25,00 Btw 21% € 20,58 Debet: debiteur 10432 € 118,58 Debiteur 10432 € 118,58 Vijf boekingsregels, debet is gelijk aan credit € 118,58
Een order met drie producten is vijf boekingsregels: drie voor de omzet, een voor de btw en een voor de debiteur.

Een koppeling die de order als één bedrag van € 118,58 boekt, is sneller gebouwd. De omzet per artikel en de btw per tarief zijn dan uit de boeking verdwenen, en de btw-aangifte moet uit de webshop worden nagerekend.

Bij SalesInvoices en SalesEntries is het dagboek een verplicht veld. Per verkoopkanaal leg je vast in welk dagboek en op welke grootboekrekening de omzet landt. Dat is het eerste waar een accountant naar vraagt: omzet van de webshop, van bol en van de balie op aparte rekeningen.

Ook afronding hoort hier. Drie regels van € 1,45 geven per regel € 0,30 btw, samen € 0,90. Over het totaal van € 4,35 is de btw € 0,91. Rekent de webshop per order en het ERP per regel, dan verschillen ze één cent en lukt het automatisch afletteren van de betaling niet. De koppeling neemt de bedragen van de webshop over en boekt het verschil op een vaste rekening. De details staan in bedragen en btw mappen.

Klanten en debiteuren zonder dubbelingen

De webshop kent een klant aan zijn e-mailadres, het ERP aan zijn debiteurnummer. Zonder vaste volgorde van zoeken maakt elke order van een bestaande klant een nieuwe debiteur aan. De koppeling zoekt in vier stappen:

Stap Zoekt op Bij een treffer
1 KvK-nummer of btw-nummer order op die debiteur
2 e-mailadres van de organisatie order op die debiteur
3 e-mailadres van de contactpersoon order op de organisatie van die contactpersoon
4 geen treffer nieuwe debiteur, of de order op de controlelijst

Bij stap 4 telt het type. Staat er een bedrijfsnaam op de order, dan wordt het een organisatie met een contactpersoon. Zonder bedrijfsnaam wordt het een persoon. AFAS heeft daarvoor twee UpdateConnectoren: KnSalesRelationOrg en KnSalesRelationPer.

Voor particuliere verkoop is een eigen debiteur per klant zelden nodig. Dertig orders per dag over 300 dagen zijn 9.000 orders per jaar, en zonder regel 9.000 debiteuren die elk één factuur krijgen. Een verzameldebiteur vangt die op: één debiteur per kanaal, met naam en adres van de klant op de order zelf. WooCommerce geeft een gastbestelling door met customer_id 0. De koppeling herkent daaraan dat er geen account achter zit.

Een klant die al twee keer in het ERP staat voordat de koppeling begint, lost de koppeling niet op: hij meldt het. Twee treffers in stap 1 gaan naar de controlelijst. De hele keten staat in dubbele klanten en debiteuren.

Statussen, deelleveringen en retouren

Webshop, ERP en vervoerder gebruiken elk een eigen set statussen, en ze passen niet een op een.

WooCommerce Exact Online verkooporder Wat de koppeling doet
processing 12, open order aanmaken na betaling
geen eigen status 20, gedeeltelijk track-and-trace per zending doorgeven, order blijft processing
completed 21, volledig status zetten als de laatste zending weg is
cancelled 45, geannuleerd annuleren zolang er niets geleverd is
refunded creditnota, type 8021 creditnota aanmaken, voorraad terug na controle

De tweede regel laat zien waar het schuurt. Een order van 10 stuks waarvan er vandaag 6 vertrekken en volgende week 4, is in het ERP één order met twee leveringen. WooCommerce heeft standaard geen status voor een deellevering. Shopify heeft die wel, PARTIALLY_FULFILLED. De klant moet in beide gevallen twee codes krijgen, elk met de regels die in dat pakket zitten. Dat staat uitgewerkt bij deelleveringen en track-and-trace.

Een order kan ook bij het doorzetten al splitsen: twee regels uit eigen voorraad, één regel rechtstreeks van de leverancier. Dat zijn drie regels op één webshoporder, twee pickopdrachten en twee zendingen.

Een retour is vier gebeurtenissen die los van elkaar lopen: de klant meldt de retour aan, het pakket komt binnen, het artikel wordt gecontroleerd en het geld gaat terug. In de administratie wordt de terugbetaling een creditnota met negatieve bedragen. De voorraad komt pas terug als het artikel is goedgekeurd, op de locatie waar het binnenkwam. Zie retouren en creditnota's en orderstatussen mappen.

Btw, landen en valuta

De webshop rekent met een percentage, het ERP met een btw-code. Het hoge tarief heeft in het ene systeem bijvoorbeeld code 2 en in het andere id 4, en die tabel leg je één keer vast. Daarna bepaalt de order zelf welke code geldt:

Order Herkend aan Btw-behandeling
Nederlandse klant afleverland NL Nederlandse btw
Particulier in een ander EU-land afleverland in de EU, geen btw-nummer Nederlandse btw tot de drempel, daarboven de btw van het land van de klant
Bedrijf in een ander EU-land afleverland in de EU, geldig btw-nummer, geen btw op de regels 0%, intracommunautaire levering
Klant buiten de EU afleverland buiten de EU export

De drempel voor afstandsverkopen is € 10.000 omzet per kalenderjaar, exclusief btw, over alle EU-landen samen. Daarboven geldt de btw van het land van de klant. Met de Unieregeling doe je daarvan één melding per kwartaal voor alle EU-landen. Dit is op 3 oktober 2026 nagelezen bij de Belastingdienst. Voor de koppeling betekent het een omzetrekening en een btw-code per land: de sleutel is kanaal, afleverland en wel of geen btw-nummer.

Voor het 0%-tarief moet het btw-nummer van de afnemer geldig zijn, en de levering komt in de opgaaf ICP. De koppeling controleert het nummer op het moment van de order bij VIES, de dienst van de Europese Commissie. Geef je daarbij je eigen btw-nummer mee, dan komt er een uniek raadplegingsnummer terug. Dat nummer wordt bij de order bewaard als bewijs van de controle.

Bij orders in een andere valuta staat vast welke koers geldt: die van de webshop op het moment van de order, of die van het ERP op de factuurdatum. Meer hierover in btw voor webshops.

Wat er stil misgaat

Een fragment van een order uit WooCommerce, met zes dingen die een koppeling goed moet doen:

{
  "number": "10482",
  "status": "processing",
  "date_created": "2026-10-01T00:30:12",
  "date_created_gmt": "2026-09-30T22:30:12",
  "customer_id": 0,
  "prices_include_tax": true,
  "total": "118.58",
  "total_tax": "20.58",
  "billing": {
    "company": "Bakker Installatie en Klimaattechniek Noord B.V.",
    "address_1": "Dorpsstraat 12 A",
    "postcode": "1234ab",
    "country": "NL"
  },
  "line_items": [
    {"sku": "00482", "quantity": 2, "total": "25.00", "total_tax": "5.25"}
  ]
}
Veld Wat er misgaat Wat de koppeling doet
date_created_gmt de order is van 1 oktober 00:30, in UTC is het 30 september 22:30: hij valt in september en in het derde kwartaal boeken op de lokale datum
customer_id 0 een gastbestelling wordt bij elke order een nieuwe debiteur de zoekvolgorde hierboven, of de verzameldebiteur
prices_include_tax prijzen inclusief btw komen als exclusief in het ERP: € 118,58 wordt € 143,48 omrekenen per regel
company 48 tekens. De API van PostNL staat voor de bedrijfsnaam 35 tekens toe: "Bakker Installatie en Klimaattechni" inkorten volgens een regel, de volledige naam in het ERP
address_1 straat, huisnummer en toevoeging in één veld, het ERP wil er drie splitsen, en bij twijfel naar de controlelijst
sku 00482 wordt ergens onderweg 482 en het ERP kent het artikel niet artikelcodes als tekst behandelen

Drie oorzaken van een afgekeurde order komen steeds terug: een artikel dat in het ERP niet bestaat, een zakelijke order zonder btw-nummer en een verplicht veld dat de webshop niet meestuurt. Exact Online eist op een verkooporder een klant en op elke regel een artikel. Bij een factuur komt daar het dagboek bij.

De vierde is de herhaling. Een verzoek aan het ERP loopt in een time-out, maar de order is wel aangemaakt. Een nieuwe poging zonder controle maakt order twee. De koppeling zet daarom het webshopnummer in een vast veld van de order, in Exact Online bijvoorbeeld Description, en zoekt daar eerst op.

Voor livegang lopen vijf gevallen apart door de test: een order die tijdens het doorzetten wordt geannuleerd, een creditnota, een klant die twee keer bestaat, een veld dat leeg blijkt te mogen zijn en een time-out midden in een reeks. Meer over het splitsen van adressen in adresvelden mappen.

Doorvoer en limieten

Systeem Grens Gevolg
Exact Online 60 verzoeken per minuut en 5.000 per dag, per administratie bij 3 verzoeken per order 20 orders per minuut
Shopify een webhook moet binnen 5 seconden beantwoord zijn; orders ouder dan 60 dagen alleen met read_all_orders eerst antwoorden, dan verwerken
bol een verzonden of geannuleerde order staat nog 48 uur in de lijst en is drie maanden op ordernummer op te vragen de ronde mag geen twee dagen stilliggen

Een order kost in Exact Online drie verzoeken: de debiteur zoeken, de artikelen van de regels ophalen en de order aanmaken. Een nieuwe klant kost er één extra.

  • Een gewone dag. 50 orders keer 3 is 150 verzoeken, 3% van het dagbudget van 5.000.
  • Een piekdag. 500 orders keer 3 is 1.500 verzoeken. Het drukste uur met 150 orders vraagt 450 verzoeken, en er passen 3.600 in een uur.
  • Samen met de voorraadronde. Het dagbudget geldt voor de hele koppeling op die administratie. Verbruikt de voorraadstroom 3.800 verzoeken, dan blijven er 1.200 over. Dat zijn 400 orders. Order 401 wacht op het budget van de volgende dag.

De derde regel is de reden dat orders in de wachtrij voorrang krijgen en dat de voorraadronde alleen wijzigingen ophaalt. Meer over die keuze in realtime of batch.

B2B-orders zijn anders

Een zakelijke order heeft velden die een consumentenorder niet heeft, en regels die vóór het doorzetten gelden.

  • Referentie van de klant. Het inkoopnummer van de klant hoort op de order, de pakbon en de factuur. In Exact Online is dat YourRef. Ontbreekt het, dan kan de administratie van de klant de factuur niet aan een bestelling koppelen.
  • Bestellen op rekening. De betaalconditie komt uit het ERP. Een klant met een kredietlimiet van € 5.000 en € 4.600 open kan een order van € 600 niet op rekening plaatsen. Zie bestellen op rekening.
  • Goedkeuring. Een order die eerst akkoord nodig heeft, claimt pas voorraad na dat akkoord. Exact Online heeft daarvoor een ApprovalStatus op de verkooporder: 0 wacht op goedkeuring, 2 goedgekeurd. Zie reserveren bij goedkeuring.
  • Offerte. Een geaccepteerde offerte wordt een order met de prijzen van de offerte, ook als de prijslijst intussen is gewijzigd. Zie van offerte naar order.
  • Ordernummers per kanaal. Order 10482 uit de webshop en order 10482 van bol zijn twee orders. Een voorvoegsel per kanaal, WEB-10482 en BOL-10482, houdt ze uit elkaar.

De prijs op een zakelijke order komt uit de prijzenstroom. Bestelt de inkoper vanuit zijn eigen inkoopsysteem, dan komt de order binnen via OCI of PunchOut.

Jij houdt de controle

Voordat de koppeling orders schrijft, draait hij droog op orders die er al zijn. Hij leest ze, past alle regels toe en laat zien wat hij zou aanmaken:

Uitkomst van de dry run Aantal
Orders gelezen (laatste 14 dagen) 700
Zou worden aangemaakt 668
Afgekeurd: artikel onbekend in het ERP 17
Afgekeurd: zakelijke order zonder btw-nummer 9
Afgekeurd: debiteur twee keer gevonden 6

De 32 afgekeurde orders laten zien welke regels nog ontbreken voordat er één order in de administratie staat. Daarna kies je per stroom of orders direct doorgaan of op goedkeuring wachten, en welke orders de koppeling overslaat, bijvoorbeeld testorders of orders van een bepaald kanaal.

Na livegang staat bij elke order wat ermee is gebeurd: webshoporder 10482, debiteur 10432 gevonden op btw-nummer, verkooporder 20417 aangemaakt om 00:30:14. Belt een klant over een order die niet is geleverd, dan zie je in welke stap hij is blijven staan. Zie dry run en goedkeuring, monitoring en wat gebeurt er als een koppeling uitvalt.

Wij bouwen de koppeling voor een vaste prijs en hosten, draaien en bewaken hem daarna voor een vast bedrag per maand. Vertel welke webshop en welke administratie je hebt.

Systemen en platformen

Groep Systemen Wat bij orders telt
ERP Exact Online, AFAS, Business Central bij Exact Online bepaalt het pakket of er verkooporders zijn; bij AFAS gaan orders via de UpdateConnector FbSales
Boekhouding SnelStart, Twinfield, Moneybird een order wordt een factuur of een boeking, met een grootboekrekening per kanaal
Magazijn en verzending Picqer, Monta, Sendcloud één code per zending terug naar de webshop
Webshopplatformen WooCommerce, Shopify, Magento de statussen en of er een status voor deelleveringen is

Zoek je alleen de route van webshop naar boekhouding, kijk dan bij WooCommerce koppelen aan je boekhoudpakket. Een order schrijft de voorraad af die de voorraadstroom toont, en verwijst naar het artikel uit de productdatastroom.

Veelgestelde vragen

Wat gebeurt er als een order niet doorkomt?

De order blijft in de wachtrij staan en de koppeling probeert het opnieuw met steeds langere pauzes. Weigert het ERP de order om de inhoud, bijvoorbeeld een artikel dat daar niet bestaat, dan gaat hij naar de foutenlijst met de reden en de oorspronkelijke inhoud. Je krijgt een melding en na herstel wordt dezelfde order opnieuw aangeboden. Er verdwijnt geen order ongemerkt.

Hoe snel staan mijn bestellingen in het ERP?

Met een webhook staat de order binnen seconden in de wachtrij en kort daarna in het ERP. Heeft de webshop geen webhook, dan bepaalt het interval van de ronde de wachttijd: bij een ronde per kwartier wacht een order gemiddeld 7,5 minuut. De limiet van het ERP telt ook mee. Exact Online staat 60 verzoeken per minuut toe, bij 3 verzoeken per order zijn dat 20 orders per minuut.

Kan de koppeling onderscheid maken tussen B2B en B2C?

Ja, op de velden van de order: een bedrijfsnaam, een btw-nummer of een klantgroep. Een zakelijke klant krijgt een eigen debiteur met zijn betaalconditie en zijn referentie op de order. Een particuliere order kan op een verzameldebiteur landen. Ook de grootboekrekening en de btw-code kunnen per soort klant verschillen.

Wat gebeurt er op een piekdag?

De webshop krijgt op elke order direct antwoord, de wachtrij vangt het verschil op. Tien keer zoveel orders, 500 in plaats van 50, zijn bij 3 verzoeken per order 1.500 verzoeken aan het ERP. Die worden verwerkt in het tempo dat het ERP toelaat. Orders gaan in de wachtrij voor op stromen die kunnen wachten, zoals een volledige voorraadronde.

Nemen jullie retouren mee?

Ja. Een terugbetaling in de webshop wordt een creditnota in de administratie, gekoppeld aan de oorspronkelijke order of factuur. Per magazijn staat vast of de voorraad direct terugkomt of pas na controle van het artikel. Een gedeeltelijke retour, 2 van de 5 stuks, wordt per orderregel verwerkt.

Kunnen oude orders met terugwerkende kracht worden doorgezet?

Zolang het kanaal ze nog levert. Shopify geeft een app standaard de orders van de laatste 60 dagen en oudere orders pas met de extra toestemming read_all_orders. Bij bol is een verzonden order nog drie maanden op ordernummer op te vragen. Artikelnummers die sindsdien zijn gewijzigd matchen niet meer en komen op de foutenlijst.

Komt een order als verkooporder of als factuur in Exact Online?

Dat hangt af van het pakket. Verkooporders bestaan in de API alleen bij Handel en Productie. Met Boekhouden wordt een order een verkoopfactuur of een verkoopboeking in een verkoopdagboek. De keuze bepaalt ook of de voorraad in Exact Online meeloopt.

Wat als een klant zijn order wijzigt of annuleert nadat hij is doorgezet?

Zolang de order in het ERP nog open staat, zet de koppeling de wijziging of de annulering door. Is er al geleverd of gefactureerd, dan loopt het via een retour en een creditnota. Een annulering die binnenkomt terwijl de order nog onderweg is naar het ERP is een van de gevallen die voor livegang apart worden getest.

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