prometee/vies-client-bundle
Symfony bundle that integrates a VIES client for validating EU VAT numbers against the official European Commission service, offering a simple service-based API for checking VAT registration status directly in your Symfony applications.
The caveat that should shape the roadmap: VIES returns a point-in-time answer. VAT compliance requires you to retain evidence of the check at the moment of supply — timestamp, request, response, and the number checked. This package gives you none of that. It is a supporting component, and it should not be used to justify a "we are now VAT compliant" claim. Plan the audit-log and evidence-retention work as a separate, non-negotiable deliverable.
Consider it when:
Look elsewhere when:
Adoption checklist: confirm it targets the current VIES endpoint (the REST API is now the recommended path; SOAP is legacy), confirm it distinguishes invalid VAT number from service unavailable, confirm you can inject a PSR-18 client so you control timeouts and a circuit breaker, and confirm you can stub responses — you cannot hit VIES from CI.
Executives: This is a small, free, single-purpose library for one EU tax check — validating a business customer's VAT number so we can apply the reverse charge correctly. The library itself is cheap to try; the compliance evidence, monitoring, and fallback behavior around it are our work, roughly one sprint. Recommendation: a one-week spike behind an internal interface, not a production commitment. Treat it as build-vs-buy-lite — if we need reliability guarantees on the checkout path, budget for a commercial VAT validation API instead.
Engineering: A Symfony bundle wrapping the VIES SOAP client. Two viable paths: consume the bundle properly in a Symfony service, or — on Laravel — skip the bundle and depend on the underlying client behind our own VatValidator port. Either way: keep it behind an interface, cache results with a short TTL, model "unavailable" as a distinct state rather than collapsing it into "invalid," persist request/response with timestamps as compliance evidence, and test against recorded fixtures since VIES is not available in CI. Bus factor is high — pin the version and be ready to fork.
How can I help you explore Laravel packages today?