Tax Number Validation

Learn about required fields and additional requirements for tax number validation.

Business tax identification number validation requires Vertex Validator.

Request

To trigger a tax number validation, add a taxRegistrations object to the customer, either at the transaction level or at the transaction line items level.

FieldValueNotes
customer.customerCodeThe value can be an empty object {}.This field is not required, but if present, it may affect the result. isBusinessIndicator is added only when present. The same applies to buyerRegistrationId in the response's taxes object.
customer.customerNameThe customer's name.Some external services may reject the request or mark the tax number as invalid if the customer's name is not provided.
customer.taxRegistrations[].isoCountryCodeThe two-letter or three-letter ISO country code or name.We recommend adding this field. If taxRegistrationNumber includes a country prefix, the country can be added and populated based on the tax number validation results.
customer.taxRegistrations[].taxRegistrationAdditionalIdThe additional identifier requested by some tax number validation services.Currently, this field is used only to capture an additional identifier for validating Egyptian tax numbers.
customer.taxRegistrations[].taxRegistrationNumberThe tax number to validate.Tax registration numbers may include a country prefix. If a tax registration number does not include a country prefix, provide the isoCountryCode field as well.
customer.taxRegistrations[].taxRegistrationTypeSee Calculate Tax as a Seller.By default, the service validates only entries without this field or entries with tax registration. Vertex can change this behavior.
customer.taxRegistrations[].validationResult.isValidtrue or falseUse this field to manually mark the tax number as valid. When true, the tax number bypasses syntax and external validation.

Response

If tax number validation is triggered, the following response fields are added or modified.

FieldNotes
data.customer.customerNameThe value is overwritten with the name from validationResult.name when the tax number is valid and the validation result is used. This occurs when the registration's isoCountryCode matches customer.destination.country and the name is not blank or empty.
data.customer.taxRegistrations[].isoCountryCodeThe value may be added based on the country code determined from taxRegistrationNumber. If isoCountryCode does not match the country code determined from taxRegistrationNumber, the value is overwritten.
data.customer.taxRegistrations[].mainDivisionThe value may be added based on the country code determined from taxRegistrationNumber. If isoCountryCode does not match the country code determined from taxRegistrationNumber, the value is overwritten.
data.customer.taxRegistrations[].validationResultContains details of the validation result. If this field is not present, tax number validation was not triggered.

Here is the validationResult structure:

FieldNotes
cacheTimestampThe timestamp of the most recent update to the tax registration number validation result from an external service, such as VIES in the European Union (EU).
cached

When a tax registration number is validated by an external service, such as VIES in the European Union (EU), the validation result is cached and reused the next time the same registration number is submitted.

This improves processing speed and reliability because external services typically respond much more slowly than the internal cache.

isSyntaxValidIndicates that the tax registration number passed syntax validation.
isValidIndicates that the tax registration number was successfully validated.
nameThe name associated with the tax registration number. Some providers do not return this information.
taxNumberServiceAn identifier for the external service that validated the tax registration number.
taxRegistrationNumberNormalizedThe tax registration number in normalized form, using the expected syntax.
validationInfoA code that describes the outcome of tax registration number validation.

Example

Example request:

{
    "currency": {
        "isoCurrencyCodeAlpha": "EUR"
    },
    "customer": {
        "customerCode": {},
        "destination": {
            "country": "PL"
        },
        "taxRegistrations": [
            {
                "isoCountryCode": "PL",
                "taxRegistrationNumber": "PL5272959653"
            }
        ]
    },
    "deliveryTerm": "SUP",
    "lineItems": [
        {
            "extendedPrice": 100
        }
    ],
    "saleMessageType": "QUOTATION",
    "seller": {
        "company": "test_seller",
        "physicalOrigin": {
            "country": "DE"
        },
        "taxRegistrations": [
            {
                "isoCountryCode": "PL"
            }
        ]
    },
    "transactionType": "SALE"
}

Example response (some parts omitted for clarity):

{
    "data": {
        ...
        "customer": {
            "customerCode": {
                // marked as business since there is a registration 
                "isBusinessIndicator": true
            },
            "customerName": "THG NUTRITION POLAND SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
            ...
            "taxRegistrations": [
                // valid registration
                {
                    "isoCountryCode": "PL",
                    "taxRegistrationNumber": "PL5272959653",
                    // validation details
                    "validationResult": {
                        "address": "MAGAZYNOWA 1\n55-040 MAGNICE",
                        "cacheTimestamp": "2026-02-20T10:39:50.1450Z",
                        "cached": true,
                        "isSyntaxValid": true,
                        "isValid": true,
                        "name": "THG NUTRITION POLAND SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
                        "taxNumberService": "vies",
                        "taxRegistrationNumberNormalized": "5272959653",
                        "validationInfo": "TAX_NUMBER_VALID_ACCORDING_TO_EXTERNAL_SERVICE"
                    }
                }
            ]
        },
        "deliveryTerm": "SUP",
        "documentDate": "2026-02-23",
        "lineItems": [
            {
                ...
                "taxes": [
                    ...
                    {
                        // used number can be seen in the tax 
                        // for the country
                        "buyerRegistrationId": "PL5272959653",
                        ...
                        "jurisdiction": {
                            ...
                            "jurisdictionType": "COUNTRY",
                            "value": "POLAND"
                        },
                        "situs": "DESTINATION",
                    }
                ],
                ...
            }
        ],
        ...
        "seller": {
            ...
            // not validated
            "taxRegistrations": [
                {
                    "isoCountryCode": "PL",
                    "jurisdictionId": "0",
                    "taxRegistrationNumber": ""
                }
            ]
        },
        ...
    },
    ...
}

Did this page help you?