Norway is not an EU member state, so Norwegian VAT numbers are not part of the EU VIES system. They are registered with the Brønnøysund Register Centre (Brønnøysundregistrene) and are formally called MVA numbers (Merverdiavgiftsnummer). If your application accepts VAT numbers from B2B customers across Europe, you need a validation endpoint that handles `NO`-prefixed numbers separately from EU countries.
Norwegian MVA Number Format
A Norwegian VAT number consists of an organisation number (9 digits) followed by the suffix `MVA`. The organisation number can be formatted with spaces (876 865 822) or without. When calling the TaxID API, pass the full number including the MVA suffix using the `NO` prefix.
| Format | Example | Notes |
|---|---|---|
| NO + 9 digits + MVA | NO123456789MVA | Standard format for API calls |
| With spaces | NO 123 456 789 MVA | Spaces stripped automatically |
| Organisation number only | 123456789 | MVA suffix required — append it |
Validating a Norwegian VAT Number
async function validateNorwegianVat(vatNumber: string) {
// Normalise: strip spaces, ensure MVA suffix, uppercase
let normalised = vatNumber.replace(/\s/g, '').toUpperCase();
// Add NO prefix if missing
if (!normalised.startsWith('NO')) normalised = 'NO' + normalised;
// Add MVA suffix if missing (for org numbers entered without it)
if (!normalised.endsWith('MVA')) normalised = normalised + 'MVA';
const res = await fetch(
`https://taxid.dev/api/v1/validate/NO/${normalised}`,
{ headers: { Authorization: `Bearer ${process.env.TAXID_API_KEY}` } }
);
return res.json();
}
// Usage:
const result = await validateNorwegianVat('NO 123 456 789 MVA');
// or:
const result2 = await validateNorwegianVat('123456789'); // MVA added automaticallyimport os, re, requests
def validate_norwegian_vat(vat_number: str) -> dict:
normalised = vat_number.replace(' ', '').upper()
if not normalised.startswith('NO'):
normalised = 'NO' + normalised
if not normalised.endswith('MVA'):
normalised += 'MVA'
resp = requests.get(
f'https://taxid.dev/api/v1/validate/NO/{normalised}',
headers={'Authorization': f'Bearer {os.environ["TAXID_API_KEY"]}'},
timeout=5,
)
resp.raise_for_status()
return resp.json()What the Response Means
`status: 'active'` means the organisation is registered for MVA in the Brønnøysund Register Centre. The `company_name` field returns the legal entity name from the register. For B2B transactions between a Norwegian business and an EU business, the Norwegian entity is treated as a third-country buyer and EU VAT rules for exports apply — Norwegian MVA validation is not the same as EU reverse charge.
Note
For EEA-related transactions: Norway is part of the European Economic Area (EEA) but not the EU. Norwegian businesses do not participate in EU VAT reverse charge. If you sell digital services to Norwegian consumers, you may need to register for Norwegian VAT under the VOEC scheme (Value Added Tax on Electronic Commerce) for sales over NOK 50,000/year.
Related guides
Start validating EU VAT numbers
Free plan — 100 validations/month. No credit card required.