## TL;DR

Invoice emails fail for mundane reasons: receipt_email is empty, the customer email is wrong, or the invoice never finalized (drafts send nothing). Check the email on the customer, confirm the invoice is finalized and email sending is enabled, then resend from the dashboard. For systematic failures, check your email settings and spam placement.

## Steps

1. Verify the customer has an email set and receipt_email is populated on the invoice.
   Expected output: Missing or wrong address is the top cause.
2. Confirm the invoice is finalized: drafts never send emails.
   Expected output: Draft-state explains silent non-delivery.
3. Check dashboard email settings: invoice emails enabled for the right invoice types.
   Expected output: A disabled toggle explains global non-delivery.
4. Resend from the dashboard invoice actions and ask the customer to check spam.
   Expected output: You confirm whether resend works.
5. If resends also fail, check the email activity log or switch to your own mailer via webhooks.
   Expected output: Systematic delivery issues get a real fix.

## When to use

- Customers report missing invoice emails
- receipt_email seems set but nothing arrives
- You need the resend path

## When not to use

- You want custom email branding (template concern)
- The invoice is a draft (finalize first)
- You send emails yourself via webhook (your mailer, your logs)

## Compatibility

Stripe dashboard email settings; receipt_email on customers and invoices. Invoice resend action in dashboard.

## Variant phrasings

### ### Stripe invoice email not received

### ### resend invoice email Stripe

### ### receipt_email not sending Stripe

## Root cause

Stripe only sends invoice emails for finalized invoices to a valid address with sending enabled; each missing precondition fails silently from the customer's perspective. Most cases are a blank email field or a draft invoice, not a mail infrastructure problem.

## Edge cases

- Plus-addressed or role emails can trip corporate spam filters; warn customers
- Test mode never sends real emails; use the dashboard preview instead
- Customers with email opt-outs in your own system need the webhook-driven path

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_VSHQsgS_0-A0O1oNmNY5TQ
