vatchecker icon indicating copy to clipboard operation
vatchecker copied to clipboard

java library for calling the eu vat checker web service

vatchecker: a java library for fetching information from the VIES and TIN webservice

Maven Central Build Status

A small java client with 0 dependencies for calling:

  • the European "VAT Information Exchange System" (VIES) webservice for validating the VAT numbers. See http://ec.europa.eu/taxation_customs/vies/ .
  • the European "TIN" webservice. See https://ec.europa.eu/taxation_customs/tin/ .

License

vatchecker is licensed under the Apache License Version 2.0.

Download

maven:

<dependency>
    <groupId>ch.digitalfondue.vatchecker</groupId>
    <artifactId>vatchecker</artifactId>
    <version>1.6.0</version>
</dependency>

gradle:

compile 'ch.digitalfondue.vatchecker:vatchecker:1.6.0'

Use

If you use it as a module, remember to add requires ch.digitalfondue.vatchecker; in your module-info.

VIES

As a static method:

EUVatCheckResponse resp = EUVatChecker.doCheck("IT", "00950501007");
Assert.assertEquals(true, resp.isValid());
Assert.assertEquals("BANCA D'ITALIA", resp.getName());
Assert.assertEquals("VIA NAZIONALE 91 \n00184 ROMA RM\n", resp.getAddress());

You can create an instance if you prefer:

EUVatChecker euVatChecker = new EUVatChecker();
EUVatCheckResponse resp = euVatChecker.check("IT", "00950501007");
Assert.assertEquals(true, resp.isValid());
Assert.assertEquals("BANCA D'ITALIA", resp.getName());
Assert.assertEquals("VIA NAZIONALE 91 \n00184 ROMA RM\n", resp.getAddress());

For error handling, see the tests, you may distinguish "invalid" and "error" which can have a Fault object:

  • https://github.com/digitalfondue/vatchecker/blob/master/src/test/java/ch/digitalfondue/vatchecker/EUVatCheckerTest.java

You can use your own data fetcher if customization is needed, see:

  • https://github.com/digitalfondue/vatchecker/blob/master/src/main/java/ch/digitalfondue/vatchecker/EUVatChecker.java#L183
  • https://github.com/digitalfondue/vatchecker/blob/master/src/main/java/ch/digitalfondue/vatchecker/EUVatChecker.java#L67

TIN

As a static method:

EUTinCheckResponse resp = EUTinChecker.doCheck("BE", "00012511119");
Assert.assertEquals(true, resp.isValidStructure());
Assert.assertEquals(true, resp.isValidSyntax());

Like the VIES counterpart, you can see the tests for all the possibile outputs:

  • https://github.com/digitalfondue/vatchecker/blob/master/src/test/java/ch/digitalfondue/vatchecker/EUTinCheckerTest.java