jairforo/php-vat-checker
PHP VAT Checker
A PHP package that helps you to check information about Union European companies through the combination of VAT number and Country code. This package is an interface to consume the SOAP API webservice provided by the European Commission. (http://ec.europa.eu/taxation_customs/vies/checkVatTestService.wsdl)
Installation
You can install the package via composer:
composer require jairforo/php-vat-checker
Usage
Checking the VAT information.
This check only validates whether the VAT information is valid.
use JairForo\VATChecker\Exceptions\VATCheckerException;
use JairForo\VATChecker\VATChecker;
try {
/** @var bool $isValid */
$isValid = (new VATChecker())->isValid($countryCode, $vatNumber);
} catch (VATCheckerException $exception) {
// Something went wrong during the request.
}
Obtaining the VAT information.
- If the information is not valid, an InvalidVATException is thrown.
- If something goes wrong during the request, an VATCheckerException is thrown.
use JairForo\VATChecker\Exceptions\InvalidVATException;
use JairForo\VATChecker\Exceptions\VATCheckerException;
use JairForo\VATChecker\Objects\VATResponse;
use JairForo\VATChecker\VATChecker;
try {
/** @var VATResponse $vatResponse */
$vatResponse = (new VATChecker())->check($countryCode, $vatNumber);
print_r($vatResponse);
} catch (VATCheckerException $exception) {
if ($exception instanceof InvalidVATException) {
// The VAT information was invalid.
return;
}
// Something else went wrong during the request.
}
The above, when successful, prints the following output:
{
"country_code": "NL",
"vat_number": "611989431B01",
"requested_at": {
"date": "2020-02-02 00:00:00.000000",
"timezone_type": 1,
"timezone": "+00:00"
},
"company_name": "UNICORN B.V.",
"address": "UNICORN STREET 007",
"zipcode": "1108DH",
"city": "AMSTERDAM",
"original_address": "UNICORN STREET 007 1108DH AMSTERDAM"
}
Testing
composer test
Contributing
Please see CONTRIBUTING for details.
License
The BSD 2-clause "Simplified" license (bsd-2-clause). Please see License File for more information.
Related Packages
A laravel package that protect users from entering non-existing/spam email addre...
Laravel/Lumen validation rules for validate country codes (ISO3166-1)
Trait help to set custom message for model validation
Check if a translated value in a JSON column is unique in the database.