Weave 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

Vat Bundle Laravel Package

ibericode/vat-bundle

Symfony bundle wrapping the ibericode/vat library to validate EU VAT numbers against the official VIES service. Check VAT IDs, retrieve registered company details, and add reliable, framework-friendly VAT validation to any Symfony application. Supports all EU member states.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on EU VAT logic. VAT number validation (VIES) and VAT rate lookup are commodity problems with well-known edge cases: VIES SOAP downtime, per-country rate changes, reverse-charge rules, and "valid format but unregistered" numbers. This package lets you buy that logic (MIT, no vendor lock-in) instead of owning a maintenance burden that produces zero differentiation.
  • B2B checkout and self-serve signup scope. Directly supports decisions like: do we validate VAT IDs at registration or at first invoice? Do we apply reverse charge automatically when a valid VAT ID is supplied? Do we store validation timestamps and consultation numbers for audit defense?
  • Roadmap for EU expansion. A VAT lookup layer is a prerequisite capability for geo-based pricing, VAT-inclusive vs. VAT-exclusive display, invoicing/receipts, and marketplace-seller onboarding (lightweight KYC). Each of those becomes a smaller epic once this exists.
  • Pricing and packaging. Enables tax-inclusive display per country and correct gross-vs-net revenue reporting, which feeds pricing experiments and margin analysis.
  • Failure-mode policy (a real product decision, not an engineering one). Because VIES is frequently unavailable, you must decide the UX: hard-block checkout on validation failure, soft-pass with deferred re-validation, or queue-and-reconcile. This package surfaces that question early rather than at launch.
  • Deprioritization signal. With ~20 stars and zero dependents, this is not a de-risked, widely-adopted integration. Treat it as a thin convenience wrapper, not a strategic dependency — which argues for keeping the abstraction seam thin so it can be swapped.

When to Consider This Package

Consider it when:

  • You are on Symfony and want DI-configured access to ibericode/vat without writing your own service definitions, caching decorators, and HTTP client wiring.
  • You sell (or plan to sell) B2B into the EU and need VIES validation plus VAT rate lookup in one dependency.
  • You want MIT-licensed, self-hosted tax logic with no per-call vendor fees and no data leaving your infrastructure beyond the VIES call itself.
  • Your tax needs are EU-scoped and display/validation-only — you are not filing returns or computing jurisdiction-complex line-item tax.

Look elsewhere when:

  • You are on Laravel. This is a Symfony bundle (Symfony\Bundle-style DI extension). It will not drop into a Laravel app. The realistic path is depending on ibericode/vat directly and writing a ~50-line service provider plus a cache decorator — roughly a day of work, and you keep Laravel-native config, facades, and testing idioms. Budget that as the actual adoption cost, not composer require of this bundle.
  • You need a tax engine, not a lookup. Avalara, Stripe Tax, or TaxJar if you need product tax categories, US/global nexus, filing, or an SLA. VIES returns a validity flag and a rate; it is not a calculation engine and does not indemnify you.
  • You need availability guarantees. VIES has no SLA. If checkout correctness depends on it, plan for caching, async re-validation, and a documented fallback — this package does not provide those policies, only the transport.
  • You weigh community signal heavily. Zero dependents and a small star count mean limited field-testing. Mitigate with your own integration tests against recorded VIES responses plus a live smoke test in staging.
  • You're not on PHP. Obvious, but worth stating in a roadmap doc — cross-language parity means picking a different library per runtime.

How to Pitch It (Stakeholders)

To executives: This is a small, free (MIT) open-source component that handles EU VAT number validation and rate lookup — the plumbing behind B2B reverse-charge invoicing. It removes a recurring compliance maintenance cost from our roadmap for near-zero spend, and it unblocks EU expansion, tax-correct pricing display, and marketplace-seller onboarding. The strategic risk is low because it is a thin wrapper over a public EU service; there is no vendor contract and no lock-in.

To engineering: Two things to be explicit about. First, this is a Symfony bundle, not a Laravel package — so for our stack we should adopt ibericode/vat directly and wrap it in a service provider, keeping the interface narrow (one VatValidator contract) so the underlying implementation is replaceable. Second, VIES is unreliable by design: we need caching by VAT number with TTL, a documented behavior when VIES is down (recommend: soft-pass with persisted pending status and a queued re-check), and logging of the consultation reference for audit. Estimated effort: ~1–2 days including tests; treat the wrapper as ours, the library as a swappable detail.

Decision requested: Approve adoption of ibericode/vat (not the Symfony bundle) behind an internal interface, and approve a written policy for checkout behavior during VIES outages — that policy, not the library choice, is the thing that will actually generate support tickets.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums