jairforo/php-vat-checker

PHP VAT checker based on the European Commission web service
4,674 1
Install
composer require jairforo/php-vat-checker
Latest Version:3.0.0
PHP:^7.3
License:BSD-2-Clause
Last Updated:Jan 8, 2025
Links: GitHub  ·  Packagist
Maintainer: jairforo

PHP VAT Checker

Latest Version Build Status StyleCI Total Downloads

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

martian/spammailchecker

A laravel package that protect users from entering non-existing/spam email addre...

2,397 43
jekk0/laravel-iso3166-validation-rules

Laravel/Lumen validation rules for validate country codes (ISO3166-1)

105,367 2
kharanenka/oc-model-custom-validation-message

Trait help to set custom message for model validation

63 3
okaybueno/validation

Validation as Service for Laravel applications.

4,797 0
codezero/laravel-unique-translation

Check if a translated value in a JSON column is unique in the database.

1,101,358 188