Tax ID & VAT Number Validator (65 countries, offline) avatar

Tax ID & VAT Number Validator (65 countries, offline)

Pricing

from $1.00 / 1,000 tax id checkeds

Go to Apify Store
Tax ID & VAT Number Validator (65 countries, offline)

Tax ID & VAT Number Validator (65 countries, offline)

Validate business tax IDs and VAT numbers for 65 countries offline: EU VAT, UK VAT, US EIN, ABN, GSTIN, CNPJ, RFC and more. Checks format and check digits; personal numbers are masked.

Pricing

from $1.00 / 1,000 tax id checkeds

Rating

0.0

(0)

Developer

David Rincon

David Rincon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Check whether business tax IDs and VAT numbers are well formed, in bulk, for 65 countries: EU VAT, UK VAT, Swiss UID, US EIN, Canadian BN, Australian ABN, Indian GSTIN, Brazilian CNPJ, Mexican RFC and many more. Everything runs locally, in seconds, without sending the numbers anywhere.

  • 65 countries in one call: the 27 EU member states and Northern Ireland (VAT), the UK, Switzerland, Norway, Iceland, the US, Canada, Australia, New Zealand, India, Japan, South Korea, Singapore, China, Turkey, Israel, Russia, Ukraine, South Africa, Egypt, Morocco, Thailand, Vietnam, Indonesia and 14 Latin American countries.
  • Format and check digits: each number gets valid and, when it is not, the reason (checksum, length, format or component). A number that fits several countries' formats lists them all in validIn, so you know when to pass country.
  • Privacy by design: numbers that can belong to a person (sole traders, personal tax numbers) are masked; only numbers that are certainly a company's come back in full. The input is never echoed or logged.

Output example

{
"index": 0,
"country": "BR",
"idType": "CNPJ",
"valid": true,
"entityType": "company",
"id": "16727230000197",
"formatted": "16.727.230/0001-97",
"masked": false,
"checksumVerified": true,
"validIn": ["BR"],
"error": null
}

An EU VAT number such as DE 143 454 214 comes back valid with "country": "DE", "idType": "VAT" and a masked "id": "********214", because in several countries a VAT number can be a sole trader's personal number. Use index to match each row with your input list.

A number without a prefix can fit several countries: 91-1144442 alone returns "country": null and "validIn": ["CA", "EG", "US"]; with "country": "US" it is checked as a US EIN only.

Cost

You pay per ID checked: US$0.001 per ID, so 1,000 IDs = US$1.00, plus US$0.00005 per run start. A typical run of 50 IDs costs about US$0.05.

Input

FieldTypeDefaultDescription
idsarray of stringsrequiredTax IDs or VAT numbers, with or without spaces, dots and dashes; up to 10000.
countryISO 3166-1 alpha-2 codenot setChecks every ID as that country's number. Leave it out to detect EU, UK and Swiss numbers from their prefix and try every other country.
maxItemsinteger1000Stop after this many IDs, up to 10000.

Supported numbers

RegionCountries and IDs
European UnionVAT number of all 27 member states (AT, BE, BG, CY, CZ, DE, DK, EE, ES, FI, FR, GR/EL, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK) and Northern Ireland (XI)
Rest of EuropeUK VAT, Swiss UID, Norwegian MVA, Icelandic VSK, Russian INN, Ukrainian EDRPOU, Turkish VKN
AmericasUS EIN, Canadian BN, and in Latin America: NIT (CO, GT, SV), RUT (CL, UY), RFC (MX), CNPJ (BR), CUIT (AR), RUC (PE, EC, PY), RIF (VE), CPJ (CR), RNC (DO)
Asia and OceaniaAustralian ABN, New Zealand IRD, Indian GSTIN, Japanese Corporate Number, Korean BRN, Singapore UEN, Chinese USCC, Israeli company number, Thai TIN, Vietnamese MST, Indonesian NPWP
AfricaSouth African TIN, Egyptian tax number, Moroccan ICE

When is a number shown in full?

Only when its structure says it belongs to a legal entity:

  • Always companies:
    • Brazilian CNPJ;
    • Japanese Corporate Number;
    • Ukrainian EDRPOU;
    • Costa Rican CPJ;
    • Dominican RNC;
    • Israeli company number.
  • Companies by prefix or length:
    • Peruvian RUC starting 20;
    • Ecuadorian RUC with third digit 6 or 9;
    • Venezuelan RIF starting J or G;
    • Russian INN of 10 digits;
    • Chinese USCC starting 91;
    • Indian GSTIN whose PAN type is C;
    • Colombian NIT from 800.000.000;
    • Chilean RUT from 50.000.000;
    • Mexican RFC of 12 characters;
    • Argentine CUIT starting 30, 33 or 34.

Everything else, including all VAT numbers, US EINs and Australian ABNs, is masked: those numbers can belong to sole traders.

FAQ

Does it check that the company exists or is VAT-registered? No. It checks structure and check digits, which catches typos and made-up numbers. It does not query VIES or any tax authority, so it cannot tell whether a number is active.

Why is country null for some valid numbers? Plain digit strings can fit the format of several countries. validIn lists them; pass country to check the one you mean.

Why is checksumVerified false for some Mexican RFCs? Around 1.5% of RFCs in use carry homoclave digits that do not follow the published algorithm, so an RFC with a correct format and date is still reported as valid.

Are my IDs stored? The Actor stores only the results shown above, with personal numbers masked. It never logs IDs. Like every Apify run, your input is kept in your own run storage under your Apify data retention settings.

Can AI agents use it? Yes. Input is a plain list, limits are stated in the input descriptions, and a run takes a few seconds.

Validation runs locally with public check-digit algorithms from the open-source python-stdnum library. No website, registry or government service is contacted, and no personal data is returned.

  • LatAm Tax ID Validator: only need Colombia, Chile, Mexico, Brazil or Argentina? The same offline checks, focused on NIT, RUT, RFC, CNPJ and CUIT.

En español

Valida identificadores tributarios y números de IVA de empresas de 65 países (IVA de la UE, VAT del Reino Unido, EIN, ABN, GSTIN, CNPJ, RFC y más) en lote, sin enviarlos a ningún servicio. Revisa formato y dígitos verificadores, no si el número está registrado. Los números que pueden ser de personas salen enmascarados.

Changelog

  • 0.1: first version.