VAT number/Tax ID number validation
Verify customer VAT and tax ID numbers in Recurly using government lookup systems and format checks — covering the EU, UK, Australia, Belarus, the Dominican Republic, and 40+ format-validated countries.
Definition
Key benefits
Key details
When validation runs
VAT and tax ID numbers are validated at the following points:
- Adding or editing Billing Information
- Adding or editing Account Information
- Creating or renewing Subscriptions
- Creating one-time charges
Additionally, Recurly re-validates a tax ID number at any billing event if the last validation was more than six months ago.
Enabling and disabling validation
VAT/Tax ID validation can be enabled or disabled for any site by contacting [email protected]. EU VAT validation is enabled by default on all production sites.
Government lookup validation
The following countries support government system lookups for tax ID validation — providing the highest level of verification by checking directly against official registries.
EU VAT validation
How VAT numbers affect VAT collection
VAT numbers are business tax registration numbers used across all 27 EU member states. EU businesses with a valid VAT number only pay VAT on purchases made within their own country. For cross-border purchases within the EU, no VAT is charged at the point of sale — the buyer handles VAT through their own tax filing. This exemption makes it critical for merchants to verify that a VAT number is valid before issuing an invoice without VAT.
Validation via VIES
Recurly integrates with the European Commission's VAT Information Exchange System (VIES) — the only means of validating EU VAT numbers. All third-party VAT validation tools also use VIES. Direct access to individual EU country VAT databases isn't possible.
VIES validation is separate from EU VAT collection and is enabled by default on all production sites. The valid/invalid response and timestamp are stored in Recurly, but the VIES consultation number (request identifier) is not currently stored.
Invalid VAT numbers
A VAT number is invalid when VIES explicitly returns that the number isn't in their database. When this happens:
- The number is not saved on the customer's account
- Sign-up attempts with that number are blocked
- The number won't be re-validated for one hour — customers who recently received their VAT number may need to wait if the VIES database hasn't yet updated
If a VAT number becomes invalid while already on an account, it remains on the account but subscription renewals proceed with VAT applied.
If a customer claims their VAT number is correct but VIES shows it as invalid, refer them to the European Commission's FAQ (question #13) for instructions on correcting the official record.
VIES downtime and maintenance windows
VIES aggregates 28 EU country databases, some of which have regular maintenance windows. VAT numbers for those countries can't be validated during these periods.
- View maintenance windows: VIES help page
- View per-country validator status: VIES technical information — Recurly uses the VIES SOAP API, shown in the "Ws Access Status" column
If VIES is unavailable when a VAT number is submitted, the number isn't saved and sign-up attempts are blocked. At subscription renewal, if VIES is still unavailable, Recurly falls back to the last stored validation status — allowing renewal without VAT if the previous status was valid, or with VAT if invalid.
Disabling EU VAT validation
Contact [email protected] to disable VAT number validation on your site.
Testing in sandbox
VAT numbers are not validated in sandbox mode, allowing you to test workflows without valid VAT numbers. To simulate an invalid VAT number, use 000000000 with any EU country code.
Sample error response for an invalid VAT number
Request:
<account>
<account_code>1</account_code>
<email>[email protected]</email>
<first_name>verena</first_name>
<last_name>example</last_name>
<vat_number>INVALID_VAT_1234</vat_number>
<address>
<zip>28070</zip>
<country>ES</country>
</address>
</account>Response:
<errors>
<error field="account.vat_number" symbol="invalid">is invalid</error>
</errors>UK VAT validation
Recurly integrates with HMRC's API for UK VAT ID lookups. Validation is automatically enabled for all merchants on all sites.
To enable or disable UK VAT validation on your site, contact [email protected].
Australia ABN validation
Recurly integrates with the Australian Business Register (ABR) to validate Australian Business Numbers (ABNs). The validation checks two things:
- ABN validity — the number must be correctly formatted and active
- GST registration — the business must be registered for GST
If either check fails, the ABN is rejected and GST is not applied to the invoice.
To enable ABN validation on your site, contact [email protected].
Belarus UNP validation
Recurly integrates with the Belarus government business register for UNP lookups.
To enable Belarus UNP validation on your site, contact [email protected].
Dominican Republic RNC validation
Recurly integrates with the Dominican Republic government business register for RNC lookups.
To enable Dominican Republic RNC validation on your site, contact [email protected].
Format validation
For countries without a direct government registry integration, Recurly validates that VAT/tax ID numbers match the required format for that country. Format validation runs when a tax ID is added or updated on a customer account.
To enable format validation, contact [email protected].
| Location | Tax ID type(s) | Accepted format |
| Åland Islands | YT; ALV | 8 or 9 numeric digits with or without a dash; 8 numeric digits with the optional prefix FI |
| Albania | NIPT | 10 characters with optional AL prefix, in the format "A NNNNNNNN A" (A = alphanumeric, N = numeric) |
| Algeria | NIF | 15 numeric digits |
| Angola | TIN; NIF | 9–10 numeric digits |
| Armenia | INN | 8 numeric digits |
| Barbados | TIN | 13 numeric digits, first digit always "1" |
| Benin | IFN | 13 numeric digits, first digit is 3, 4, 5, or 6 |
| Bosnia & Herzegovina | MBS; JIB; PIB | 12 numeric digits |
| Canada | BN | 9 numeric digits; or 9 numeric digits followed by 2 alphanumeric characters and 4 numeric digits |
| Canary Islands | NIF | 9 characters in format ANNNNNNNA (A = letter, N = number); or optional ES prefix followed by 1 letter (A–H, J, N, P–S, or U–W), 7 numeric digits, and 1 alphanumeric character |
| Chile | RUT | 9 numeric digits |
| China | USSC | 15 numeric digits; or 18 characters where the last 10 may include alphanumeric characters |
| Colombia | NIT | 10 numeric digits |
| Costa Rica | CPJ; NITE | 9–12 numeric digits |
| Ecuador | RUC | 13 characters; 3rd digit always "6" or "9," 4th–9th digits numeric, last three digits "001" |
| Egypt | TRN | 9 numeric digits |
| Georgia | TIN | 9 or 11 numeric digits |
| Iceland | KN; VSK | 10 alphanumeric characters; or 5–6 numeric digits with optional IS prefix |
| India | PAN; GSTN | PAN: 10 characters in format AAAAANNNNA (A = letter, N = number). GSTN: 15 characters in format NNAAAAANNNNAXAX (first 2 numeric, next 10 alphanumeric, 13th numeric, 14th "Z," 15th alphanumeric) |
| Indonesia | NPWP | 15 or 16 numeric digits |
| Israel | CN | 9 numeric digits |
| Japan | CN | First digit 1–9, followed by 12 numeric digits |
| Kazakhstan | BIN | 12 numeric digits |
| Kenya | PIN | 8-character code in format XXXXXXXY (X = number, Y = alphanumeric) |
| Kosovo | NIB; NUI; NIF | 8–9 numeric digits |
| Kyrgyzstan | TIN | 14 numeric digits |
| Lebanon | TIN; TIN+VAT | 1–15 numeric digits; or 1–15 digits optionally followed by "601," "603," or "604" |
| Liechtenstein | PEIN; PEID; TIN | 5 numeric digits; or 11–12 numeric digits |
| Macedonia | EDB | 13 numeric digits with optional MK prefix |
| Martinique | SPI; VAT | 9 or 13 numeric digits; or FR followed by 11 numeric digits |
| Mexico | RFC | Business: 12 characters in format XXX-YYYYYY-ZZZ (X = letters, Y = numbers, Z = alphanumeric). Individual: 13 characters in format XXXX-YYYYYY-ZZZ |
| Moldova | IDNO; VAT | 13 numeric digits; or 7 numeric digits with optional MD prefix |
| Norway | ORGNR; MVA | 9 numeric digits; or 9 numeric digits followed by "MVA" with optional NO prefix |
| Serbia | PIB | 9 numeric digits |
| South Africa | TRN | 10 numeric digits, first digit is 0, 1, 2, 3, 4, or 9 |
| South Korea | BRN | 10 digits: first 3 digits between 101–999, next 2 digits 01–89 (excluding 80), followed by 4 numeric digits greater than "0000," ending in any numeric digit |
| Switzerland | UID; VAT | UID: 12 characters in format CHE-NNN.NNN.NNN. VAT: 15–16 characters in format CHE-NNN.NNN.NNN AAA with suffix MWST, TVA, IVA, or VAT |
| Taiwan | BAN | 8 numeric digits |
| Thailand | TIN | 13 numeric digits |
| Togo | NIF | 10 numeric digits |
| Turkey | VKN | 10 numeric digits |
| Ukraine | EDRPOU | 8 numeric digits |
| United Arab Emirates | TRN | 15 numeric digits |
| United States | EIN | 9 numeric digits in format NN-NNNNNNN |
| Vietnam | MST | 10–13 numeric digits; 3rd through 10th digits cannot be "0000000," last 3 digits cannot be "000" |
Updated 17 days ago