A Symfony bundle for for validating VAT identification numbers (VATINs) based on VATINValidator PHP library.
This bundle is available on Packagist.
You can install this bundle using composer
$ composer require ricardonavarrom/vatin-validator-bundle
or add the package to your composer.json file directly.
After you have installed the package, you just need to add the bundle to your AppKernel.php file:
// in AppKernel::registerBundles()
$bundles = array(
// ...
new ricardonavarrom\VATINValidatorBundle\VATINValidatorBundle(),
// ...
);
VATINValidatorBundle requires no initial configuration to get you started.
The configured validator is available as ricardonavarrom.vatin_validator service. You must assign a valid locale (view availables locales section).
$locale = 'es';
$vatin = '56475114V';
$validator = $container->get('ricardonavarrom.vatin_validator');
$vatinIsValid = $validator->validate($vatin, $locale);
Another option is to use a located validator service as ricardonavarrom.vatin_validator.es (view availables locales section).
$vatin = '56475114V';
$locatedValidator = $container->get('ricardonavarrom.vatin_validator.es');
$vatinIsValid = $locatedValidator->validate($vatin);
Locale | Country | Local name |
---|---|---|
es | Spain | Número de Identificación Fiscal (for freelancers or singular persons), Número de Identidad de Extranjero (for foreigners) or Código de Identificación Fiscal (for companies) |
pt | Portugal | Número de identificação fiscal (for freelancers or singular persons) or Número de Identificação de Pessoa Colectiva (for companies) |
We are working to implement more availables locales. |
VATINValidatorBundle provides the following constraints:
Constraint | Country | Options |
---|---|---|
VATINEsConstraint | Spain | message: string (default: 'The VATIN "%vatin%" is not a valid "%validationModality%".'). allowLowerCase: boolean (default: true). validationModality: 'NIF', 'NIE' or 'CIF' (by default checks in all validation modalities). |
VATINPtConstraint | Portugal | message: string (default: 'The VATIN "%vatin%" is not a valid "%validationModality%".'). validationModality: 'NIF' or 'NIPC' (by default checks in all validation modalities). |
For example: |
// src/AppBundle/Entity/Customer.php
namespace AppBundle\Entity;
use ricardonavarrom\VATINValidatorBundle\Validator\Constraints\VATINEsConstraint;
class Customer
{
/**
* @VATINEsConstraint(
* allowLowerCase = false,
* validationModality = "NIF"
* )
*/
private $vatin;
}