
De Belgische groothandel heeft een geldig btw-nummer. VIES is groen. In de cart lijkt de vrijstelling te kloppen. Checkout rekent alsnog 21%. Of omgekeerd: de tax-line is 0%, maar het productbedrag is niet herberekend. Shopify B2B checkout zonder btw faalt zelden op “de app vergeet vrijstelling”. Hij faalt op de combinatie checkout-logica + Market Tax display + dezelfde e-mail als het validatieformulier.
Dit artikel gaat over dat checkout-moment. De storefront-flow (blok op cart, VIES, tax-exempt) staat in Shopify EU btw-vrijstelling B2B. De API-check zelf in Shopify VIES btw-nummer controleren. Hier: wat er gebeurt ná “Checkout”, welke van de twee modi bij jouw prijzen past, en welke Shopify-instelling de totalen stukmaakt.
OO - EU B2B & Wholesale is Built for Shopify (5.0 uit 33 reviews). Listing: Advanced B2B tax management with VAT handling and EU Tax Exemption compliance. Op Standard ($8.95/maand of $101.88/jaar, 5% korting, 7 dagen trial, USD) staat VAT validation & Tax exemption via VIES. Claim niet dat deze app Shopify Plus B2B-catalogi vervangt. Groepsprijzen zitten in het bulkformulier, niet als herschreven catalogusprijs op de gewone productpagina.
De EU Tax Exemption-laag berekent geen tarieven. Step 4 is expliciet: de app leunt volledig op Shopify’s tax- en marketconfiguratie. Native Help over EU-taxes gaat over registraties, OSS en consumententarieven. Intra-communautaire B2B vraagt daarnaast een gevalideerd nummer en een checkout die de btw eraf haalt *als* Shopify de klant als tax-exempt kent.
Zonder die match zie je:
VIES-groen, native checkout met 21%, omdat de checkout-e-mail afwijkt van het validatieformulier;
Draft Order Logic aan, Markets op Dynamic pricing — of Standard Logic met Show as included. De docs noemen beide mismatches de meest voorkomende oorzaak van foute totalen;
prijzen excl. btw plus Draft Order Logic: niet ondersteund. Shopify moet btw dynamisch bij checkout kunnen bij- of afrekenen; een draft finaliseert prijzen eerder.
Geen van die gevallen lost een kortingscode “0% btw” op. Die code vindt retail ook.
Het validatieblok op de cart-pagina is verplicht voor de storefront-flow (Step 1). Checkout volgt daarna de modus in General Settings. Zet je niets in Markets, dan berekent Shopify consumenten-btw alsof er geen vrijstelling is — of hij laat de prijs staan terwijl de tax-line op 0% springt.
Draft Order Logic is bedoeld voor prijzen incl. btw, meerdere Markets of vaste marktprijzen. De koper gaat ná VIES naar een draft-invoice-URL, niet naar de gewone checkout. Combineer je dat met excl. btw, dan is het volgens de docs niet ondersteund. Step 3 zegt het in één regel: verkeerde keuze → btw blijft staan, prijzen herberekenen niet, checkout gedraagt zich onverwacht.
Op Shopify Plus kun je een extra EU VAT Validation-app block in de Checkout Editor zetten (Installation – Checkout Page). Zet Allow app to block checkout aan als validatie verplicht is. Dat is Plus-checkout, geen vervanging van de cart-flow op elk plan. Claim geen Checkout UI Extensions op Basic/Shopify-plannen.
Geen van die routes vervangt: één checkout-modus, Tax display die daarbij past, test met dezelfde e-mail.
In Apps → OO – EU Tax Exemption → General Settings staat Use draft order logic. Uit = Standard Checkout Logic. Aan = Draft Order Logic. Wijziging werkt meteen.
Standard Checkout Logic is verplicht als je prijzen excl. btw toont. Aanbevolen voor één EU-markt en maximale app-compatibiliteit.
Na VIES:
de klant wordt tax-exempt in Shopify;
btw-data gaat in cart attributes en order notes;
Checkout is de standaard Shopify-checkout. De app wijzigt de prijs daar niet. Shopify past tax-regels dynamisch toe en haalt btw weg waar dat van toepassing is.
E-mail bij validatie moet exact de checkout-e-mail zijn. Shopify herkent klanten op e-mail. Wijkt die af, dan is de klant niet exempt en blijft de btw staan — ook als VIES het nummer goedkeurde.
Markets: Settings → Markets → je EU-markt → Taxes and duties → Tax display = Dynamic pricing. Zonder dynamische taxes herberekenen de bedragen niet, ook al staat exemption op het account.
Draft Order Logic ná succesvolle VIES: de app maakt een Shopify Draft Order (prijs zonder btw waar van toepassing) en Checkout stuurt naar de invoice-URL. De standaardcheckout wordt overgeslagen. Bedoeld voor prijzen incl. btw en complexe marktprijzen.
Niet gebruiken als je excl. btw verkoopt: drafts finaliseren prijzen vóór checkout, Shopify herberekent btw dan niet hetzelfde. Kan botsen met bundle- of cart-apps. De checkout-ervaring is bewust anders dan native Shopify.
Markets: Tax display = Show as included, zodat bedragen consistent blijven als de draft ontstaat.
| Checkout-logica | Market Tax display | | --- | --- | | Standard (draft logic uit) | Dynamic pricing | | Draft Order (draft logic aan) | Show as included |
Docs, “most common mistake”: Draft Order + Dynamic pricing, of Standard + Show as included. Test dat expres voordat je live gaat.
Voor B2B-only shops met prijzen excl. btw is de aanbevolen combo: Draft Order Logic uit + Dynamic pricing. Dat is de meest betrouwbare configuratie in Step 4.
Registraties: Settings → Taxes and duties, EU-registraties aan, belastingen aan voor de landen waar je verkoopt. De app dwingt “Include sales tax in product price and shipping” niet af; dat hangt van jouw prijsmodel af.
Heb je Shopify Plus, dan kun je validatie *in* checkout zetten. Checkout Editor → Add app block → EU VAT Validation → Allow app to block checkout als het nummer verplicht is.
Plaatsing (docs):
One-page, fysieke goederen: Delivery-sectie, bij Delivery address.
Three-page, fysieke goederen: Information-pagina, Contact, in Shipping address.
Alleen digitale items (geen shipping-velden): extra blok — one-page onder Remember me bij Payment; three-page onder de Shipping-groep op Information.
Voor B2B: zet het veld buiten de adres-inputgroep, anders botst het met bedrijfsadres, billing vs shipping, of Shopify B2B company profiles. De genoemde placements volgen die regel al.
Zonder Plus blijft de storefront-validatie op cart (en eventueel cart drawer-code). De checkout-logica in General Settings geldt in beide gevallen.
Een NL-shop toont wholesaleprijzen excl. btw. Draft Order Logic staat per ongeluk aan. De Belgische koper valideert, klikt Checkout, landt op een draft-invoice. Het totaal klopt niet: Shopify had de btw dynamisch moeten weglaten, de draft had prijzen al vastgezet.
Fix: Draft Order Logic uit. Markets → EU → Tax display Dynamic pricing. Zelfde e-mail in VIES-formulier en checkout. Product in cart, geldig buitenlands EU-nummer, door naar checkout: btw weg waar van toepassing, tax-lines zoals verwacht. Dat is de verificatie uit Step 4.3 — geen extra app.
Tweede fout: Standard Logic correct, Markets op Show as included. Cart lijkt “incl.”, checkout laat exemption zien zonder herberekend productbedrag. Zet Tax display op Dynamic pricing. Geen tweede VIES-call nodig; de mismatch zat in Markets.
Installeer OO - EU B2B & Wholesale ($8.95/maand of $101.88/jaar, 7 dagen trial).
Cart-blok OO – EU Tax Exemption op de cart-pagina (drawer: Step 2-code als de Theme Editor tekortschiet).
Kies één modus in General Settings. Excl. btw → Standard. Incl. / vaste marktprijzen → Draft Order.
Zet Market Tax display op de bijbehorende waarde. EU-registraties in Taxes and duties.
Test: zelfde e-mail, geldig buitenlands nummer, checkout-totalen controleren.
Plus (optioneel): EU VAT Validation-blok in Checkout Editor, Allow app to block checkout aan als validatie verplicht is.
Shopify B2B checkout zonder btw is geen extra rekenmachine. Het is native checkout of een draft-invoice, plus Markets die bij die keuze passen, plus dezelfde e-mail als VIES. Verkeerde combinatie → 21% blijft, of 0% tax-line met een prijs die niet meebewoog.
Zet de tax-laag live via de OO - EU B2B & Wholesale-listing en test checkout met een buitenlands nummer voordat de eerste groothandel betaalt.
Diensten
Reviews
5/5
Mail: info@onlineorigins.nl
Tel: 073 234 0612
KVK: 89825624
BTW: NL865123639B01
Bruistensingel 500,© 2026 Online Origins