Switzerland VAT number: format and validation

By Remco from Avatcado

Format

CHE followed by 9 digits and an MWST, TVA, or IVA suffix. The local term is Mehrwertsteuernummer (MWST-Nr., German), taxe sur la valeur ajoutee (no TVA, French) or imposta sul valore aggiunto (n. IVA, Italian).

Pattern: /^\d{9}$/

  • Officially written CHE-123.456.789 MWST; the MWST, TVA, and IVA suffixes are language-region variants of the same registration and fully equivalent
  • CHE is the ISO 3166-1 alpha-3 code for Switzerland
  • Every Swiss enterprise has a UID; VAT registration is a separate flag on it, so a valid UID is not automatically a valid VAT number

Example of a registered number: CHE-105.836.495 MWST

Check digit

Switzerland VAT numbers carry a check digit (MOD 11): The 9th digit is a check digit: the weighted sum of digits 1-8 (weights 5,4,3,2,7,6,5,4) mod 11 determines it; a remainder of 1 means no valid check digit exists.

Check a Switzerland VAT number

Checks route through BFS UID Register. Caching is enabled by default. Read the source, original result time and freshness label alongside validity; a cached or stale result does not freshly confirm current registration.

Enter a VAT number to see its registration result, source and freshness

Validate via API

The same validation as an API call, with the example number above:

curl "https://api.avatcado.com/v1/validate?vat_number=CH105836495" \
  -H "Authorization: Bearer avat_live_your_api_key"
import Avatcado from "@avatcado/node";

const avatcado = new Avatcado("avat_live_your_api_key");
const { data, error } = await avatcado.vat.validate({
  vatNumber: "CH105836495",
});

if (data?.data.valid) {
  console.log(`Registered: ${data.data.company?.name}`);
}

Free tier includes 500 validations per month. Get an API key or read the API documentation.

How Avatcado validates Switzerland numbers

  • Primary source: BFS UID Register.
  • Company name and address: yes.
  • When BFS UID Register is down: the most recent cached result, then a refunded 503.

See the full coverage table.

Frequently asked questions

Is a UID the same as a Swiss VAT number?

Every enterprise gets a UID, but it only becomes a VAT number once the business has an active MWST registration, generally required from CHF 100,000 of turnover. Validators must check the VAT flag, not just UID existence.

Are CHE...MWST, CHE...TVA, and CHE...IVA different numbers?

No: MWST is German, TVA French, and IVA Italian for the same tax, and the suffix merely reflects language region. All three suffix forms refer to one registration.

Can I check Swiss numbers in VIES?

No: Switzerland is not in the EU VAT system, so validation goes through the BFS UID register (public search at uid.admin.ch, or its free SOAP API).

How does Avatcado validate Switzerland numbers and what happens when BFS UID Register is down?

Avatcado does not validate Switzerland numbers through VIES: uncached checks use BFS UID Register. Caching is enabled by default without a requester VAT number, so a result may reflect an earlier lookup. Read its source, original result time and freshness label alongside validity. A confirmed answer includes the registered company name and address, and there is no separate national fallback register behind BFS UID Register for Avatcado to consult if it is unavailable. When BFS UID Register cannot answer because of an outage or timeout, an eligible stored result can be served with meta.cached: true and meta.source_status: "unavailable", plus meta.stale: true when it is past the cache window. Requester checks disable stored responses by default; cache=true opts back in. If no eligible stored result can answer, the request returns a refunded 503. Retain the original result time and resolve unavailable checks separately from invalid registrations.

Related guides

VAT rate in Switzerland

The standard VAT rate in Switzerland is 8.1%. Reduced rates: 3.8%, 2.6%. See all Switzerland VAT rates.

Sources