vat
vat copied to clipboard
EU VAT number validation in Go using VIES SOAP service
Golang VAT number validation
Uses the official VIES VAT number validation SOAP web service to validate european VAT numbers.
Unfortunately their service is super unreliable.
Install
go get -u github.com/mattes/vat
Usage with Go
import "github.com/mattes/vat"
response, err := vat.CheckVAT("IE6388047V")
if err != nil {
// do sth with err
}
fmt.Println(response.Name, response.Valid)
// or ...
valid, err := vat.IsValidVAT("IE6388047V")
// increase timeout (default 10 seconds)
vat.Timeout = 10
// get VAT rates for EU countries
rate, ok := vat.StandardRate("DE")
// get applicable tax and if reverse charge is allowed,
// depending on VAT number and country
// (use at own risk!)
rate, reverseCharge, err := GetApplicableTax("DE", "")
rate, reverseCharge, err := GetApplicableTax("IE", "IE6388047V")
rate, reverseCharge, err := GetApplicableTax("CH", "")
Usage via Console
There is a small cli included in this package.
Install with go get -u github.com/mattes/vat/vat-check
$ vat-check IE6388047V
Request date: 2015-03-06 00:00:00 +0100 CET
VAT number: 6388047V
Country: IE
Name: GOOGLE IRELAND LIMITED
Address: 3RD FLOOR ,GORDON HOUSE ,BARROW STREET ,DUBLIN 4
Success: The VAT number is valid!
Exit code is 0 if VAT number is valid.