amondi-media / laravel-evatr
Laravel package for validating German and EU VAT identification numbers using the official German Federal Central Tax Office (Bundeszentralamt für Steuern) online service
Installs: 94
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:laravel-package
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- illuminate/http: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- illuminate/validation: ^10.0|^11.0
This package is auto-updated.
Last update: 2025-07-10 10:10:08 UTC
README
Laravel package for validating German and EU VAT identification numbers using the official German Federal Central Tax Office (Bundeszentralamt für Steuern) online service
Requirements
- PHP 8.1 or higher
- Laravel 10.x or 11.x
- Guzzle HTTP Client
Installation
You can install the package via composer:
composer require AmondiMedia/laravel-evatr
The package will automatically register its service provider.
Usage
Validation Rule
You can use the VAT validation rule in your validation rules:
use AmondiMedia\VatValidator\Rules\ValidVatNumber; $rules = [ 'vat_number' => ['required', new ValidVatNumber()], ];
Using the Validation Rule Extension
You can also use the validation rule extension:
$rules = [ 'vat_number' => ['required', 'valid_vat_number'], ];
The validation rule extension also supports validating country code and VAT number separately:
$rules = [ 'country_code' => ['required', 'string', 'size:2'], 'vat_number' => ['required', 'valid_vat_number:country_code,vat_number'], ];
Configuration
The package uses the German eVatR service by default. You can publish the configuration file:
php artisan vendor:publish --provider="AmondiMedia\VatValidator\Providers\VatValidatorServiceProvider"
This will create a vat_validator.php
file in your config directory.
Environment Configuration
Add the following variable to your .env
file:
EVATR_REQUESTER_VAT_ID=DE123456789
EVATR_REQUESTER_VAT_ID
: Your German VAT identification number (Umsatzsteuer-Identifikationsnummer) that will be used as the requester in the eVatR API calls.
The package also includes these default configurations:
- API URL: https://evatr.bff-online.de/
- Request timeout: 10 seconds
License
GNU General Public License. Please see License File for more information.