viesdeprecated

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.

Usage no npm install needed!

<script type="module">
  import vies from 'https://cdn.skypack.dev/vies';
</script>

README

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