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/ .
vatchecker is licensed under the Apache License Version 2.0.
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'
If you use it as a module, remember to add requires ch.digitalfondue.vatchecker;
in your module-info.
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:
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
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: