https://github.com/johnae/vat
Go package for dealing with EU VAT. Does VAT number validation & rates retrieval.
https://github.com/johnae/vat
Last synced: 5 months ago
JSON representation
Go package for dealing with EU VAT. Does VAT number validation & rates retrieval.
- Host: GitHub
- URL: https://github.com/johnae/vat
- Owner: johnae
- License: mit
- Fork: true (dannyvankooten/vat)
- Created: 2018-04-17T13:44:24.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-19T14:41:01.000Z (about 8 years ago)
- Last Synced: 2024-06-20T11:13:27.503Z (about 2 years ago)
- Language: Go
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Package vat
===
[](https://goreportcard.com/report/github.com/dannyvankooten/vat)
[](https://godoc.org/github.com/dannyvankooten/vat)
[](https://raw.githubusercontent.com/dannyvankooten/vat/master/LICENSE)
Package for validating VAT numbers & retrieving VAT rates in Go.
## Installation
Use go get.
```
go get github.com/dannyvankooten/vat
```
Then import the package into your own code.
```
import "github.com/dannyvankooten/vat"
```
## Usage
### Validating VAT numbers
VAT numbers can be validated by format, existence or both. VAT numbers are looked up using the [VIES VAT validation API](http://ec.europa.eu/taxation_customs/vies/).
```go
package main
import "github.com/dannyvankooten/vat"
func main() {
// Validate number by format + existence
validity, err := vat.ValidateNumber("NL123456789B01")
// Validate number format
validity, err := vat.ValidateNumberFormat("NL123456789B01")
// Validate number existence
validity, err := vat.ValidateNumberExistence("NL123456789B01")
}
```
### Retrieving VAT rates
To get VAT rate periods for a country, first get a CountryRates struct using the country's ISO-3166-1-alpha2 code.
You can get the rate that is currently in effect using the `GetRate` function.
```go
package main
import (
"fmt"
"github.com/dannyvankooten/vat"
)
func main() {
c, err := vat.GetCountryRates("NL")
r, err := c.GetRate("standard")
fmt.Printf("Standard VAT rate for NL is %.2f", r)
// Output: Standard VAT rate for NL is 21.00
}
```
## License
MIT licensed. See the LICENSE file for details.