Guide

B2B Invoices on Shopify: VAT ID Capture, VIES, and Reverse Charge

Updated 2026-06-13

Selling to businesses on Shopify is not the same as selling to consumers. A business buyer needs a proper invoice, often expects to pay no VAT, and runs the document straight into their own accounting system. Get the VAT treatment wrong and you either overcharge a customer who then asks for a corrected invoice, or you fail to charge VAT you were legally required to collect. Either way you are re-issuing documents and explaining yourself.

This guide covers the practical mechanics of B2B invoices on Shopify: capturing the buyer’s VAT ID (and, for German public-sector buyers, the Leitweg-ID) at checkout, validating that VAT ID against the EU’s VIES service, deciding when reverse charge applies versus an intra-EU supply of goods, and what each invoice has to actually say. Faktwise is software, not tax advice, so treat the thresholds and wordings below as a working map and confirm edge cases with your accountant.

Why the buyer’s VAT ID is the linchpin

Almost every cross-border B2B VAT outcome hinges on one piece of data: a valid VAT identification number for the buyer, issued by an EU member state other than yours. Without it, you generally cannot apply the zero-rate reliefs that business buyers expect, and you fall back to charging your own domestic VAT.

The problem is that Shopify’s standard checkout does not ask for a VAT ID. Merchants improvise: a free-text note field, an email exchange after the order, a custom line item. All of these are error-prone, and none of them validates the number. A buyer who mistypes their VAT ID, or gives you one that is not actually registered, can leave you holding a zero-rated invoice that does not stand up to an audit. If the relief is later denied, the VAT becomes your liability.

So the first building block of clean B2B invoicing on Shopify is a checkout field that captures the VAT ID and checks it before the order is treated as a tax-exempt B2B sale.

Validating the VAT ID against VIES

VIES (the VAT Information Exchange System) is the European Commission’s service for confirming that a VAT number is valid and currently registered. It is the standard way to evidence that your buyer is a genuine taxable person in another member state.

A few practical points matter here:

VIES tells you the number is valid. It does not decide your VAT treatment for you. That depends on what you are selling and where it goes.

Reverse charge or intra-EU supply of goods?

Two different zero-rate mechanisms get casually lumped together as “no VAT for businesses”. They are not the same, they cite different law, and they carry different invoice wording. Choosing correctly is the heart of a correct B2B invoice.

Intra-EU B2B supply of goods (category K)

You ship physical goods from your country to a VAT-registered business in another EU member state. Under Article 138 of the EU VAT Directive (in Germany, § 4 Nr. 1b in conjunction with § 6a UStG), this is a VAT-exempt intra-Community supply: you invoice at 0%, and the buyer accounts for acquisition VAT at home.

The conditions are strict. You need a valid foreign VAT ID, both VAT IDs must appear on the invoice, you have to file the EC Sales List (Zusammenfassende Meldung), and you must keep transport evidence proving the goods actually crossed the border. Miss any of these and the exemption can be denied.

Reverse charge on services (category AE)

You supply a service to a business in another EU country, and the place-of-supply rules put the transaction in the customer’s country. Under Article 196 of the Directive, the buyer accounts for the VAT. You invoice at 0% and shift the obligation to them. Both VAT IDs are required on the invoice.

The minimum legal wording is simply the words “Reverse charge” (Article 226(11a)). A fuller, clearer phrasing is “Reverse charge, VAT to be accounted for by the recipient, Article 196 Directive 2006/112/EC” (in German, “Steuerschuldnerschaft des Leistungsempfängers”).

The distinction in one line: goods crossing an EU border to a business buyer use the intra-Community supply rules; cross-border services to a business buyer use reverse charge. Most Shopify stores ship goods, so the intra-EU supply path is the common one, but if you sell digital services or B2B services alongside products, you will meet both. For a deeper walkthrough of the services case, see the reverse charge for intra-EU sales on Shopify guide.

Where reverse charge does not apply

If your buyer has no valid EU VAT ID, or is a consumer, you do not zero-rate. For B2C distance sales across the EU you charge destination-country VAT once you pass the EU-wide €10,000 threshold, reported through the One-Stop-Shop (OSS). That is a different track from B2B reverse charge, and conflating the two is a common source of wrong invoices.

