vatverify home
Belgium

Check Belgium VAT numbers

Validate Belgian VAT numbers (BTW / TVA / MWSt) against the EU VIES registry. Belgian numbers always start with BE0 followed by 9 digits, making them 12 characters total. The leading zero is mandatory and not a formatting artifact. Every response includes the company name, registered address, and validity at query time.

EU member stateBTW Belasting over de toegevoegde waardeEUR

Try it

curl -X POST "https://api.vatverify.dev/v1/validate" \  -H "Authorization: Bearer $VATVERIFY_KEY" \  -H "Content-Type: application/json" \  -d '{"vat_number":"BE0403170701"}'
Loading reliability...

Facts

Format

Prefix
BE
Digits
10
Regex
^BE0\d{9}$
ValidBE0403170701
Bad checksumBE0403170700
Bad formatBE403170701

Registry

VIES powers /v1/validate for Belgium.

VAT rates (EUR)

21%
Standard
12%
Reduced

restaurant meals (food portion), certain social housing works

6%
Reduced

food staples, pharmaceuticals, books, newspapers, passenger transport, water supply

What we return for Belgium

{
  "data": {
    "valid": true,                       // boolean validity at query time
    "vat_number": "DE129273398",
    "country": {
      "code": "DE",
      "name": "Germany",
      "vat": { "standard_rate": 19 }
    },
    "company": {
      "name": "SIEMENS AG",              // legal entity name
      "address": "..."                    // when VIES provides it
    },
    "verified_at": "2026-04-25T10:00:00Z"
  },
  "meta": {
    "request_id": "019dc...",            // for audit trail correlation
    "source": "vies",
    "source_status": "live",             // live | cached | degraded
    "cached": false,
    "latency_ms": 234
  }
}

Watch out for

  • Belgian BTW/TVA numbers always start with BE0; the 0 is structural, not a padding artifact. BE403170701 (missing 0) is invalid.
  • The 10 digits after BE are the KBO/BCE enterprise number, but not every KBO enterprise is VAT-active; confirm via VIES.
  • Belgium has three official languages (Dutch, French, German), so company names in VIES may appear in any of the three.

BTW, TVA, MwSt: one identifier, three names

Belgium has three official languages, and the VAT identifier carries three names depending on which one the document is written in:

  • BTW-nummer (Dutch)
  • Numéro de TVA (French)
  • MwSt-Nummer (German)

The number itself is identical across languages. A Belgian invoice will use whichever language label fits the document; the digits do not change. The EU-facing form prefixes BE.

Format: 10 digits, leading zero

Belgian VAT numbers are 10 digits after the BE prefix. Historically the number was 9 digits; in 2008 a leading zero was added across the register to standardize on 10. Some legacy documents still show the 9-digit form, which is no longer valid for new VIES queries.

vatverify accepts the 10-digit canonical form. A 9-digit input is padded to 10 with a leading zero before the registry call, matching the SPF Finances normalization.

SPF Finances is the registering authority

The federal Belgian tax authority, SPF Finances (or FOD Financiën in Dutch), maintains the VAT register. SPF Finances pushes updates to VIES on a regular batch cadence. The CBE/KBO (Crossroads Bank for Enterprises / Banque-Carrefour des Entreprises) is the broader business register and uses the same 10-digit number for non-VAT purposes; a Belgian business has one number across both registers.

A consequence: the same 10-digit identifier may resolve in CBE/KBO even when the entity is not VAT-registered (because, for example, it operates only in VAT-exempt sectors). VIES will return valid: false in that case, while CBE will return a valid record. vatverify validates against VIES; for a CBE-only check the Belgian public portal is the right tool.

VAT rates

Belgium runs three primary rates: 21% standard, 12% reduced, and 6% reduced. There is also a 0% rate for a narrow set of supplies (daily newspapers, certain medical equipment).

The 6% bracket covers food, books, water, and several social and cultural categories. The 12% bracket covers a smaller set including specific energy products and restaurant services other than beverages. Rate composition changes periodically; date-aware lookup is the safer default for invoicing logic.

Reverse-charge inside Belgium

Belgium applies domestic reverse-charge to construction services between two Belgian VAT-registered businesses. The supplier issues an invoice without VAT and the recipient self-accounts. This is independent of EU intra-Community reverse-charge and is the default treatment for in-scope construction work.

For real-estate-adjacent invoicing flows targeting Belgian counterparties, the domestic rule is what determines the invoice shape, not the cross-border one.

Linguistic regions and the registry

The Belgian VAT identifier is unified across regions, but registry text fields (legal name, registered address) come back in the language of the entity's registration. A Wallonia-registered company returns French text; a Flanders-registered company returns Dutch; the German-speaking community in the east returns German.

For B2B onboarding flows that match counterparty addresses against internal records, the language difference can cause false negatives on string comparison. Normalizing diacritics and matching on postcode/street-number rather than full text is the typical workaround.

Caching against the SPF Finances cycle

SPF Finances pushes registration changes to VIES on a regular batch. Newly-registered Belgian numbers are generally visible in VIES within 24 to 48 hours. vatverify's default TTLs (30 days for valid, 24 hours for invalid) line up with that cadence.

Loading FAQ…

Automate Belgium VAT checks in your stack

Replace manual lookups with one API call against VIES. Drops into invoicing, checkout, and signup flows in any language. 500 free validations per month, no credit card.