PHPackages                             tigron/skeleton-vat-check - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tigron/skeleton-vat-check

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

tigron/skeleton-vat-check
=========================

Tigron Skeleton VAT check

v2.1.6(1mo ago)03212MITPHP

Since Mar 30Pushed 1mo ago4 watchersCompare

[ Source](https://github.com/tigron/skeleton-vat-check)[ Packagist](https://packagist.org/packages/tigron/skeleton-vat-check)[ RSS](/packages/tigron-skeleton-vat-check/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (10)Dependencies (8)Versions (21)Used By (0)

skeleton-vat-check
==================

[](#skeleton-vat-check)

Description
-----------

[](#description)

Check Vat number with separate resolvers (these are the default steps):

1. Is european (always performed not configurable)
2. Syntax via a predefined regex array (list available in config)
3. Caching table (to check if there were recent results for KBO and VIES + avoid taxing the API when not needed)
4. VIES service check

Installation
------------

[](#installation)

Installation via composer:

```
composer require tigron/skeleton-vat-check

```

Howto setup
-----------

[](#howto-setup)

Run the initial migration or executed the following queries

```
CREATE TABLE `vat_check_cache` (
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`vat_number` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
	`country_id` int(11) NOT NULL,
	`valid` int(11) NOT NULL DEFAULT '0',
	`created` datetime NOT NULL,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

$transaction = new \Transaction_Cleanup_Vat_Check_Cache();
$transaction->classname = 'Cleanup_Vat_Check_Cache';
$transaction->data = null;
$transaction->retry_attempt = 0;
$transaction->recurring = 1;
$transaction->completed = 0;
$transaction->failed = 0;
$transaction->locked = 0;
$transaction->parallel = 0;
$transaction->scheduled_at = date('Y-m-d H:i:s');
$transaction->created = date('Y-m-d H:i:s');
$transaction->save();

```

How to use
----------

[](#how-to-use)

```
/**
 * the VAT number to check
 */
$vat_number = '0886776275';

/**
 * The Country object.
 * Your object should implement the \Skeleton\Vat\Check\Country Interface
 */
$country = $your_country_object;

/**
 * The resolver used to give you the result, passed by reference and the
 * resolver_used can be retrieved after calling the validate method
 */
$resolver_used = '';

/**
 * Perform the call
 */
\Skeleton\Vat\Check\Check::validate($vat_number, $country, $resolver_used)

```

Optional config
---------------

[](#optional-config)

```
By default the validator will do these steps:
1. Is european (always performed not configurable)
2. Syntax via a predefined regex array (list available in config)
3. Caching table (to check if there were recent results for KBO and VIES + avoid taxing the API when not needed)
4. VIES service checkCheck Syntax, check recent cache (for API results) and Check against Vies.

It is now possible to change the order of these steps and it is possible to do an aditional step against the KBO (requires authentication).

/**
* Example config
*/
\Skeleton\Vat\Check\Config::set_resolvers([
	new \Skeleton\Vat\Check\Resolver\Syntax(),
	new \Skeleton\Vat\Check\Resolver\Cache(),
	new \Skeleton\Vat\Check\Resolver\Kbo(), // Not used by default
	new \Skeleton\Vat\Check\Resolver\Vies()
]);

/**
* Example auhtentication
*/
\Skeleton\Vat\Check\Config::$kbo_authentication = [
	'user' => 'test@tigron.be',
	key' => 'test_key'
];

```

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance90

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~156 days

Recently: every ~362 days

Total

20

Last Release

49d ago

Major Versions

v0.1.7 → v2.0.02020-01-16

v0.1.8 → 2.x-dev2020-09-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/8bff1383483dacb0c3f89d2d3856ae03d4cf3e80de26a2998248dd1175317285?d=identicon)[tigron](/maintainers/tigron)

---

Top Contributors

[![SanderTigron](https://avatars.githubusercontent.com/u/45229883?v=4)](https://github.com/SanderTigron "SanderTigron (3 commits)")[![christopheg](https://avatars.githubusercontent.com/u/199087?v=4)](https://github.com/christopheg "christopheg (3 commits)")[![RoanB](https://avatars.githubusercontent.com/u/77972728?v=4)](https://github.com/RoanB "RoanB (2 commits)")[![gerryd](https://avatars.githubusercontent.com/u/3003371?v=4)](https://github.com/gerryd "gerryd (2 commits)")[![LionelLaffineur](https://avatars.githubusercontent.com/u/21120913?v=4)](https://github.com/LionelLaffineur "LionelLaffineur (1 commits)")[![davidvandemaele](https://avatars.githubusercontent.com/u/1914033?v=4)](https://github.com/davidvandemaele "davidvandemaele (1 commits)")[![SanderVanKeer](https://avatars.githubusercontent.com/u/10955678?v=4)](https://github.com/SanderVanKeer "SanderVanKeer (1 commits)")

### Embed Badge

![Health badge](/badges/tigron-skeleton-vat-check/health.svg)

```
[![Health](https://phpackages.com/badges/tigron-skeleton-vat-check/health.svg)](https://phpackages.com/packages/tigron-skeleton-vat-check)
```

###  Alternatives

[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k496.1k33](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3661.2M46](/packages/tencentcloud-tencentcloud-sdk-php)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751284.3k37](/packages/civicrm-civicrm-core)[roundcube/roundcubemail

The Roundcube Webmail suite

7.0k1.4k3](/packages/roundcube-roundcubemail)[spatie/laravel-export

Create a static site bundle from a Laravel app

672139.5k6](/packages/spatie-laravel-export)[nfse-nacional/nfse-php

This is my package nfse

1523.1k](/packages/nfse-nacional-nfse-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
