Shopify btw-nummer checkout B2B: klant vult e-mail en nummer in, VIES keurt goed, daarna pas tax-exempt. Zelfde land verbergen, anders blijft 21% staan.
2026-10-10

Shopify btw-nummer in de checkout voor B2B (eerst valideren)

De Belgische groothandel typt het KvK-nummer in de ordernote. Checkout rekent 21%. Staff zet later tax exempt aan, of vergeet het. Shopify btw-nummer checkout B2B hoort daarvóór: het nummer vastleggen op het pad naar checkout, valideren via VIES, en pas dan vrijstelling. Zonder dat veld is “B2B zonder btw” een hoop in een notitie.

De API-check zelf staat in VIES btw-nummer controleren. Wat er ná “Checkout” gebeurt (Standard vs Draft Order, Markets) in checkout zonder btw. Intra-communautaire levering versus binnenland in EU reverse charge. Hier: waar de klant het nummer kwijt kan, welke schakelaar checkout blokkeert tot het groen is, en waarom je het formulier voor je eigen land verbergt.

OO - EU B2B & Wholesale is de listing. Pitch geen andere Online Origins-app.

Native checkout heeft geen VIES-veld

Shopify Help over EU-taxes gaat over registraties, Markets en OSS voor consumenten. Native Shopify kan een klant tax exempt zetten. Dat is een accountvlag. Het is geen invoerveld in checkout en geen call naar VIES.

Gevolg zonder extra flow:

  • een nummer in de notitie, btw blijft in checkout;

  • staff die elk groothandelsaccount met de hand exempt zet;

  • een kortingscode “0% btw” die ook retail vindt.

Geen van die routes bewaart een gevalideerd nummer op de order. Intra-communautaire levering vraagt doorgaans een geldig nummer van de koper, op het moment van kopen — niet drie dagen later in de inbox.

Wat shops nu in de checkout proberen

Een thema-invoerveld “BTW-nummer”

Het landt als line item property of cart note. Checkout rekent gewoon 21%. Er is geen VIES-call.

Het nummer alleen op het registratieformulier

Nuttig voor onboarding. Iemand kan goedgekeurd zijn en alsnog 21% betalen als de cart-check ontbreekt — of exemption krijgen zonder dat VIES ooit is aangeroepen.

Exemption forceren “want het is een groothandel”

Tag `wholesale` ≠ VIES-groen. Binnenlandse nummers zijn vaak juist niet vrijgesteld. Daarom bestaat de schakelaar om het validatieformulier te verbergen voor bezoekers uit hetzelfde land als je shop.

Geen van die routes geeft je: nummer + e-mail vóór checkout, VIES, tax-exempt pas bij succes, nummer op de order voor de boekhouder.

Nummer vastleggen, daarna pas de knop Checkout

OO - EU B2B & Wholesale is Built for Shopify (5.0, 34 reviews). Listing: Advanced B2B tax management with VAT handling and EU Tax Exemption compliance. Live prijzen: Free (1 pricing rule, 1 registratieformulier); Starter $22/maand of $220/jaar (17% korting) — daar zit EU Tax exemption (VIES + logs); Growth $37/maand of $370/jaar. 14 dagen trial op Starter en Growth. Facturatie in USD. Claim niet dat deze app Shopify Plus B2B-catalogi vervangt.

De vrijstelling rekent geen tarieven zelf. Ze leunt op Shopify Taxes. Verkeerde shop-instellingen worden keurig verkeerd vrijgesteld. De app meldt je niet aan bij de Belastingdienst.

Wat de klant invult

In Standard Checkout Logic vult de klant e-mailadres + btw-nummer in. Dat nummer gaat naar de EU VIES API. Bij succes:

  • de klant wordt tax exempt in Shopify;

  • btw-data landt in cart attributes en order notes;

  • native checkout past de tax-regels dynamisch toe (Standard-modus). De app wijzigt de checkoutprijs daar niet.

Harde regel uit dezelfde docs: de 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 tax-exempt en kan de btw blijven staan.

Standard Checkout Logic is verplicht als je prijzen exclusief btw toont. Draft Order Logic is daarvoor niet geschikt: Shopify moet de btw dynamisch in checkout berekenen.

Schakelaars die het veld sturen

De General Settings bepalen of het nummer een vrijblijvend formulier is of een poort:

  • Require VAT validation before checkout — de checkoutknop blijft uit tot validatie slaagt. Alleen EU-klanten; non-EU mag door zonder check.

  • Hide VAT validation form for visitors from same country as your shop — binnenlandse bezoekers zien het veld niet. Binnenlandse nummers horen niet vrijgesteld te zijn.

  • Hide VAT validation form for visitors from non-EU countries — als je alleen EU-vrijstelling ondersteunt.

  • Save validated VAT ID as order note — het nummer op de order voor de boekhouder.

  • Save VIES company address data — bedrijfsnaam en adres als VIES ze teruggeeft (niet elk land deelt dat).

  • Tag op klant en/of order na succes — voor segmenten en rapportage.

Cart attributes standaard: `tax_exempted` en `vat_number`. Alleen wijzigen als een integratie dat eist.

Styling (inline of dropdown in de cart drawer) verandert de validatie niet, alleen of het veld in een volle drawer in de weg zit.

Wat je in Shopify zelf aan moet zetten

Ook mét Standard Checkout Logic: Settings → Markets → het betreffende market → Duties and import taxes → Dynamic taxes aan. Staat dat uit, dan kan exemption “gelden” terwijl prijzen niet herberekend worden. Market-specific vaste prijzen: Shopify kan de tax-line op 0% zetten en het productbedrag laten staan. Dat is een Shopify-limiet, geen ontbrekend btw-veld.

Voorbeeld: NL-shop, BE-groothandel, geen veld voor NL-bezoekers

Je shop staat in Nederland. Retail betaalt 21%. Een Belgische groothandel moet het nummer in de cart valideren vóór Checkout. Starter-plan, EU Tax exemption aan.

Zet aan: Require VAT validation before checkout. Hide form for same country. Hide form for non-EU. Save VAT ID as order note.

Test in deze volgorde:

  1. NL-bezoeker: geen validatieformulier. Checkout met 21%.

  2. BE-nummer, dezelfde e-mail als checkout: VIES groen, tax-exempt, btw van de regel af (als Markets kloppen).

  3. BE-nummer, andere e-mail dan checkout: btw blijft. Dat is de e-mailregel, geen bug.

  4. Geldig NL-nummer als je het hide-same-country even uitzet: validatie kan slagen, vrijstelling hoort niet. Zet de hide-schakelaar daarna weer aan.

Logs van VIES horen bij Starter. Gebruik ze als de boekhouder vraagt waarom order 2201 zonder btw is. Het nummer in de ordernote is hetzelfde bewijs.

Aan de slag

  1. Installeer OO - EU B2B & Wholesale. Built for Shopify, 5.0 (34). EU Tax exemption zit op Starter ($22/maand).

  2. Kies Standard Checkout Logic als je excl. btw verkoopt.

  3. General Settings: require validation, hide same country, hide non-EU, save as order note.

  4. Markets: Dynamic taxes aan. Test de e-mailmatch expres.

  5. Plaats het validatieblok in cart of drawer (dropdown in een cart drawer). Theme app blocks volgens de tax-docs.

  6. Eén testorder BE, één NL-retail. Check tax-regel, ordernote, klantvlag.

Registratieformulieren met goedkeuring blijven een aparte flow (Free: 1 formulier, Starter: onbeperkt). Dat is onboarding, geen checkout-nummer.

Tot slot

Shopify btw-nummer checkout B2B is het veld vóór de knop, niet de notitie erna. E-mail plus nummer, VIES, tax-exempt pas bij succes, formulier uit voor je eigen land. Native Shopify heeft die poort niet.

Zet hem via OO - EU B2B & Wholesale. Daarna staat het nummer op de order, niet in de inbox van de boekhouder.

online origins logo full

Dé Shopify select partner voor ambitieuze e-commerce bedrijven die willen groeien!

linkedin online origins iconinstagram online origins icon

Reviews

5/5

Bekijk op Google

Mail: info@onlineorigins.nl

Tel: 073 234 0612

KVK: 89825624

BTW: NL865123639B01

Bruistensingel 500,
5232 AH 's-Hertogenbosch
Cookies

© 2026 Online Origins