/vies

The VIES Node module checks VAT numbers against the European VIES validator. It is a thin and transparant wrapper around the SOAP service that is exposed through ec.europa.eu/taxation_customs.

Primary LanguageJavaScriptISC LicenseISC

VIES
====

The VIES repository is overtaken from Jethro, with all respects going to the original author.
The VIES Node module checks VAT numbers against the European VIES validator. It
is a thin and transparant wrapper around the SOAP service that is exposed
through ec.europa.eu/taxation_customs.


INSTALL
-------

    npm i --save vies


USAGE
-----

Calling `vies.validate(vatNumber, countryCode)` returns a promise:

    const vies = require('vies');

    vies.validate('123456789', 'NL')
        .then((response) => {
            /* do stuff ... */
        })
        .catch((error) => {
            /* do stuff ... */
        });


EXAMPLE RESPONSES
-----------------

    1. Success
    ~~~~~~~~~~

        {
            error: null,
            is_valid: true,
            data: {
                countryCode: 'NL',
                vatNumber: '0123456789',
                requestDate: Invalid Date,
                valid: true,
                name: 'BV SOMECOMPANY',
                address: 'THE REGISTERED ADDRESS\nZIP CITY'
            }
        }


    2. Invalid VAT-number
    ~~~~~~~~~~~~~~~~~~~~~

        {
            error: null,
            is_valid: false,
            data: {
                countryCode: 'NL',
                vatNumber: '0123456789',
                requestDate: Invalid Date,
                valid: false,
                name: '---',
                address: '---'
            }
        }


    3. Invalid input
    ~~~~~~~~~~~~~~~~

        {
            error: 'INVALID_INPUT',
            is_valid: false,
            data: null
        }


    4. Other VIES error codes
    ~~~~~~~~~~~~~~~~~~~~~~~~~

        cf. example reponse 3, with the following error strings:

        - INVALID_INPUT
        - INVALID_REQUESTER_INFO
        - SERVICE_UNAVAILABLE
        - MS_UNAVAILABLE
        - TIMEOUT
        - VAT_BLOCKED
        - IP_BLOCKED
        - GLOBAL_MAX_CONCURRENT_REQ
        - GLOBAL_MAX_CONCURRENT_REQ_TIME
        - MS_MAX_CONCURRENT_REQ
        - MS_MAX_CONCURRENT_REQ_TIME