Een B2B-order kan in WooCommerce exact de juiste prijs tonen en toch verkeerd in AFAS landen. Dat gebeurt wanneer klantgroep, prijsbron, btw, payout en boeking als losse velden worden behandeld. Met de proef hieronder wijs je één e-commerce- of finance-eigenaar aan die de hele keten kan goedkeuren, teruglezen en herstellen.
Een AFAS-WooCommerce-bewijsflow is een vaste test waarin een B2B-order met klantgroep, prijsregel, btw, betaling, retour en boeking door beide systemen gaat. Je vergelijkt de bronorder met de werkelijk opgeslagen AFAS-records en bewaart elke beslissing. Een groene synchronisatiemelding telt pas als bewijs wanneer klant-ID, prijs, btw, payout en boeking terugleesbaar kloppen.
Productdetails en prijzen in deze gids zijn gecontroleerd op 30 oktober 2026. Ik gebruik WooCommerce, AFAS SB of AFAS Profit en Mollie als concrete voorbeelden. De principes blijven bruikbaar met een andere B2B-plug-in, betaalprovider of AFAS-connector.
Welke route moet je eigenlijk bewijzen?
De native WooCommerce-koppeling van AFAS SB is een financiële import. Afgeronde WooCommerce-orders worden als verkoopjournaalpost geïmporteerd en kopers kunnen op e-mailadres als klant worden toegevoegd. AFAS noemt tegelijk duidelijke grenzen: één omzetrekening, één transportrekening, geen projecten of verbijzonderingen en geen automatische gedeeltelijke crediteringen. De actuele AFAS-instructie noemt deze voorwaarden en de benodigde REST API-sleutel.
Dat maakt AFAS SB niet onbruikbaar voor B2B. Het betekent wel dat je B2B-prijsbeslissing waarschijnlijk vóór de financiële import in WooCommerce moet vaststaan. De native route bewijst dan de uitkomst van de order, niet de volledige prijslijstlogica. Heb je verkooporders, voorraad, meerdere omzetrekeningen, deelretouren of menselijke vrijgave nodig, test dan een AFAS Profit-connector, een standaardconnector of maatwerk.
Voor AFAS Profit ligt de prijslogica anders. Profit werkt met niveaus: de basisprijslijst, een specifieke prijslijst voor een groep verkooprelaties en een verkoopprijs bij de relatie. Een hoger niveau overschrijft een lager niveau. Een prijs bij een specifieke verkooprelatie overschrijft de andere afspraken. De Profit-documentatie legt deze prijs-hiërarchie en datumafhankelijkheid uit.
De kernbeslissing is dus niet welke koppeling de meeste velden heeft. De kernbeslissing is waar de prijs wordt bepaald, wie de klantgroep beheert en welk systeem na de write de financiële waarheid bezit.
De basisproef met klantmatch, btw, dubbele webhooks, time-outs en creditnota’s blijft nodig. Deze gids voegt daar de prijsbron, klantgroep en vrijgave vóór de financiële write aan toe.
Wat je nodig hebt voor een betrouwbare proef
De e-commerce-eigenaar is dossierhouder en eindverantwoordelijk voor het proefdossier. Finance is de goedkeurder van administratie, btw-code, grootboek en payout-beleid en mag een financiële write blokkeren. De dossierhouder hoeft niet iedere API-call te bouwen, maar beslist samen met finance of klantgroep, prijsregel, btw en AFAS-boeking aantoonbaar kloppen.
Zet dit klaar voordat een leverancier een demo krijgt:
- Een veilige omgeving. Gebruik een testwebshop en een AFAS-acceptatieomgeving. Als die niet bestaan, laat je testorders markeren met een herkenbare prefix en vraag je schriftelijk hoe je ze terugvindt en opruimt.
- Een bronmatrix. WooCommerce bezit de order, orderregels, aantallen, gekozen klantrol, getoonde prijs en retour. De B2B-laag bezit de prijsregel of groepsregel. AFAS bezit de relatie-ID, administratie, grootboek en boekingsstatus. Mollie bezit payment-ID, refund-ID, payout-ID en feegegevens.
- Een prijscontract. Noteer per product de openbare prijs, de groepsprijs, een klantspecifieke afspraak, de geldigheidsdatum en de regel die wint bij conflict. Gebruik voor een AFAS Profit-prijs de technische ID van de prijslijst of relatie, niet alleen de naam Dealer Goud.
- Een vaste testset. Neem een bestaande zakelijke klant, een nieuwe klant, een dubbel e-mailadres, een klantgroepwissel, een verlopen prijs, twee btw-tarieven, korting, verzending, een volledige retour, een deelretour, een payout met fee en een time-out na een write.
- Beperkte rechten. AFAS SB vraagt voor zijn native WooCommerce-route een REST-sleutel met leesrechten. Een connector die ook naar WooCommerce schrijft, zoals de Combidesk-installatiehandleiding beschrijft, vraagt een andere scope. Laat ieder recht uitleggen en trek testrechten na afloop in.
- Een blijvend bewijsrecord. Bewaar bron-snapshot, genormaliseerde payload, prijsregel-ID, payloadhash, zakelijke sleutel, goedkeurder, request, response, AFAS-doel-ID en read-back. Een uitvoerlog van Make of n8n alleen is geen auditdossier.
- Een acceptatiegrens. Een verkeerde relatie, een afwijkende prijs, een verborgen btw-fout, een dubbele financiële write of een ontbrekende read-back is afkeur. Een handmatige uitzondering mag, maar alleen met bedrag, reden, eigenaar en volgende actie.
De B2B-laag kan uit verschillende echte WooCommerce-producten bestaan. De officiële WooCommerce Marketplace toont bijvoorbeeld B2B Pricing voor $99 per jaar, versie 1.0.1, met rollen, vaste prijsoverschrijving, goedkeuring en btw-vrijstelling. Roles & Rules B2B staat op €89 per jaar, versie 2.6.7, en beschrijft een volgorde van algemene, categorie- en productregels. Extend B2B - Price List staat op $29 per jaar, versie 2.2.6, met prijslijsten per rol, locatie of individuele klant. De B2B Pricing-documentatie van WooCommerce laat zien welke rol-, product- en landregels je moet testen. Productnamen en prijzen zijn momentopnames, geen bewijs dat een plug-in jouw AFAS-stroom ondersteunt.
Concrete stappen: van klantgroep naar bewezen boeking
Deze B2B-bewijsflow laat je in negen vaste stappen controleren of klantgroep, prijsregel, btw, betaling, retour, payout en boeking dezelfde order verklaren. Je legt één dossierhouder vast, keurt de financiële write goed, leest AFAS terug en herstelt een time-out met dezelfde business_key, zonder een dubbele boeking te gokken.
Volg deze negen stappen in deze volgorde:
Laat iedere kandidaat dezelfde proef uitvoeren. Verander de testdata niet omdat een connector moeite heeft met een scenario. Anders vergelijk je demo-vaardigheid in plaats van de werkelijke route.
1. Kies het AFAS-doel en leg de eigenaar vast
Schrijf eerst op wat er na WooCommerce moet bestaan. Is dat een AFAS SB-verkoopjournaalpost, een AFAS Profit-verkoopfactuur, een geblokkeerde verkooporder of een combinatie van order en financiële boeking? Kies één doel per proeforder. Een WooCommerce-factuur plus een tweede AFAS-verkoopfactuur kan dezelfde omzet twee keer vastleggen.
De e-commerce-eigenaar blijft dossierhouder en eindverantwoordelijk voor de proef. Die eigenaar controleert order, klantgroep en prijsregel en maakt de eindbeslissing zichtbaar. Finance is de goedkeurder van administratie, btw-code, grootboek en payout-beleid en kan de write blokkeren totdat die punten kloppen.
2. Bevries de prijsbron en de klantgroep
Maak vier prijsgevallen voor hetzelfde artikel:
- Publieke basisprijs: €100,00 exclusief btw voor een bezoeker.
- Groepsprijs: €92,00 voor ingelogde klanten in Dealer Goud.
- Klantspecifieke prijs: €88,00 voor relatie
AFAS-R-0042, geldig vanaf 1 oktober 2026. - Geen geldige prijs: de groepsprijs is verlopen of de klant hoort bij twee groepen.
Leg vast welke regel hoort te winnen. In AFAS Profit hoort een verkoopprijs op de relatie boven een groepsprijslijst te staan. In een WooCommerce-plug-in kan juist productregel boven categorie-regel staan. De naam van de groep is niet genoeg. Bewaar de interne rol-ID, prijslijst-ID, relatie-ID, prioriteit en geldigheidsdatum.
Dezelfde klant moet in een uitgelogde browser €100,00 zien, als Dealer Goud €92,00 zien en als AFAS-R-0042 €88,00 zien. Een prijs die alleen in de productpagina klopt maar bij het afrekenen terugvalt naar €100,00 is een afkeur.
3. Maak een proefdossier met verwachte bedragen
Neem één order die klein genoeg is om met de hand te controleren, maar rijk genoeg om fouten bloot te leggen:
WC-2026-1042bevat twee stuksPOMP-25voor de klant met relatie-IDAFAS-R-0042.- De klantspecifieke prijs is €88,00 exclusief btw per stuk.
FILTER-09kost €20,00 exclusief btw en valt onder 9 procent btw.- Verzendkosten zijn €6,95 met 21 procent btw.
- De prijsbeslissing is
price_rule=relation-2026-10, de klantgroep isDealer-Gouden de klant is ingelogd.
De grondslag bij 21 procent is €182,95: €176,00 voor de POMP-25-regels plus €6,95 verzending. De btw daarop is €38,42 na afronding. De grondslag bij 9 procent is €20,00 met €1,80 btw. Het verwachte totaal is €243,17. Zet precies dit bedrag op het acceptatieblad. Zo kan niemand achteraf een foutieve prijs maskeren met alleen een kloppend eindbedrag.
Bewaar drie versies naast elkaar: de oorspronkelijke WooCommerce-order, de genormaliseerde payload en de AFAS-response. Voeg de Mollie payment-ID toe zodra de betaling geslaagd is.
4. Richt de toegangen in per route
Voor native AFAS SB maak je volgens de actuele handleiding in WooCommerce een API-sleutel via Instellingen, Geavanceerd, REST API, Sleutel toevoegen en kies je lezen. Voor een bredere connector die verkooporders, prijsupdates of statuswijzigingen schrijft, heb je andere rechten nodig. Combidesk beschrijft bijvoorbeeld een WooCommerce API-key met Read/Write en een AFAS AppConnector met minimaal één connector. De actuele installatiehandleiding laat die verschillende verbindingen en rechten zien.
Maak de test niet sneller met één beheerderssleutel die alles mag. Gebruik een leesprofiel voor order- en prijscontrole, een stagingprofiel voor de genormaliseerde data en een aparte vrijgavegebruiker voor de financiële write. Log nooit de geheime sleutel in de order, webhook of foutmelding.
5. Controleer prijs, btw en klantmatch vóór de write
Lees de order via de WooCommerce REST API terug en controleer minimaal:
- klant-ID, e-mailadres, bedrijfsnaam, factuuradres en gekozen groep;
- prijsregel-ID, prijsversie, geldigheidsdatum en toegepaste prioriteit;
- SKU, aantal, prijs exclusief btw, korting en regelbedrag;
- btw-code en btw-bedrag per regel;
- verzendregel, verzend-btw en totaal;
- WooCommerce-orderstatus en betaalstatus.
Test daarna vier klantuitkomsten: een exacte relatie-ID, geen bestaande relatie, twee mogelijke relaties en hetzelfde e-mailadres met een ander factuuradres. Een connector die bij twijfel de eerste AFAS-relatie kiest, maakt van een zoekactie een boekhoudbesluit. Zet de order in de uitzonderingsqueue en vraag een mens om AFAS-R-0042 te bevestigen.
Controleer de prijs nogmaals op de orderregel, niet alleen op de catalogus. Een plug-in kan de prijs op de productpagina tonen, terwijl een korting, belastinginstelling of betaalmethode bij checkout een ander bedrag oplevert.
6. Laat finance de exacte payload vrijgeven
Een herstelbare AFAS-sync met bronhouders, zakelijke sleutels en read-back geeft hiervoor het technische patroon: eerst staging, dan goedkeuring, daarna schrijven en teruglezen.
Maak vóór de write een stagingrecord met business_key, payload_hash, source_snapshot_at, mapping_version, owner en status=pending_approval. De eigenaar controleert de bronorder, klantgroep, relatie-ID, prijsregel, administratie, btw, bedragen en gekozen AFAS-write. Leg de beslissing vast als approved of rejected. Een wijziging in prijs, mapping of payload maakt de goedkeuring ongeldig.
Gebruik voor de verkoopactie bijvoorbeeld:
afas:{administration_id}:woocommerce:WC-2026-1042:sale:v1
Een deelretour krijgt een nieuwe economische sleutel, zoals afas:{administration_id}:woocommerce:WC-2026-1042:refund:1:v1. Een tweede webhook van dezelfde order gebruikt de eerste sleutel. Hij maakt geen nieuw financieel record.
WooCommerce schakelt een webhook standaard uit na vijf mislukte afleverpogingen wanneer de ontvangende URL geen succesvolle status teruggeeft. Bewaar daarom ontvangstlog en boekhoudkundige read-back apart. De officiële webhookdocumentatie beschrijft de retrygrens en de status Disabled.
7. Schrijf één keer en lees de echte AFAS-record terug
Kies bij AFAS Profit tussen het financiële object dat je proces werkelijk nodig heeft. Als WooCommerce de factuur al maakt, past een verkoopjournaalpost beter dan een tweede verkoopfactuur. Als AFAS de factuur moet opbouwen, test je salesinvoice met relatie, administratie, artikelen, adressen en btw. Bij AFAS SB is de native route juist beperkt tot verkoopjournaalposten.
Sla response en doel-ID op. Lees daarna terug:
- AFAS-doel-ID en boekings- of factuurnummer;
AdministrationId,RelationIden relatietype;- artikel, aantal, prijs, korting en verzending per regel;
- btw-code en btw-bedrag per regel;
- netto, btw en bruto;
- orderstatus, boekingsstatus en eventuele openstaande post;
- oorspronkelijke WooCommerce-order-ID en
business_key.
Een HTTP 200 of processed bewijst transport, niet de juiste boeking. Als de read-back RelationId=AFAS-R-0091 oplevert terwijl de goedgekeurde payload AFAS-R-0042 bevat, blijft de write afgekeurd en gaat de vervolgactie uit.
8. Verwerk retour, refund en payout als aparte gebeurtenissen
Een refund is geen wijziging van de oorspronkelijke orderprijs. Bewaar order-ID, orderregel-ID, refund-ID, oorspronkelijke prijs, terug te betalen btw, reden en creditnotanummer. De WooCommerce REST API voor refunds bevat regels, tax lines, verzendregels, het totale bedrag en sinds WooCommerce 11.1 ook serverberekening op basis van aantallen. De actuele refunddocumentatie noemt de velden en de serverberekende terugbetaling.
Test een volledige retour en een deelretour van één POMP-25. De deelcredit is €88,00 exclusief btw plus €18,48 btw, dus €106,48. AFAS SB kan gedeeltelijke creditering volgens de officiële voorwaarden niet automatisch verwerken. Een goede uitkomst is dan een taak met exact bedrag, btw-deel, reden en eigenaar. Een stil overgeslagen deelretour is een afkeur.
Gebruik je Mollie, dan haal je na de webhook de actuele payment- of refundstatus op en bewaar je de payment_id en refund_id. De payout komt later en bevat meer dan orders. Het Settlement Report bevat betalingen, refunds, chargebacks en kosten zoals betaalmethode-, refund- en chargeback-fees. Mollie beschrijft het rapport als de volledige uitsplitsing van één payout. Boek daarom niet het nettobedrag als omzet. Gebruik een tussenrekening en sluit de payout met de losse componenten.
9. Simuleer een time-out na de financiële write
Onderbreek de verbinding nadat AFAS de write heeft ontvangen, maar vóór jouw service de response bewaart. Markeer de kandidaat als unknown, niet als mislukt. Zoek eerst met order-ID, zakelijke sleutel, payloadhash en eventuele AFAS-referentie. Als AFAS het record heeft opgeslagen, schrijf je niet opnieuw maar lees je de bestaande record terug en leg je de AFAS-ID vast. Alleen als je geen record vindt, retry je exact dezelfde payload met dezelfde business_key en idempotency-sleutel.
De Nederlandse overheidsrichtlijn benoemt precies dit risico: POST en PATCH zijn niet vanzelf idempotent, dus een herhaalde write kan een duplicaat maken. De sleutel moet vóór de request duurzaam worden opgeslagen en bij een retry exact hetzelfde blijven. De richtlijn voor veilige retries beschrijft deze volgorde.
Voor een gedeeltelijke Mollie-refund is dezelfde regel extra belangrijk. Mollie waarschuwt dat twee deelrefunds naast elkaar kunnen worden uitgevoerd en ondersteunt daarom een Idempotency-Key; dezelfde sleutel levert binnen één uur de opgeslagen response terug. Bewaar die sleutel ook in je eigen bewijsrecord.
Sluit de proef af met een rapport waarin je per order pass, manual_exception of fail vastlegt én een machineleesbare JSON-export oplevert. Neem daarin per order en gebeurtenis minimaal AFAS.RelationId, price, price_rule, vat_code, vat_amount, payment_id, refund_id, payout_id, booking_number, invoice_number, status, business_key, read_back op. Noteer daarnaast eigenaar en datum; bewaar facturen en creditnota’s in de vorm waarin ze zijn verzonden of ontvangen. De Belastingdienst noemt voor facturen een bewaartermijn van zeven jaar. De fiscale bewaarpagina legt de digitale bewaarplicht uit.
Valkuilen waardoor een B2B-koppeling faalt
De klantgroep staat alleen in de schermweergave
Een gebruiker ziet Dealer Goud, maar de orderpayload bevat geen rol-ID, prijslijst-ID of prijsversie. Leg de toegepaste regel vast op de order en stuur hem mee naar staging. Zonder dat bewijs kan finance achteraf niet verklaren waarom €92,00 of €88,00 is geboekt.
De hoogste korting wint per ongeluk
Een algemene groepskorting kan een klantspecifieke contractprijs overschrijven. Leg een vaste prioriteitsvolgorde en conflictregel vast. Test ook een klant die tegelijk bij twee groepen hoort. De veilige uitkomst bij twijfel is blokkeren, niet de goedkoopste gevonden prijs kiezen.
Prijs en btw worden als één bedrag gemapt
Een totaal kan kloppen terwijl een regel de verkeerde btw-code heeft. Vergelijk per regel prijs exclusief btw, btw-code, btw-bedrag en totaal. Test verzending en korting apart.
AFAS SB wordt als volledig ERP behandeld
De native SB-route importeert afgeronde orders als verkoopjournaalposten. Zij is geen automatische B2B-prijslijst- of voorraadstroom. Zet projecten, meerdere rekeningen en deelretouren expliciet op de afvallijst als de route ze niet ondersteunt.
completed wordt gelijkgesteld aan betaald
Een orderstatus vertelt wat WooCommerce denkt over de order. Een payment-status komt uit de betaalprovider. Een payout zegt dat geld is gebundeld en uitgekeerd. Bewaar deze statussen afzonderlijk.
De payout wordt als omzet geboekt
Een payout bevat betalingen, refunds, chargebacks en kosten. Boek het netto bedrag niet rechtstreeks als omzet. Match eerst de onderdelen op payment-ID, refund-ID en payout-ID.
Een time-out krijgt een nieuwe sleutel
Een nieuwe sleutel kan een tweede AFAS-boeking of tweede refund maken. Zoek eerst de bestaande uitkomst en hergebruik de oorspronkelijke sleutel. Zet de status op unknown zolang de uitkomst niet is vastgesteld.
De handmatige uitzondering is een parkeerplaats
Niet ondersteund is geen proces. Een uitzondering bevat minimaal reden, bedrag, btw, bron-ID, eigenaar, deadline, voorgestelde actie en eindbesluit. Meet hoe lang ze openstaan.
De test draait direct in productie
Een verkeerde prijs of dubbele write is lastig terug te draaien. Gebruik een acceptatieomgeving en een aparte Mollie-testmodus waar de provider dat ondersteunt. Als een leverancier alleen productie kan demonstreren, vraag dan vooraf hoe records worden gemarkeerd en teruggedraaid.
Beslis-kader: kant-en-klaar, orkestratie of maatwerk?
Gebruik vier criteria: waar de prijs wordt beslist, hoeveel systemen bronhouder zijn, hoe duur een verkeerde write is en wie uitzonderingen beheert. Het gemiddelde ordervolume is minder belangrijk dan de zwaarste uitzondering. Een webshop met dertig orders per maand kan meer maatwerk nodig hebben dan een retailshop met duizend eenvoudige orders.
- Kant-en-klaar: kies dit bij één WooCommerce-shop, één AFAS-administratie, een vaste B2B-prijslaag, afgeronde financiële orders en vooral volledige retouren. De leverancier moet alsnog klantgroep, prijsregel, btw, dubbele webhook en read-back bewijzen.
- Orkestratie met eigen opslag: kies n8n of Make wanneer je meerdere API’s koppelt, de regels stabiel zijn en een technische beheerder een queue kan opvolgen. Bewaar bron-snapshots, sleutels en goedkeuring buiten de workflowgeschiedenis. n8n Cloud kost volgens de actuele prijspagina €20 per maand bij jaarlijkse betaling voor 2.500 workflowuitvoeringen en €50 voor 10.000, met onbeperkte stappen. De prijs staat op 30 oktober 2026 zo vermeld door n8n.
- Maatwerk: kies dit bij prijs op relatieniveau, meerdere administraties, verschillende btw-regels, deelretouren, financiële vrijgave, payout-reconciliatie of een verplicht herstelpad na een onbekende write. Dan bouw je een kleine transactielaag met staging, bronversies, unieke sleutels, rollen, uitzonderingen en read-back.
Een standaardconnector is pas goedkoop als de uitzonderingen klein blijven en zichtbaar worden afgehandeld. Een maatwerkoplossing is overkill als je alleen een niet-financiële melding doorstuurt. Zodra een fout een verkeerde klant, btw of omzet kan boeken, is een bewijslaag onderdeel van de koppeling en geen extra luxe.
Waar wordt de B2B-prijs bepaald?
De keuzehulp is de snelle route door hetzelfde kader. Zij vervangt de proef niet. Vooral de combinatie van prijs op relatieniveau, deelretouren en financiële vrijgave duwt de keuze richting een eigen bewijslaag.
Uitgewerkt voorbeeld: een dealerorder met één time-out
Neem een fictieve B2B-webshop voor installatieonderdelen. De winkel verkoopt via WooCommerce, gebruikt Roles & Rules B2B voor de rollen en regels, Mollie voor betalingen en AFAS Profit voor verkooporders en boekhouding. De klant is een ingelogde dealer met relatie-ID AFAS-R-0042 en groep Dealer-Goud. De productprijs staat in AFAS Profit als relatieprijs, terwijl WooCommerce de prijs aan de klant toont.
De order vóór betaling
De dealer bestelt twee POMP-25-artikelen voor €88,00 exclusief btw per stuk, één FILTER-09 van €20,00 exclusief btw en €6,95 verzending. De WooCommerce-order bevat de relatie-ID, groeps-ID, prijsregel relation-2026-10, twee btw-codes en een snapshot van de prijsregels. De controle levert €243,17 op.
De order gaat eerst naar staging met:
business_key=afas:admin-01:woocommerce:WC-2026-1042:sale:v1price_source=afas_relation_priceprice_rule_id=relation-2026-10relation_id=AFAS-R-0042customer_group=Dealer-Goudpayload_hash=sha256:wc-2026-1042-v1status=pending_approval
De e-commerce eigenaar controleert dat de klant werkelijk is ingelogd en dat de prijs op de orderregel €88,00 is. Finance controleert de AFAS-administratie, relatie-ID, btw-code en het gekozen doelobject. De aangewezen eigenaar zet approved=true.
De betaling en write
Mollie retourneert payment-ID tr_demo_1042 met status paid. Dat is voldoende om de operationele verkooporder vrij te geven als het betaalbeleid dat toestaat. De payout wacht nog. De financiële write gebruikt dezelfde zakelijke sleutel en maakt de AFAS-verkooporder aan. Het antwoord bevat AFAS-SO-1042.
Na de write treedt de afgesproken storing op. De response komt niet aan. De integratie zet de write op unknown, zoekt AFAS op WC-2026-1042 en business_key, vindt AFAS-SO-1042 en verstuurt niets opnieuw. De read-back bevestigt relatie AFAS-R-0042, regelprijs €88,00, 21 procent btw op de pomp en 9 procent op het filter. De order is één keer opgeslagen.
De deelretour en payout
De klant stuurt één pomp terug. WooCommerce maakt refund rf_demo_1042_1 aan voor €106,48. De integratie bewaart de oorspronkelijke regelprijs en het btw-deel en zet de refund op pending_credit_note. Na inspectie wordt de refund bij Mollie aangemaakt met Idempotency-Key: refund-WC-2026-1042-line-1. Een tweede poging met dezelfde sleutel maakt geen tweede deelrefund.
Het Mollie Settlement Report bevat later de oorspronkelijke betaling, de refund, de payment fee en het netto payoutbedrag. De integratie boekt de fee op de afgesproken kostenrekening en gebruikt de payout als aflettercontrole. De orderomzet wordt niet vervangen door het netto bedrag.
Als AFAS SB de gekozen route was geweest, zou deze deelretour als handmatige uitzondering eindigen omdat de native koppeling gedeeltelijke creditering niet automatisch verwerkt. De eigenaar krijgt dan een taak met €88,00 grondslag, €18,48 btw, refund-ID, creditnotareden en deadline vóór de btw-aangifte. Dat is een eerlijke beperking. Een groene status zonder creditnota zou dat niet zijn.
De proef is geslaagd omdat elk bedrag twee kanten op kan worden verklaard: van WooCommerce naar AFAS en van payout terug naar order, betaling, refund en boeking.
Vergelijkingstabel: wat koop je werkelijk?
Productdetails en prijzen hieronder zijn gecontroleerd op 30 oktober 2026. Abonnementen, plug-ins en bouwkosten zijn niet hetzelfde soort kosten. Vergelijk daarom steeds met dezelfde prijsregels, retouren, payout en beheerlast.
| Route of product | Actuele prijs of versie | Wat het aantoonbaar doet | Past bij | Breekpunt voor deze proef |
|---|---|---|---|---|
| Native AFAS SB WooCommerce | €59,99 per maand, standaard 5 administraties, 30 dagen proberen | Afgeronde WooCommerce-orders als verkoopjournaalpost en kopers importeren | Eén financiële orderstroom met eenvoudige prijsuitkomst en volledige retouren | Geen automatische deelcredit, één omzetrekening, geen projecten of verbijzondering |
| WooCommerce B2B Pricing | $99 per jaar, versie 1.0.1 | Rollen, vaste prijs, staffel, goedkeuring en btw-vrijstelling | B2B-prijsregels binnen WooCommerce | Geen AFAS-write, payment-, refund- en payout-ID's of boekhoudkundige read-back |
| Roles & Rules B2B | €89 per jaar, versie 2.6.7, getest met WooCommerce 11.1.1 | Rollen, btw-regels en prioriteit algemeen, categorie, product | Eén catalogus met B2B- en B2C-prijzen | Bewijs van AFAS-prijsbron en financiële uitzonderingen ontbreekt |
| Extend B2B - Price List | $29 per jaar, versie 2.2.6 | Prijslijsten per rol, locatie of individuele klant, met CSV-import | Veel prijslijsten in WooCommerce | Geen goedgekeurde AFAS-boeking of payoutreconciliatie |
| Webwinkelfacturen | €80, €130 of €180 per jaar naar jaarvolume, 30 dagen proef | Financiële webshopkoppeling als SaaS met dashboard en onderhoud | Eenvoudige financiële orders, als de B2B-test past | Vraag expliciet naar klantgroep, deelretour en read-back |
| Combidesk | Prijs niet publiek op de geraadpleegde installatiepagina | WooCommerce API Read/Write en AFAS AppConnector met connectoren | Breder connectorpad met leverancier | Een installatiehandleiding bewijst nog geen prijslogica, payout of creditnota |
| n8n Cloud | €20 per maand voor 2.500 of €50 voor 10.000 uitvoeringen bij jaarlijkse betaling | API-orkestratie met onbeperkte stappen | Stabiele regels met een technische beheerder en eigen opslag | Workflowgeschiedenis is geen duurzaam financieel bewijs |
| Maatwerk met staging | Geen eerlijke vaste prijs zonder scope | Eigen bronmatrix, sleutels, goedkeuring, herstel en read-back | Prijs op relatieniveau, deelretour, payout en meerdere administraties | Beheer en eigenaarschap moeten expliciet worden begroot |
Gebruik de tabel om maximaal twee routes over te houden. Laat die dezelfde order, dezelfde deelretour en dezelfde time-out uitvoeren. De goedkoopste maandprijs wint alleen als de route ook na de fout nog kan uitleggen wat er werkelijk is geboekt.
De juiste AFAS-WooCommerce-koppeling is uiteindelijk geen doorgeefluik. Het is een keten waarin een prijs een bron heeft, een klant een unieke relatie is, een refund zijn eigen bewijs draagt en een time-out niet tot gokken leidt. Als je vanuit de AFAS-boeking terug kunt naar de order en vanuit de payout terug naar de boeking, heb je een proces dat je kunt beheersen, niet alleen een verbinding die toevallig groen staat. Het afsluitende rapport levert daarom per order en gebeurtenis een machineleesbare JSON-export met AFAS.RelationId, price, price_rule, vat_code, vat_amount, payment_id, refund_id, payout_id, booking_number, invoice_number, status, business_key, read_back; Een losse payoutkoppeling zonder deze velden is geen bewijsflow.
Veelgestelde vragen
B2B-koppeling goed geregeld
Ik help je de prijsbron, klantgroep en financiële bewijsflow scherp te krijgen en realiseer de koppeling end-to-end, van ontwerp en vrijgave tot retour, payout en read-back.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
