Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validation failed for valid VAT numbers #136

Closed
sunkaflek opened this issue Feb 15, 2021 · 8 comments
Closed

Validation failed for valid VAT numbers #136

sunkaflek opened this issue Feb 15, 2021 · 8 comments
Assignees
Labels

Comments

@sunkaflek
Copy link

Hi,
I encountered several cases, where the library returns false negatives (invalid vat while VIES web service returns valid):

FR45497709824
NL001439542B97

Am I doing anything wrong?

Thank you

Screenshot 2021-02-15 at 18 05 00

Screenshot 2021-02-15 at 18 05 34

Screenshot 2021-02-15 at 18 05 55

@nils-m
Copy link

nils-m commented Mar 24, 2021

It is probably the Vies::validateVatSum() method that return false negatives.
Either bypass DragonBe Vies for those numbers or just comment if (!$this->validateVatSum($countryCode, $vatNumber)) {.....} statement in the vendor ... Yes it's very ugly but this error is very annoying.

@DragonBe DragonBe added the bug label Apr 3, 2021
@DragonBe DragonBe self-assigned this Apr 3, 2021
@krzaczek
Copy link
Collaborator

@sunkaflek I can't reproduce this bug. What version of library are You using ?

<?php

require './vendor/autoload.php';

$vies = new \DragonBe\Vies\Vies();

$result = $vies->validateVat(
    'NL',
    '001439542B97',
    'FR',
    '45497709824'
);

Both VAT numbers pass checksum validation test and are valid in Vies.

print_r($result->toArray());

Response:

Array
(
    [countryCode] => NL
    [vatNumber] => 001439542B97
    [requestDate] => 2021-12-21
    [valid] => 1
    [name] => HAMMINGA INSTALLATIESERVICE
    [address] => 
WAGNERLAAN 00016
9603AT HOOGEZAND

    [identifier] => WAPIAAAAX3cV7iHA
    [nameMatch] => 
    [companyTypeMatch] => 
    [streetMatch] => 
    [postcodeMatch] => 
    [cityMatch] => 
)

returns true

@krzaczek krzaczek self-assigned this Dec 21, 2021
@sunkaflek
Copy link
Author

@krzaczek Ah ok, this seems to be the problem. I have now tested installing latest release using composer require dragonbe/vies (that installs 2.2.0). This version does have the bug I mentioned above.

But if I download the latest zipped code directly from github and use that way, the bug is gone. So I guess it has been fixed in some commit after 2.2.0 but has not been released as a new version yet?

In my opinion this is quite a serious bug, I'd say it's worth a release.

@krzaczek
Copy link
Collaborator

@sunkaflek Yes You are right. I will look into changes on the master branch, and will do my best to make a patch release today with the fix.

@krzaczek
Copy link
Collaborator

krzaczek commented Dec 21, 2021

@sunkaflek the only change I see is a fix for 32 bit architectures and this was done in a both NL and FR validator here. What platform are You having issues on ?

7b10c4c

@sunkaflek
Copy link
Author

@krzaczek It is 32bit PHP 7.4.4 so sounds like this could be it

@krzaczek
Copy link
Collaborator

@sunkaflek i'm upgrading the code to support PHP 8.1. When this is done there will be a new 2.3.0 release - hopefully today

@krzaczek
Copy link
Collaborator

@sunkaflek sorry for the delay. This has been released in 2.3.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants