VAT ID validation (VIES)
B2B+ Base validates a company's VAT ID against the EU Commission's VIES service (VAT Information Exchange System) and stores the result on the company.
What is checked — and what is not
Important: VAT ID, not the domestic tax number
VIES validates only the VAT identification number (USt-IdNr., format DE + 9 digits), not the domestic tax number (Steuernummer). Companies without a VAT ID — small businesses under § 19 UStG, for example — cannot be checked by VIES and stay in the Not checked state.
How it works
The check runs automatically whenever a company's VAT ID is set or changed — at registration, in the storefront company account, or via the admin API.
- The VIES call runs in the background (message queue) and never blocks registration.
- At registration, the customer's VAT ID is carried onto the new company and checked.
- The result is stored on the company and shown as a badge.
Status values
| Status | Meaning |
|---|---|
| Not checked | No VAT ID set, or not checked yet. |
| Valid | VIES confirms the VAT ID. |
| Invalid | VIES does not recognise the number (or the format is wrong). |
| VIES unavailable | VIES could not answer (service or member state down, timeout, rate limit). |
"Unavailable" is not "Invalid"
VIES is regularly unavailable per member state for short periods. This state is deliberately separate from Invalid: the company is not wrongly flagged as invalid, and the check can be retried later.
German VAT IDs: valid/invalid only
For German VAT IDs, VIES returns only validity (valid/invalid) — no name and no address. Germany does not share that data through VIES for data-protection reasons. For companies from other EU countries (AT, NL, IT, …), name and address are stored and shown in the admin when the member state shares them.
Tax treatment
- A domestic customer in a domestic shop always pays local VAT — even with a valid VAT ID. The intra-EU exemption applies only cross-border.
- For cross-border EU B2B, a valid VAT ID is a precondition for reverse charge.
The exemption itself is driven by Shopware: under Settings → Countries, enable tax-free for companies on the relevant countries (typically foreign EU countries, not your own — so domestic B2B stays taxable and cross-border goes net). Company customers with a VAT ID are then treated net there.
Net prices only for validated companies (reverse charge)
By default Shopware grants the B2B exemption as soon as the customer has any VAT ID — without checking whether it is real. The option Net prices only for VIES-validated companies closes that gap:
- Off (default): Shopware's behaviour is unchanged.
- On: the exemption is granted only when the customer's VAT ID belongs to a company with VIES status valid. For
invalidorunavailable, VAT is charged.
INFO
The option can only make the exemption stricter, never grant it additionally. It requires Shopware's "tax-free for companies" (above) to be enabled — it does not replace it.
Legally solid proof: BZSt
VIES is the simple confirmation request. For solid proof under § 6a UStG, German businesses use the qualified confirmation from the Federal Central Tax Office (BZSt), which documents the check with name and address.
Display and re-check
- Admin (Customers → Companies → Company): the status appears as a badge in the company data, with the check date and — where available — the name VIES reported. The Re-check button runs the check immediately (synchronously).
- Storefront (Account → Company account → Company): the status appears as a badge next to the VAT ID.
Configuration
The check is on by default and can be turned off per sales channel under Settings → Extensions → B2B+ Base → VAT ID validation. When disabled, changing a VAT ID triggers no VIES call.