Uses the official VIES VAT number validation SOAP web service to validate european VAT numbers.
Unfortunately their service is super unreliable.
go get -u github.com/mattes/vat
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", "")
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.