Sell from Germany to a VAT-registered business in France, and you generally should not charge German VAT. The customer accounts for the VAT themselves in France. This is the intra-EU B2B mechanism — commonly bundled under the label reverse charge — and it is one of the most frequently botched areas of e-commerce VAT.
Botched in both directions, too: merchants who wrongly charge VAT to valid business customers lose B2B sales to competitors who invoice correctly, and merchants who wrongly zero-rate a sale without a validated VAT number can be held liable for the uncharged VAT years later. Here is how the mechanism actually works and how to run it safely on Shopify.
The mechanism, precisely
Two legal routes lead to the same practical outcome — an invoice without your domestic VAT, where the business customer self-accounts for VAT in their own country:
Services: Article 196
For B2B services, the place of supply is where the customer is established (Article 44 of Directive 2006/112/EC), and Article 196 makes the customer the person liable to pay the VAT. You invoice without VAT; your customer declares the VAT in their own return (and usually deducts it in the same return — a cash non-event for them). This covers digital products, SaaS, and services sold cross-border to EU businesses.
Goods: Article 138 (intra-Community supply)
For physical goods shipped from one member state to a business in another, the supply is exempt as an intra-Community supply under Article 138; the customer performs a taxed intra-Community acquisition on their side. Merchants often call this "reverse charge" too. Since the 2020 "quick fixes", two things are substantive conditions for this exemption, not formalities:
- the customer's valid VAT ID, issued by another member state and communicated to you, and
- your correct recapitulative statement (EC Sales List) reporting the supply.
You also need evidence that the goods actually left your country — for a Shopify merchant, carrier tracking and shipping documentation.
Get the conditions wrong and the exemption falls away: the sale is treated as domestic, and the VAT you never charged comes out of your margin, plus interest.
VIES validation — and why storing proof matters
VIES (VAT Information Exchange System) is the European Commission's service for checking that a VAT number is valid for intra-EU transactions. Validating through VIES is the standard of care; a number that merely looks right (correct country prefix, right number of digits) proves nothing — numbers get deactivated, mistyped, and occasionally supplied fraudulently.
Three operational rules:
- Validate at the time of the transaction, not once at customer onboarding. A number valid in January can be invalid in June.
- Store the proof. VIES can return a consultation number — a unique identifier of your specific validation request, with a timestamp. Save it (or a full record of the response) with the order. In an audit years later, "we checked it at the time, here is the evidence" is a defence; "we probably checked it" is not. Acting in good faith on a positive VIES result is what protects you if the number later turns out to have been misused.
- Have a fallback for downtime. VIES aggregates national databases and individual member states' systems do go offline. A sensible flow queues the validation and retries, rather than silently skipping the check or blocking the checkout.
One more check that software often forgets: confirm the name and address returned by VIES plausibly match your customer. A valid VAT number belonging to a different company is a red flag, not a green light.
The invoice itself
A reverse-charge or intra-Community invoice must contain everything a normal VAT invoice does, plus:
- your customer's VAT ID (mandatory — this is the field Shopify's native checkout doesn't even collect on most plans),
- no VAT charged — the VAT amount is zero or omitted, with the taxable amount clearly shown,
- the required mention of why no VAT appears.
The correct wording, per language
For services under Article 196, the directive prescribes the mention "Reverse charge" (Article 226(11a)). Each language version of the directive fixes the official term, so use the customer's language or English:
| Language | Wording |
|---|---|
| English | Reverse charge |
| German | Steuerschuldnerschaft des Leistungsempfängers |
| French | Autoliquidation |
| Spanish | Inversión del sujeto pasivo |
| Italian | Inversione contabile |
| Dutch | Btw verlegd |
Adding the legal reference is good practice and widely expected: "Reverse charge — Art. 196 Directive 2006/112/EC. VAT to be accounted for by the recipient."
For goods, reference the exemption instead: "Exempt intra-Community supply — Art. 138 Directive 2006/112/EC" (in German practice: "Steuerfreie innergemeinschaftliche Lieferung"). Citing Article 196 on a goods invoice is a common mix-up — harmless-looking, but it tells an auditor your process doesn't distinguish the two mechanisms.
Common mistakes (a field guide)
- No VAT ID capture at checkout. Shopify does not natively collect or validate VAT numbers on non-Plus plans, so merchants improvise with order notes and manual refunds of the VAT afterwards. Refunding VAT after charging it creates messy paper trails; the clean solution captures and validates the ID before the invoice is issued.
- Format-only validation. Checking that a number matches the country's pattern, without a VIES lookup. Worthless in an audit.
- No stored evidence. Validating but keeping no record. The burden of proof sits with you, the supplier.
- Reverse-charging domestic customers. A German store selling to a German GmbH charges normal German VAT. Reverse charge (in this cross-border sense) applies only when the customer is in another member state.
- Reverse-charging consumers. A VAT ID belongs to a business. B2C sales follow the distance-selling rules (destination VAT, OSS) — never reverse charge.
- Forgetting the recapitulative statement. Every intra-Community B2B supply must appear in your EC Sales List with the customer's VAT number. Since 2020, missing this can invalidate the goods exemption itself.
- Ignoring the UK. Great Britain is no longer in the EU VAT system; VIES does not validate GB numbers (Northern Ireland "XI" numbers, for goods, are the exception). B2B exports to GB follow export rules, not Article 138/196.
Doing it right, sustainably
The pattern that survives audits looks like this: capture the VAT ID at or before checkout, validate against VIES in real time, store the consultation proof with the order, issue the invoice with zero VAT and the exact prescribed wording in the right language, report the supply in your EC Sales List, and keep shipping evidence for goods. Every step is simple; doing all of them consistently, on every order, at 2 a.m. while you sleep — that is a software problem, not a willpower problem.
Facturely generates audit-proof invoices for Shopify stores automatically — gapless numbering, VIES-validated reverse charge with stored proof, correct per-language wording, and e-invoice-ready PDFs.
This article is general information, not tax advice. For your specific situation, consult a qualified tax advisor.