POST /api/v1/verify/vat · /iban · /company

Verify — EU Business Validation

Validate EU VAT numbers against the official VIES database, verify IBAN account numbers using mod-97 checksum validation, and look up Belgian company records from the CBE (Crossroads Bank for Enterprises). One credit per call, real-time results.

/api/v1/verify/vat

Validate a European VAT number in real time against the EU VIES (VAT Information Exchange System) SOAP API. Supports all 27 EU member states. Returns the registered company name and address when the VAT number is valid.

ParameterTypeRequiredDescription
stringyesFull EU VAT number including country prefix, e.g. BE0123456789

cURL

curl -X POST https://api.waypoints.tech/v1/verify/vat \
  -H "x-api-key: wp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "vat": "BE0123456789" }'

SDK (@waypoints/sdk)

const result = await wp.verify.vat({ vat: "BE0123456789" });

console.log(result.valid);        // true
console.log(result.company_name); // "Acme NV"
console.log(result.address);      // "Rue de la Loi 16, 1000 Brussels"

Response

{
  "valid": true,
  "vat": "BE0123456789",
  "country": "BE",
  "company_name": "Acme NV",
  "address": "Rue de la Loi 16, 1000 Brussels",
  "credits_used": 1,
  "request_id": "req_01jx9k2m3n4p5q6r7s8t9u0v"
}

Supported country prefixes

AT · BE · BG · CY · CZ · DE · DK · EE · EL · ES · FI · FR · HR · HU · IE · IT · LT · LU · LV · MT · NL · PL · PT · RO · SE · SI · SK

/api/v1/verify/iban

Validate an IBAN account number using mod-97 checksum validation (ISO 13616). Returns the country, inferred BIC/bank name, and a formatted IBAN string with spaces. Works for all IBAN-supporting countries worldwide, not just EU.

ParameterTypeRequiredDescription
stringyesIBAN string with or without spaces, e.g. BE68539007547034

cURL

curl -X POST https://api.waypoints.tech/v1/verify/iban \
  -H "x-api-key: wp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "iban": "BE68539007547034" }'

SDK (@waypoints/sdk)

const result = await wp.verify.iban({ iban: "BE68539007547034" });

console.log(result.valid);     // true
console.log(result.bank);      // "BNP Paribas Fortis"
console.log(result.bic);       // "GEBABEBB"
console.log(result.formatted); // "BE68 5390 0754 7034"

Response

{
  "valid": true,
  "iban": "BE68539007547034",
  "country": "BE",
  "bank": "BNP Paribas Fortis",
  "bic": "GEBABEBB",
  "formatted": "BE68 5390 0754 7034",
  "credits_used": 1,
  "request_id": "req_01jx9k2m3n4p5q6r7s8t9u0v"
}
/api/v1/verify/company

Look up a Belgian company in the CBE (Crossroads Bank for Enterprises) using the enterprise number. Returns the official company record including legal form, status, registered address, and activities.

ParameterTypeRequiredDescription
stringyesBelgian enterprise number (10 digits), e.g. 0123456789
stringnoCountry code — currently only "BE" is supported. Defaults to "BE"

cURL

curl -X POST https://api.waypoints.tech/v1/verify/company \
  -H "x-api-key: wp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "cbe": "0123456789", "country": "BE" }'

SDK (@waypoints/sdk)

const result = await wp.verify.company({ cbe: "0123456789" });

console.log(result.name);       // "Acme NV"
console.log(result.status);     // "active"
console.log(result.legal_form); // "NV (Naamloze vennootschap)"

Response

{
  "valid": true,
  "cbe": "0123456789",
  "name": "Acme NV",
  "status": "active",
  "legal_form": "NV (Naamloze vennootschap)",
  "start_date": "2010-03-15",
  "address": {
    "street": "Rue de la Loi",
    "number": "16",
    "postal_code": "1000",
    "city": "Brussels",
    "country": "BE"
  },
  "vat": "BE0123456789",
  "activities": ["Software publishing", "IT consultancy"],
  "credits_used": 1,
  "request_id": "req_01jx9k2m3n4p5q6r7s8t9u0v"
}

Notes

VIES availability

The VIES service is operated by the European Commission and has occasional downtime, especially for individual member state databases. waypoints returns a VIES_UNAVAILABLE error (503) in these cases — implement a retry with exponential backoff.

IBAN vs bank account existence

IBAN verification checks the structural validity of the account number (format + mod-97 checksum). It does not confirm that the account is open or that it belongs to a specific person. Use it to catch typos, not for fraud prevention.

CBE data freshness

Belgian CBE data is updated nightly. Newly registered companies may not appear immediately. The CBE covers all Belgian enterprises registered with the BCE/KBO.