diff --git a/src/Vies/Validator/ValidatorLV.php b/src/Vies/Validator/ValidatorLV.php index d8c5520..70d0cb5 100644 --- a/src/Vies/Validator/ValidatorLV.php +++ b/src/Vies/Validator/ValidatorLV.php @@ -19,7 +19,6 @@ * * Range: * C1 ... C11 Numeric from 0 to 9 - * C1 > 3 * * Rules: * C11 @@ -40,8 +39,9 @@ public function validate(string $vatNumber): bool return false; } - if ((int)$vatNumber[0] <= 3) { - return false; + // Differentiate between legal entities and natural bodies. For the latter, there is a simpler check + if (preg_match('/^[0-3]/', $vatNumber)) { + return preg_match('/^[0-3]\d[0-1]\d/', $vatNumber) == 1; } $weights = [9, 1, 4, 8, 3, 10, 2, 5, 7, 6]; diff --git a/tests/Vies/Validator/ValidatorLVTest.php b/tests/Vies/Validator/ValidatorLVTest.php index 2593770..e241b05 100644 --- a/tests/Vies/Validator/ValidatorLVTest.php +++ b/tests/Vies/Validator/ValidatorLVTest.php @@ -19,6 +19,7 @@ public function vatNumberProvider() { return [ ['40003009497', true], + ['10038010132', true], ['40013009497', false], ['40003009496', false], ['1234567890', false],