ibericode/vat
最新稳定版本:2.1
Composer 安装命令:
composer require ibericode/vat
包简介
PHP library for dealing with EU VAT
关键字:
README 文档
README
This is a simple PHP library to help you deal with Europe's VAT rules.
- Fetch VAT rates for any EU member state using ibericode/vat-rates.
- Validate VAT numbers (by format and/or existence)
- Validate ISO-3316 alpha-2 country codes
- Determine whether a country is part of the EU
- Geo-locate IP addresses
Installation
PHP version 8.2 or higher with the CURL and JSON extension is required.
For VAT number existence checking, the PHP SOAP extension is required as well.
To get the latest stable version, install the package using Composer:
composer require ibericode/vat
Usage
This library exposes 4 main classes to interact with: Rates, Countries, Validator and Geolocator.
Retrieving VAT rates.
This package relies on a community maintained repository of vat rates. We invite you to toggle notifications for that repository and contribute changes to VAT rates in your country once they are announced.
$rates = new Ibericode\Vat\Rates('/path-for-storing-cache-file.txt'); $rates->getRateForCountry('NL'); // 21 $rates->getRateForCountry('NL', 'standard'); // 21 $rates->getRateForCountry('NL', 'reduced'); // 9 $rates->getRateForCountryOnDate('NL', new \DateTime('2010-01-01'), 'standard'); // 19
This fetches rate from ibericode/vat-rates and stores a local copy that is periodically refreshed (once every 12 hours by default).
Validation
Validating a VAT number:
$validator = new Ibericode\Vat\Validator(); $validator->validateVatNumberFormat('NL203458239B01'); // true (checks format) $validator->validateVatNumber('NL203458239B01'); // false (checks format + existence)
Validating an IP address:
$validator = new Ibericode\Vat\Validator(); $validator->validateIpAddress('256.256.256.256'); // false $validator->validateIpAddress('8.8.8.8'); // true
Validating an ISO-3166-1-alpha2 country code:
$validator = new Ibericode\Vat\Validator(); $validator->validateCountryCode('DE'); // true $validator->validateCountryCode('ZZ'); // false
Dealing with ISO-3166-1-alpha2 country codes
$countries = new Ibericode\Vat\Countries(); // access country name using array access echo $countries['NL']; // Netherlands // loop over countries foreach ($countries as $code => $name) { // ... } // check if country is in EU $countries->isCountryCodeInEU('NL'); // true $countries->isCountryCodeInEU('US'); // false
Geo-location
This library includes a simple geo-location service using ip2c.org or ip2country.info (deprecated as of Dec 2022).
$geolocator = new Ibericode\Vat\Geolocator(); $geolocator->locateIpAddress('8.8.8.8'); // US
To use ip2c.org explicitly.
$geolocator = new Ibericode\Vat\Geolocator('ip2c.org'); $geolocator->locateIpAddress('8.8.8.8'); // US
Symfony support
If you need to use this package in a Symfony environment, check out ibericode/vat-bundle.
License
ibericode/vat is licensed under the MIT License.
统计信息
- 总下载量: 2.94M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 443
- 点击次数: 1
- 依赖项目数: 7
- 推荐数: 2
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04