This bundle allows you to use ibericode/vat in your Symfony projects.
- Fetch VAT rates for any European member state from ibericode/vat-rates
- Validate VAT numbers (by format and existence)
- Validate ISO-3316 alpha-2 country codes
- Determine whether a country is part of the EU
- Geo-locate IP addresses
The official VIES VAT number validation SOAP API is used for validating VAT numbers.
First, install the bundle using Composer.
composer require ibericode/vat-bundle
Then, load the bundle by adding it to your config/bundles.php
file.
Ibericode\Vat\Bundle\VatBundle::class => ['all' => true]
Check out ibericode/vat for direct usage examples. This bundle adds service configuration & a validation constraint for VAT numbers.
With this bundle enabled, you can use dependency injection to retrieve a class instance for the Countries
, Validator
, Rates
or Geolocator
classes.
use Ibericode\Vat\Countries;
use Ibericode\Vat\Validator;
use Ibericode\Vat\Rates;
use Ibericode\Vat\Geolocator;
class MyController
{
/**
* Type-hint the class on your service constructors to retrieve a class instance
*/
public function __construct(
Rates $rates,
Validator $validator,
Countries $countries,
Geolocator $geolocator
)
{
$rates->getRateForCountry('NL'); // 21.00
$validator->validateVatNumber('NL123456789B01'); // false
$countries->isCountryCodeInEU('US') // false
$geolocator->locateIpAddress('8.8.8.8'); // US
}
}
To validate a VAT number using Symfony's Validation component, you can use the VatNumber
constraint.
use Ibericode\Vat\Bundle\Validator\Constraints\VatNumber;
class Customer
{
/**
* @VatNumber()
*/
public $vatNumber;
}
MIT licensed. See the LICENSE file for details.