Belgium (BE)
Belgian VAT Number Validation
Format, pattern, and checksum algorithm for BE VAT numbers
Belgian VAT numbers (BTW-nummer / Numéro de TVA) consist of 10 digits and use a simple MOD 97 checksum algorithm for validation. In practice, legacy user input may omit the leading zero, so validators often normalize 9-digit input to 10 digits first.
Format vs. Active Validation
This checks format only, not if a VAT number is really registered. Use VatDB's API to verify is a number is really registered and active. VatDB checks official EU and national datasources.
Format Overview
| Property | Value |
|---|---|
| Country Code | BE |
| Canonical format | 10 digits starting with 0 or 1 |
| Accepted input lengths | 9 or 10 digits |
| Examples | BE0314595348, BE0553523471, BE0727720427, BE1006872569, BE314595348 (legacy shorthand input) |
Regex Pattern
^BE[0-9]{9,10}$
Or without country prefix:
^[0-9]{9,10}$
Checksum Algorithm
Belgian VAT numbers use MOD 97 validation:
def validate_be_vat(number):
# Remove BE prefix if present
if number.startswith('BE'):
number = number[2:]
if len(number) not in (9, 10) or not number.isdigit():
return False
# Legacy shorthand may omit the leading zero.
if len(number) == 9:
number = "0" + number
if number[0] not in ('0', '1'):
return False
# MOD 97 check
base = int(number[:8])
check = int(number[8:])
return (base + check) % 97 == 0
The last 2 digits are the check digits, calculated as 97 - (first_8_digits % 97).
Important Notes
- Canonical Belgian VAT numbers are 10 digits (
0or1first digit) - Legacy shorthand input with 9 digits can be normalized by adding a leading zero
- Official publications often display grouped notation (
0xxx.xxx.xxx/1xxx.xxx.xxx). This grouping and the dot separators are optional and for readability. - Numbers starting with 0 are the original series
- Numbers starting with 1 were introduced from September 2023
- Example enterprise numbers published by Belgian authorities include:
0314.595.348,0553.523.471,0727.720.427,1006.872.569
Frequently Asked Questions
How do I check if a Belgian VAT number is valid?
Normalize the input first (if 9 digits, add leading zero), verify canonical 10-digit form starts with 0 or 1, then apply MOD 97 checksum: (first 8 digits + last 2 digits) must be divisible by 97. Use VatDB's API for official verification against EU and national databases.
What format does a Belgian VAT number have?
Belgian VAT numbers have the format BE0314595348 or BE1006872569 - the country code 'BE' followed by exactly 10 digits. The first digit is always 0 or 1.
How many digits are in a Belgian VAT number?
Canonical Belgian VAT numbers contain exactly 10 digits after BE. Some legacy shorthand input appears as 9 digits and should be normalized by adding a leading zero.
Why does my Belgian VAT number start with BE0 or BE1?
Numbers starting with BE0 are from the original numbering system. Numbers starting with BE1 are newer registrations, introduced from September 2023 as the BE0 range was being exhausted.
How do I verify a Belgian company's VAT number?
VatDB's API validates VAT numbers against official EU and national databases in real-time. Includes company information with each verification.
What's the difference between format validation and checking if a VAT number is active?
Checksum validation catches typos and formatting errors, but a correctly formatted number might be fictional or belong to a closed business. VatDB's API confirms real registration status.
Validate Belgian VAT Numbers Instantly
Use our API for real-time BE VAT number validation with MOD 97 checksum verification
Try Free