## TL;DR

Stripe validates EU VAT IDs against the VIES system in real time, and rejects malformed or unregistered numbers. Show the customer the specific validation failure, let them correct the number inline, and fall back to charging VAT if they cannot provide a valid ID. Never let a hard validation error silently drop the sale.

## Error

```text
```text
The tax ID provided is invalid: EU VAT ID verification failed
```
```

## Steps

1. Surface the validation error next to the tax ID field with guidance on the expected format (country prefix plus digits).
   Expected: The customer can self-correct common typos.
2. Let the customer retry the number inline without losing checkout state.
   Expected: Fixable typos do not cost you the sale.
3. If VIES itself is down or slow, offer to complete checkout with VAT charged and reconcile the ID later.
   Expected: A government service outage does not block revenue.
4. On success, store the validated tax ID on the customer for future invoices.
   Expected: Repeat purchases skip validation friction.
5. Log validation failures by country to spot format confusion (e.g. prefix included vs not).
   Expected: Your form hints improve with real data.

## When to use

- Checkout rejects a VAT ID
- B2B customers cannot complete purchase with their tax ID
- You need VIES validation behavior explained

## When not to use

- Tax fails for missing address (different input)
- You need reverse-charge invoice setup (validation is just step one)
- Non-EU tax IDs (different verification systems)

## Compatibility

Stripe Checkout and Tax ID APIs; EU VAT VIES validation. Checkout tax_id_collection setting.

## Variant phrasings

### ### Stripe VAT ID validation VIES failed

### ### tax_id invalid Stripe checkout

### ### EU VAT number rejected Stripe

## Root cause

Stripe checks the number both syntactically and against the live VIES registry, because an unchecked ID would let anyone self-declare VAT exemption. Most failures are typos or numbers not yet registered; a few are VIES outages, which is why the fallback path matters.

## Edge cases

- Newly issued VAT IDs can take days to appear in VIES; the customer is right and the registry is stale
- Some customers include the country prefix, some do not: normalize before validating
- UK VAT IDs validate against a separate UK system post-Brexit, not VIES

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_fDgJpU6eAPx63k65mU4wZg