The Leitweg-ID: a German public-sector special case

If your business buyer is a German public authority (B2G), there is an extra identifier. The Leitweg-ID is a routing number the public buyer assigns so the invoice reaches the correct internal office. It is mandatory for German B2G invoices, carried in the buyer reference field (BT-10), and public invoice portals reject submissions without it.

Like the VAT ID, the Leitweg-ID is far easier to collect at checkout than to chase down by email afterwards. If you sell to municipalities, universities, or other public bodies in Germany, a checkout field for it saves a round of rejected invoices.

What a compliant B2B invoice must contain

Whatever the VAT treatment, a B2B invoice still has to satisfy ordinary invoice-content rules. In Germany these come from § 14(4) UStG and require:

For a zero-rated B2B sale, the rate and amount are replaced by the exemption reference: the intra-Community supply wording for goods, or the reverse-charge wording for services. A correct number on the wrong document still fails. Note also that for the small-business scheme (Kleinunternehmer, § 19 UStG) no VAT rate or amount may appear at all, or you create a § 14c liability for tax you wrongly stated.

If you also issue German e-invoices, the same data has to land in the structured XML, not just the visible PDF. The Shopify e-invoicing in Germany guide covers the XRechnung and ZUGFeRD/Factur-X formats and the 2027/2028 issuing deadlines in detail.

A short checklist for B2B on Shopify

  1. Capture the VAT ID at checkout, not by email afterwards, and capture the Leitweg-ID too if you sell B2G in Germany.
  2. Validate the VAT ID against VIES at capture, store the consultation number, and re-check periodically.
  3. Pick the right scheme: intra-EU supply of goods (Art. 138) for goods crossing a border, reverse charge (Art. 196) for cross-border services, domestic VAT when there is no valid foreign VAT ID, OSS for B2C distance sales over €10,000.
  4. Put both VAT IDs and the correct exemption wording on the invoice, and make sure the invoice still carries every § 14(4) field.
  5. Validate the output. Faktwise checks generated e-invoices against the official KoSIT validator so files are not rejected by the recipient.

You can sanity-check a finished e-invoice file yourself with the free Rechnung validator.

FAQ

Does Shopify validate a customer’s VAT ID?

No. Standard Shopify checkout does not collect a VAT ID, and nothing in the base product checks one against VIES. You need an app or a custom checkout field that captures and validates the number before treating the order as a zero-rated B2B sale.

What is the difference between reverse charge and an intra-Community supply?

Both result in a 0% invoice to an EU business buyer, but they cite different law. Intra-Community supply of goods (Article 138) applies when physical goods cross an EU border. Reverse charge (Article 196) applies to cross-border services where the buyer accounts for the VAT. The wording on the invoice differs accordingly.

Do I need both VAT IDs on the invoice?

Yes. For both intra-Community supplies of goods and reverse-charge services, the invoice must show the supplier’s VAT ID and the buyer’s valid foreign VAT ID, along with the relevant exemption wording.

What if the buyer has no valid VAT ID?

Then you cannot apply the B2B zero-rate. You charge your domestic VAT, or for B2C distance sales over the EU-wide €10,000 threshold you charge destination-country VAT and report it through OSS.

What is a Leitweg-ID and when do I need it?

It is a routing identifier required on invoices to German public-sector buyers (B2G), carried in field BT-10. You only need it for public-authority customers in Germany, and you should collect it from the buyer before invoicing.


If collecting and validating this data by hand sounds like a lot of moving parts, that is the point of using an app. Faktwise is a Shopify app that captures the buyer’s VAT ID and Leitweg-ID at checkout, validates VAT IDs against VIES, and applies the correct scheme (domestic, intra-EU goods, reverse-charge services, OSS, or small business) with the right exemption wording on each invoice. Invoices are generated automatically when a Shopify order is paid, validated against the official KoSIT validator, and archived. It is EU-hosted in Paris, free for up to 5 invoices a month, then a flat €19/month. See pricing for details.