Swiss and Norwegian VAT numbers: where to check them, since VIES cannot

Switzerland and Norway are not in the EU VAT area, so their VAT numbers are not in VIES and Veriport’s free check answers country_unknown for them. Both countries publish a free register you can query: the Swiss UID register of the Federal Statistical Office (the UID CHE-123.456.789 with the suffix MWST, TVA or IVA is the VAT number, and the register says whether it is active for VAT) and Norway’s Enhetsregisteret at Brønnøysund (the nine-digit organisation number followed by MVA, with a flag saying whether the entity is in the VAT register). This page gives the format, the check digit and the register’s answer for each.

Switzerland: the UID as VAT number

Every Swiss enterprise has a UID (Unternehmens-Identifikationsnummer); the VAT number is that UID with the suffix MWST / TVA / IVA, and a number is a valid VAT number only while the enterprise is registered and active for VAT. The public service answers ValidateVatNumber (true or false) and GetByUID (the record: name, legal address, legal form code, VAT status 1 unknown / 2 registered / 3 not registered, entry status 1 active / 2 deleted). A bad check digit comes back as a SOAP fault Data_validation_failed, so check it locally first. Branch sites and VAT-group members may carry a different uidVat from their own UID.

SOAP 1.1 — ValidateVatNumber on the public UID service (https://www.uid-wse.admin.ch/V5.0/PublicServices.svc)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:uid="http://www.uid.admin.ch/xmlns/uid-wse">
  <soapenv:Body>
    <uid:ValidateVatNumber>
      <uid:vatNumber>CHE-116.281.710 MWST</uid:vatNumber>
    </uid:ValidateVatNumber>
  </soapenv:Body>
</soapenv:Envelope>
<!-- SOAPAction: http://www.uid.admin.ch/xmlns/uid-wse/IPublicServices/ValidateVatNumber → <ValidateVatNumberResult>true</ValidateVatNumberResult> -->

Norway: the organisation number with MVA

The VAT number is the organisation number; « MVA » after it means the seller is registered for VAT (bookkeeping regulation § 5-1-2). The register does not check the modulo-11 digit for you (123456789 answers 404, not 400), so check it locally. The VAT register itself belongs to the tax administration (Skatteetaten); Brønnøysund mirrors the flag, with a lag that is not published.

curl — Enhetsregisteret v2 (no key)
curl "https://data.brreg.no/enhetsregisteret/api/enheter/923609016" \
  -H "Accept: application/vnd.brreg.enhetsregisteret.enhet.v2+json"
200 OK — the fields that matter for a VAT check (excerpt)
{
  "organisasjonsnummer": "923609016",
  "navn": "EXAMPLE AS",
  "organisasjonsform": {
    "kode": "AS",
    "beskrivelse": "Aksjeselskap"
  },
  "registrertIMvaregisteret": true,
  "registreringsdatoMerverdiavgiftsregisteret": "2019-05-02",
  "konkurs": false,
  "underAvvikling": false,
  "underTvangsavviklingEllerTvangsopplosning": false,
  "forretningsadresse": {
    "adresse": [
      "Eksempelveien 1"
    ],
    "postnummer": "0150",
    "poststed": "OSLO",
    "landkode": "NO"
  }
}

What the answers mean

CountryAnswerMeaning
CHValidateVatNumber trueRegistered and active for VAT today; GetByUID for the name and address (may be empty for a non-public entry).
CHValidateVatNumber falseNot registered for VAT, or deleted; a UID can exist without VAT registration.
CHFault Data_validation_failed / Request_limit_exceededBad check digit / more than 20 requests a minute (temporary block).
NO200 Enhet, registrertIMvaregisteret: trueIn the VAT register; konkurs and underAvvikling are separate flags that do not change VAT validity.
NO200 Enhet, flag false; 200 SlettetEnhet; 404Exists but not VAT-registered; deleted (with slettedato); unknown.
NO410 GoneRemoved for legal reasons: delete any cached copy and never serve it.

What Veriport does today, and next

Today the free check and GET /vat/validate answer country_unknown for CH and NO with a pointer to this page; nothing is counted. On the roadmap: both registers behind the same answer shape as VIES (valid, name, address, provenance, dated cache), with the local check digit first and the Swiss 20-a-minute limit paced across every caller. Neither register issues a consultation number: the evidence is the stored answer with its date.

Questions

Is a Swiss UID always a VAT number?
No. Every enterprise has a UID; only those registered for VAT may use it with the MWST / TVA / IVA suffix, and only while the registration is active. ValidateVatNumber is the question to ask; ValidateUID answers true for a deleted enterprise too.
Does « MVA » after a Norwegian number prove VAT registration?
It is what a registered seller must print; the proof is the register’s flag registrertIMvaregisteret on the day you check. A seller may print MVA wrongly, and a registration may end.
Can I check these numbers in bulk for free?
Norway: yes, no key and an open licence (NLOD), paced reasonably. Switzerland: 20 requests a minute on the public service; above that the service blocks the caller temporarily.

For the 27 member states and Northern Ireland, on VIES, with a dated answer.

Free VAT number check (EU and XI)

Sources