Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Vatin Bundle Laravel Package

ddeboer/vatin-bundle

Symfony bundle integrating ddeboer/vatin. Validates EU VAT ID (VATIN) format via Symfony Validator and can optionally verify existence via the VIES SOAP service. Also exposes services for direct VATIN validation and VIES lookups.

View on GitHub
Deep Wiki
Context7

VATIN bundle

Packagist Version

A Symfony bundle for the VATIN library.

Installation

This library is available on Packagist:

composer require ddeboer/vatin-bundle

Then add the bundle to your application:

// app/AppKernel.php
public function registerBundles()
{
    return [
        ...
        new Ddeboer\VatinBundle\DdeboerVatinBundle(),
        ...
    ];
}

Usage

Validate number format

Use the validator to validate a property on your models.

use Ddeboer\VatinBundle\Validator\Constraints\Vatin;

class Company
{
    #[Vatin]
    protected string $vatNumber;

Symfony’s validator will now check whether $vatNumber has a valid VAT number format. For more information, see Symfony’s documentation.

Validate number existence

Additionally, you can check whether the VAT number is in use:

    use Ddeboer\VatinBundle\Validator\Constraints\Vatin;

    #[Vatin(checkExistence=true)]
    protected string $vatNumber;

The validator will now check the VAT number against the VAT Information Exchange System (VIES) SOAP web service. This service’s availability is rather unreliable, so it’s a good idea to catch the case where it’s unreachable:

use Symfony\Component\Validator\Exception\ValidatorException;

try {
    if ($validator->isValid()) {
        // Happy flow
    }
} catch (ValidatorException $e) {
    // VAT could not be validated because VIES service is unreachable
}

Using the services directly

You can also use this bundle’s services directly. Validate a VAT number’s format:

$validator = $container->get('ddeboer_vatin.vatin_validator');
$bool = $validator->isValid('NL123456789B01');

Additionally, check whether the VAT number is in use:

$bool = $validator->isValid('NL123456789B01', true);

To interact with the VIES webservice:

$vies = $container->get('ddeboer_vatin.vies.client');
$checkVatResponse = $vies->checkVat('NL', '123456789B01');

More information

For more information, see the VATIN library’s documentation.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle
dmstr/api-platform-utils-bundle
dmstr/api-configuration-bundle
chrisdev/ux-components
baks-dev/finances
emuniq/filament-browser-notifications
syriable/filament-translator
hungnm28/livewire-form
wenprise/eloquent
crudly/encrypted
fadion/bouncy
cuci/prototurk-sdk
gos/pubsub-router-bundle
cuci/prototurk-sdk-symfony
clementtalleu/easyadmin-markdown-bundle