An open API service indexing awesome lists of open source software.

https://github.com/digitalfondue/vatchecker

java library for calling the eu vat checker web service
https://github.com/digitalfondue/vatchecker

eu eu-vat-validator java tin tin-soap-service vat-number vies vies-soap-service

Last synced: 5 months ago
JSON representation

java library for calling the eu vat checker web service

Awesome Lists containing this project

README

          

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

[![Maven Central](https://img.shields.io/maven-central/v/ch.digitalfondue.vatchecker/vatchecker.svg)](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22vatchecker%22)
[![Build Status](https://img.shields.io/github/actions/workflow/status/digitalfondue/vatchecker/.github/workflows/maven.yml)](https://github.com/digitalfondue/vatchecker/actions?query=workflow%3A%22Java+CI+with+Maven%22)

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:

```xml

ch.digitalfondue.vatchecker
vatchecker
1.6.0

```

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:

```java
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:

```java
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:

```java
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