Home / VAT API / Norway

Norway MVA-nummer Validation API

Validate Norway MVA-nummer numbers via REST API. Backed by Brønnøysund Register (real-time) — returns registration status, company name, and address in a single call.

GET /api/v1/validate/NO/{vat_number} VIES-backed Sub-100ms cached Free plan available

Quick start

CURL

curl -H "Authorization: Bearer YOUR_API_KEY" \
  http://localhost:3000/api/v1/validate/NO/NO123456789MVA

Single validation

Validate one Norway MVA-nummer number. Returns full company details for valid numbers.

const res = await fetch(
  'http://localhost:3000/api/v1/validate/NO/NO123456789MVA',
  { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const data = await res.json();
/*
{
  "valid": true,
  "status": "active",
  "company_name": "Example GmbH",
  "address": "Musterstraße 1, Norway",
  "country_code": "NO",
  "vat_number": "NO123456789MVA",
  "cached": false,
  "request_id": "req_01abc..."
}
*/

Response format

200 OK — valid number
{
  "valid": true,
  "status": "active",
  "company_name": "Example Norway Ltd",
  "address": "Musterstraße 1, Norway",
  "country_code": "NO",
  "vat_number": "NO123456789MVA",
  "cached": false,
  "request_id": "req_01abc..."
}
FieldTypeDescription
validbooleantrue if the number is registered and active
statusstring"active", "inactive", "not_found", or "invalid_format"
company_namestring | nullRegistered company name (where available from authority)
addressstring | nullRegistered address (where available from authority)
country_codestringISO 2-letter code — always "NO" for this endpoint
vat_numberstringThe VAT number as sent in the request
cachedbooleantrue if result served from cache (valid: 24h, invalid: 1h)
request_idstringUnique request ID for support and audit logs

Batch validation

Validate up to 25 numbers in a single POST request. Numbers are processed in parallel — ideal for onboarding flows and nightly reconciliation.

POST /api/v1/validate
curl -s -X POST http://localhost:3000/api/v1/validate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "numbers": [
      { "country": "NO", "vat": "NO123456789MVA" },
      { "country": "NO", "vat": "NO123456789MV9" }
    ]
  }'
Response array
[
  {
    "vat": "NO123456789MVA",
    "valid": true,
    "status": "active",
    "company_name": "Example Ltd",
    "country_code": "NO",
    "cached": false
  },
  {
    "vat": "NO123456789MV9",
    "valid": false,
    "status": "not_found",
    "country_code": "NO",
    "cached": false
  }
]

Error codes

HTTP statusMeaningAction
400Bad request — malformed VAT formatCheck the VAT format against the pattern below
401Missing or invalid API keyPass a valid Bearer token in the Authorization header
404Country not supportedCheck /vat-api for the full list of supported countries
422Validation failed — invalid formatThe number does not match the expected format
429Rate limit exceededBack off and retry after the Retry-After header value
503Upstream authority unavailableVIES/authority is temporarily down — retry with exponential backoff

Norway MVA-nummer format reference

PropertyValue
Country code (ISO)NO
Local nameMVA-nummer (Merverdiavgiftsnummer)
FormatNO + 9 digits + MVA
Regex^NO[0-9]{9}MVA$
ExampleNO123456789MVA
Standard rate25%
Validation sourceBrønnøysund Register (real-time)
VIES supportedNo

Norway is part of the European Economic Area (EEA) but not the EU, so Norwegian VAT numbers are not available via VIES. They are validated through the Brønnøysundregistrene (Norwegian Business Register) REST API. The MVA suffix distinguishes the VAT number from the organisation number.

Frequently asked questions

What does the TaxID API return for a Norway MVA-nummer validation?

For a valid Norway MVA-nummer number the API returns: `valid: true`, `status: "active"`, plus `company_name` and `address` where available from Brønnøysund Register (real-time). For invalid numbers it returns `valid: false` with a reason code. All fields are documented in the API reference.

How fast is the Norway MVA-nummer validation API?

Cached results (valid numbers are cached 24h, invalid 1h) respond in under 10ms. Uncached requests that require a live lookup via Brønnøysund Register (real-time) typically complete in 100–400ms. The `cached` field in the response tells you whether the result came from cache.

What is the Norway MVA-nummer number format?

Norway MVA-nummer numbers (MVA-nummer (Merverdiavgiftsnummer)) follow the pattern: NO + 9 digits + MVA. A valid example is `NO123456789MVA`. The TaxID API validates the format locally before making any live request, so malformed numbers fail instantly without consuming your quota.

Can I validate multiple Norway MVA-nummer numbers in one request?

Yes. The batch endpoint (POST /api/v1/validate) accepts up to 25 VAT numbers in a single request, processed in parallel. This is ideal for bulk onboarding flows, nightly reconciliation jobs, or importing customer lists. Each item in the response array maps 1-to-1 with your input array.

Start validating Norway MVA-nummer numbers

Free plan — 100 validations/month. No credit card required.

Integrate with your stack:

More Norway resources:

Validate VAT in other countries: