invalid_vat_format
HTTP Status: 422 Unprocessable Entity
Example response
What happened?
The VAT number doesn’t match the expected format for its country, or the country code is not supported. This happens when:- The VAT number is missing a country prefix
- The country code is not in the supported countries list
- The number contains only the country code with no digits
- The number does not match the expected format for its country (wrong length, missing required characters)
- The number contains invalid characters after normalization
- The Swiss UID (CHE format) or Norwegian org number fails the MOD11 checksum
- The Australian ABN fails the weighted checksum validation
Expected formats
How to fix
- Include the country code: Always prefix with the country code:
NL123456789B01,GB123456789,DE123456789,CHE123456789MWST,NO123456785MVA,AU51824753556 - Check supported countries: See the full list at Supported Countries
- Let the API normalize: Don’t strip spaces or dots manually. Send
"NL 123.456.789 B01"and the API handles it
Common mistakes
- Forgetting the country code:
123456789instead ofNL123456789B01 - Using lowercase: This actually works fine (the API normalizes to uppercase), but check there’s a country prefix
- Including “VAT” prefix:
VAT123456789is not valid; use the country code instead - Using
GRfor Greece: Greece usesELin the VIES system, notGR - Missing the MWST/TVA/IVA suffix for Swiss numbers:
CHE123456789alone is not valid; include the suffix (e.g.CHE123456789MWST) - Missing the MVA suffix for Norwegian numbers:
NO123456785alone is not valid; includeMVA(e.g.NO123456785MVA) - Wrong number of digits: e.g. sending 10 digits for GB (requires exactly 9 or 12)
- Missing the B separator for Dutch VAT: NL numbers require B between the digit groups, e.g. NL123456789B01
- Using an unsupported country: Only EU member states, GB, XI, CH, LI, NO, AU, and SG are supported
Catching this error with the SDKs
Related errors
missing_parameter- VAT number parameter not provided at all