Shopify VIES btw-nummer controleren via de EU-API, met dezelfde checkout-e-mail. Pas daarna tax-exempt — anders blijft de btw staan.
2026-09-24

Shopify VIES btw-nummer controleren vóór je tax exemption toestaat

Een Duits KvK-nummer in de ordernote is geen vrijstelling. Checkout rekent 21% totdat iemand in Admin het vinkje tax exempt zet — of tot de accountant het later terugdraait. Shopify VIES btw-nummer controleren hoort daarvóór: het nummer tegen het EU-register, dezelfde e-mail als checkout, en pas dan exemption. Zonder die check is “B2B zonder btw” een hoop, geen bewijs.

Dit artikel zoomt in op de VIES-stap zelf: wat de API teruggeeft, waarom de e-mail exact moet matchen, en welke General Settings van OO - EU B2B & Wholesale de check afdwingen vóór checkout. De bredere checkout-logica (Standard vs Draft Order, Markets) staat in Shopify EU btw-vrijstelling B2B. Hier gaat het om valideren, niet om de hele tax-setup over te doen.

VIES is een EU-register, geen Shopify-vlag

VIES (VAT Information Exchange System) is het systeem van de Europese Commissie waarmee je een btw-identificatienummer van een EU-onderneming live toetst. 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 VIES-call.

Gevolg zonder extra flow:

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

  • staff die elk groothandelsaccount met de hand exempt zet (en het vinkje vergeet bij een privé-bestelling);

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

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

Wat shops nu proberen

1. Het publieke VIES-formulier, daarna handmatig exempt

Iemand plakt het nummer op de Commissie-site, ziet “valid”, vinkt het account. Geen koppeling met de checkout-e-mail. Morgen bestelt dezelfde mail met een ander nummer. De vlag blijft staan.

2. Btw-nummer als extra veld op het registratieformulier

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

3. Exemption forceren “want het is een groothandel”

Tag `wholesale` ≠ VIES-groen. Binnenlandse nummers zijn vaak juist niet vrijgesteld. De docs laten het validatieformulier daarom verbergen voor bezoekers uit hetzelfde land als je shop.

Geen van die routes geeft je: VIES-call, tax-exempt pas bij succes, en het nummer op de order voor de boekhouder.

Hoe OO het nummer via VIES toetst

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 expliciet 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 vrijstelling rekent geen tarieven zelf. Ze leunt op Shopify Taxes and duties. 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. Test dat expres: geldig BE-nummer, andere mail dan het account — checkout moet 21% houden.

Prijzen excl. btw? Alleen Standard Checkout Logic. Draft Order Logic is daar niet ondersteund. Dat staat in het vrijstellingsartikel; herhaal het hier alleen als randvoorwaarde.

General Settings die de check afdwingen

General Settings sturen validatie, exemption en orderdata. Wijzig ze bewust.

Require VAT validation before checkout. Aan: EU-klanten moeten valideren vóór checkout; de checkout-knop blijft uit tot succes. Non-EU mag door zonder check. Dat is de setting die “eerst VIES, dan betalen” operationeel maakt — niet een beleidszin op de FAQ-pagina.

Save validated VAT ID as order note. Het gevalideerde nummer op de order, voor administratie, handmatige review of ERP.

Save VIES company address data to order additional data. Bedrijfsnaam, adres, postcode, plaats *als VIES ze teruggeeft*. De docs: VIES levert niet altijd volledige bedrijfsdata; sommige landen delen die niet publiek. Claim dus geen “altijd het KvK-adres op de order”.

Hide VAT validation form for visitors from same country as your shop. Binnenlandse nummers horen meestal niet vrijgesteld. Verberg het formulier voor bezoekers uit jouw shopland, zodat lokale klanten niet denken dat NL-naar-NL 0% is.

Hide VAT validation form for visitors from non-EU countries. Als je alleen EU-vrijstelling ondersteunt. Houdt de cart rustig voor US/UK-traffic.

Add tag to customer after VAT validation / Add tag to order after VAT validation. Na succes een tag op klant (nieuw én bestaand) en/of op de order. Gebruik: B2B herkennen, betaalmethoden sturen, VAT-exempt orders filteren. Het is een gevolg van VIES-groen, geen vervanging van de API-call.

Cart attributes standaard: `tax_exempted` en `vat_number`. Alleen hernoemen als een integratie dat eist; verkeerde namen breken automatiseringen.

Optioneel: tax-exemption-notice op productniveau (custom attribute op cartregels) voor interne review. Draft Order Logic alleen bij prijzen incl. btw.

Voorbeeld: Belgische groothandel, Nederlandse shop, excl. 21%

De klant is al goedgekeurd en getagd — dat was het login-artikel. Prijzen excl. btw, één EU-markt, Standard Checkout Logic, Market Tax display = Dynamic pricing.

Op `/cart` staat het EU Tax Exemption-blok. Require validation staat aan. De koper vult het zelfde e-mailadres in als het account plus BE-nummer. VIES groen → tax exempt → native checkout zonder 21%. Het nummer staat in de ordernote. Optioneel: VIES-adres op extra data, tag `vies-ok` op klant en order.

Zelfde flow, typefout in de mail: knop blijft uit of checkout rekent btw. Dat is gewenst gedrag, geen bug.

Binnenlandse NL-klant: formulier verborgen. Geen schijnvrijstelling op binnenlandse levering.

Wat je nodig hebt om te starten

  1. Installeer OO - EU B2B & Wholesale ($8.95/maand of $101.88/jaar, 7 dagen trial).

  2. Zet het EU Tax Exemption-blok op de cart (drawer: themacode uit de tax-docs).

  3. Kies Standard of Draft Order — excl. btw dwingt Standard. Markets gelijkzetten.

  4. Zet Require VAT validation before checkout aan als EU-klanten niet zonder check mogen afrekenen.

  5. Zet save-VAT-ID en optioneel VIES-adres + tags aan voor de boekhouder.

  6. Test drie paden: geldig buitenlands nummer + matching e-mail; geldig nummer + andere e-mail; binnenlandse bezoeker (formulier weg).

Tot slot

Shopify VIES btw-nummer controleren is de poort, geen vinkje in Admin. E-mail matchen, API-call, pas daarna tax-exempt, nummer op de order. Native Shopify bewaart de vlag; VIES en het cart-blok zitten in OO - EU B2B & Wholesale. Zet require-validation aan, verberg het formulier waar vrijstelling niet hoort, en laat de volgende groothandel het nummer bewijzen vóór betalen.

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