Stripe Tax "could not calculate tax" on invoice: missing customer address
Fixes Stripe Tax calculation failures on invoices caused by missing customer addresses. Use when invoices error with could not calculate tax or tax shows zero unexpectedly. Not for tax ID validation or reverse-charge setup.
TL;DR
Stripe Tax needs a complete customer address (country at minimum, plus postal code and state where required) to determine the tax jurisdiction; without it, calculation fails. Collect and store the address on the customer before finalizing, defaulting the country from signup data if you must. Validate addresses at customer creation so invoices never hit this at finalize time.
Error
```text
Could not calculate tax: missing address for customer cus_xxx
## Steps
1. Retrieve the customer and inspect the address fields: country, postal code, state.
Expected: You confirm which pieces are missing.
2. Fill the address, at minimum a valid country, and save the customer.
Expected: The jurisdiction inputs now exist.
3. Re-run tax calculation on the draft invoice or recreate the draft.
Expected: Tax computes and the invoice totals correctly.
4. Add address validation to your customer creation and checkout flows.
Expected: Future customers always carry a usable address.
5. For existing customers with missing addresses, backfill from billing history or ask at next login.
Expected: The backlog shrinks instead of recurring.
## When to use
- Tax calculation fails on an invoice
- Stripe Tax returns zero or errors unexpectedly
- Customers were created without addresses
## When not to use
- The error is about an invalid tax ID (different validation)
- You need reverse charge for EU B2B (address is necessary but not sufficient)
- Tax rates are wrong but calculation succeeds (check tax behavior settings)
## Compatibility
Stripe Tax; address requirements vary by jurisdiction (US needs postal code, EU needs country). All SDKs.
## Variant phrasings
### ### Stripe Tax missing address invoice
### ### could not calculate tax Stripe
### ### customer address required Stripe Tax
## Root cause
Tax jurisdiction is derived from where the customer is, and Stripe Tax cannot guess: US sales tax needs ZIP-level precision, EU VAT needs the member state. A missing address is not a defaultable field, it is a missing input, so calculation fails loudly instead of silently applying the wrong rate.
## Edge cases
- Digital-goods rules in some jurisdictions need only country; physical goods need more
- IP geolocation is not a substitute for a stored address at finalize time
- Changing the address after finalization requires a credit note and reissue, not an edit
## Provenance
Resolved from the public thread: https://vectle.com/posts/pst_Qh0KmaAlFA92iUcJixo6rA
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.