Validating VAT/GST Numbers

The VAT/GST number in the Taxamo system is called the buyer_tax_number.

If the VAT/GST number has been validated and there are no further validation requirements to determine that the transaction is B2B then the transaction will be marked as tax_deducted where this applies.

Methods for validating the VAT/GST number

The VAT/GST number can be checked by Taxamo in a number of ways depending on the tax region:

  • Only the format of the number is checked against expected format for that region
  • The VAT/GST number supplied is validated against the tax authority system
  • The VAT/GST number supplied is validated against the tax authority system which requires a captcha to be solved to access validation
  • The VAT/GST number supplied is validated against the tax authority system and evidence that the payment is made by a business is also checked (corporate card check is done against the BIN of the credit card)

VAT number format validation

The format of the VAT number is known and the Taxamo system will pattern check this.

This may occur in the case where the tax authority does not provide a means to validate the VAT number against their system or it does not mandate that there is a requirement to validate the number against their system.

Tax authority validation

Taxamo sends a request to the external tax authority system to validate the number.

  • Additional CAPTCHA needs to be solved
    In several countries the validation service has a CAPTCHA that requires the end customer to correctly enter the CAPTCHA text before the number can be validated. Taxamo's API can provide the CAPTCHA for presentation to the customer.

Caching of valid VAT#'s

Once VAT numbers are validated their status is retained in cache indefinitely.

By default, the caching mechanism will look for a match within the past 30 days, but this can be overridden with the use of a control flag in each request. For example, if you receive a response that the VIES lookup has timed-out, this also means that there is not an entry for that VAT# in the cache within the period you specified. In response, you could expand the period and search again.

The value 0 is also allowed if you want to avoid checking the cache altogether.

Additionally, the Taxamo support desk can configure the retention period in your account settings.


{ "private_token": "*******",
  "transaction": {
    "currency_code": "EUR",
    "control_flags": [
        "key": "b2b-number-service-cache-expiry-days",
        "value": "30"
    "billing_country_code": "NO",
    "transaction_lines": [
        "custom_id": "1",
        "amount": 100
    "buyer_ip": "",
    "buyer_tax_number": "NO123456789",

Did this page help you?