HomeProduct DocsAPI ReferenceChangelog
RecurlyAPI GuidesRecurly.jsWebhooksAPI ReferenceSupportBook demo
Product Docs

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.

Recurly validates customer-provided VAT and tax identification numbers using government lookup systems and format checks before invoices are generated. Validation runs automatically at billing events — blocking invalid numbers from sign-ups and ensuring accurate tax treatment on every invoice.
Available on all Recurly plans

Definition

Tax ID validation verifies customer-provided tax identification numbers — such as VAT numbers — using government lookup systems and format checks. Validation runs automatically when tax IDs are added or updated, and at each billing event, ensuring invoice accuracy, correct VAT treatment, and regulatory compliance.

Key benefits

Enhanced accuracy Validates customer tax IDs against government systems and format rules, leading to more accurate VAT and tax calculations on every invoice.
Streamlined billing Automates the verification process, reducing manual errors and simplifying tax application so invoicing runs without friction.
Risk mitigation Keeps tax identifiers compliant with local standards, reducing the risk of fines and ensuring invoices meet regulatory requirements.

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.

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].

US format validationAll countries in the table below except the United States are grouped under a single enablement option. To enable format validation specifically for the United States, call that out explicitly in your support ticket.
LocationTax ID type(s)Accepted format
Åland IslandsYT; ALV8 or 9 numeric digits with or without a dash; 8 numeric digits with the optional prefix FI
AlbaniaNIPT10 characters with optional AL prefix, in the format "A NNNNNNNN A" (A = alphanumeric, N = numeric)
AlgeriaNIF15 numeric digits
AngolaTIN; NIF9–10 numeric digits
ArmeniaINN8 numeric digits
BarbadosTIN13 numeric digits, first digit always "1"
BeninIFN13 numeric digits, first digit is 3, 4, 5, or 6
Bosnia & HerzegovinaMBS; JIB; PIB12 numeric digits
CanadaBN9 numeric digits; or 9 numeric digits followed by 2 alphanumeric characters and 4 numeric digits
Canary IslandsNIF9 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
ChileRUT9 numeric digits
ChinaUSSC15 numeric digits; or 18 characters where the last 10 may include alphanumeric characters
ColombiaNIT10 numeric digits
Costa RicaCPJ; NITE9–12 numeric digits
EcuadorRUC13 characters; 3rd digit always "6" or "9," 4th–9th digits numeric, last three digits "001"
EgyptTRN9 numeric digits
GeorgiaTIN9 or 11 numeric digits
IcelandKN; VSK10 alphanumeric characters; or 5–6 numeric digits with optional IS prefix
IndiaPAN; GSTNPAN: 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)
IndonesiaNPWP15 or 16 numeric digits
IsraelCN9 numeric digits
JapanCNFirst digit 1–9, followed by 12 numeric digits
KazakhstanBIN12 numeric digits
KenyaPIN8-character code in format XXXXXXXY (X = number, Y = alphanumeric)
KosovoNIB; NUI; NIF8–9 numeric digits
KyrgyzstanTIN14 numeric digits
LebanonTIN; TIN+VAT1–15 numeric digits; or 1–15 digits optionally followed by "601," "603," or "604"
LiechtensteinPEIN; PEID; TIN5 numeric digits; or 11–12 numeric digits
MacedoniaEDB13 numeric digits with optional MK prefix
MartiniqueSPI; VAT9 or 13 numeric digits; or FR followed by 11 numeric digits
MexicoRFCBusiness: 12 characters in format XXX-YYYYYY-ZZZ (X = letters, Y = numbers, Z = alphanumeric). Individual: 13 characters in format XXXX-YYYYYY-ZZZ
MoldovaIDNO; VAT13 numeric digits; or 7 numeric digits with optional MD prefix
NorwayORGNR; MVA9 numeric digits; or 9 numeric digits followed by "MVA" with optional NO prefix
SerbiaPIB9 numeric digits
South AfricaTRN10 numeric digits, first digit is 0, 1, 2, 3, 4, or 9
South KoreaBRN10 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
SwitzerlandUID; VATUID: 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
TaiwanBAN8 numeric digits
ThailandTIN13 numeric digits
TogoNIF10 numeric digits
TurkeyVKN10 numeric digits
UkraineEDRPOU8 numeric digits
United Arab EmiratesTRN15 numeric digits
United StatesEIN9 numeric digits in format NN-NNNNNNN
VietnamMST10–13 numeric digits; 3rd through 10th digits cannot be "0000000," last 3 digits cannot be "000"


Did this page help you?