Billing8 min read

Stripe Delivers. Your Custom Email Doesn't.

If you disabled Stripe receipts and replaced them with your own branded email, you probably lost inbox placement. Not your fault — Stripe spent a decade building the reputation you now have to replicate.

A common sequence: you launch, charge via Stripe, customers get auto-receipts from receipt@stripe.com. Then marketing says "we want branded receipts", engineering switches off Stripe's receipts, ships a custom template frombilling@yourapp.com. Three weeks later finance forwards you ten tickets: customers saying they never got their receipt, accounting complaining about reconciliation, a few disputes escalating because the customer forgot what they paid for.

You did not regress product quality. You traded a sender with ten years of reputation, dedicated IP pools, and per-recipient engagement history for a new From-address that every spam filter treats as a brand-new voice.

Why Stripe receipts just work

  • Reputation. stripe.com sends billions of transactional emails per year with very low complaint rates. Filters learned to trust it.
  • Recipient familiarity. Half your customers have received Stripe mail from a previous merchant. Gmail remembers per-recipient engagement.
  • Clean authentication. SPF, DKIM, DMARC are correct, aligned, and published. The reply-to routing makes sense.
  • Mature template. Plain, text-dominant, single link, predictable structure. Trained to look receipt-like by ten years of provider fingerprinting.
Branded receipts are usually not worth it

Ask yourself: does the marginal brand lift from your own HTML template outweigh 5-15% of receipts missing? For most companies below 1M ARR, keep Stripe receipts, brand the product, and ship custom receipts only once you have authenticated infrastructure that measurably matches Stripe's placement.

What breaks when you switch

Three failure modes, in order of frequency:

  1. Content fingerprint. Your custom template has a big header image, one CTA button, no plain-text part. Looks like promo, files as promo.
  2. Missing authentication. You send through an ESP that signs with its own DKIM, but your DMARC policy requires alignment. Fail.
  3. New subdomain, no warm-up. billing.yourapp.com has zero sending history. Providers apply conservative placement until reputation accumulates.

Measuring the gap

Send the same receipt to the same seed mailbox twice: once via Stripe, once via your custom flow. Compare folder placement. This is the clearest A/B signal you will ever get.

# Test 1: Stripe receipt
stripe checkout sessions create \
  --success-url="..." \
  --customer-email="seed-gmail@check.live-direct-marketing.online" \
  --payment-method-types="card" \
  --line-items=... \
  --receipt-email="seed-gmail@check.live-direct-marketing.online"

# Test 2: Your custom receipt
curl -X POST https://yourapp.com/api/test/receipt \
  -H 'Content-Type: application/json' \
  -d '{"email":"seed-gmail@check.live-direct-marketing.online","amount":4900}'

# Compare placement across providers
curl https://check.live-direct-marketing.online/api/check/compare \
  -d '{"labels":["stripe-receipt","custom-receipt"]}'

What the comparison usually shows

Typical result from early-stage SaaS flipping to custom receipts:

  • Gmail: Stripe 98% inbox, Custom 72% inbox (18% Promotions, 10% Spam).
  • Outlook: Stripe 96% inbox, Custom 68% inbox (32% Junk).
  • Yahoo: Stripe 97% inbox, Custom 81% inbox.
  • iCloud: Stripe 99% inbox, Custom 74% inbox.

That 20-30 point gap is the cost of replacing mature infrastructure with a brand-new identity. It closes over time — but you have to do the work.

Closing the reputation gap

  1. Dedicated subdomain for receipts only. receipts.yourapp.com. Do not mix with marketing (mail.) or notifications (notify.). Separate reputations.
  2. Authenticate strictly. v=spf1 include:mailgun.org -all, DKIM selector published, DMARC p=quarantine; adkim=s. Strict alignment matters for receipts because they are sensitive and filters know it.
  3. Template structurally identical to Stripe. Plain layout, text-heavy, one link, signature with physical address and support email. No hero image. No marketing upsell. No "Congrats on your purchase! Follow us!" section.
  4. Warm up gradually. Start at low volume for the first two weeks, mix with engaged recipients, scale up. If you ship 10,000 receipts on day 1 from a new identity, you will trip rate-based filters.
Test receipts every release

Finance-critical mail is not something to "ship and forget". Wire a placement check into your billing CI. If a template change drops Gmail placement below 90%, the deploy should fail.

→ Run the free Inbox Placement Test

When to keep Stripe receipts anyway

Even with perfect infrastructure, sometimes dual-sending is the right call:

  • Regulated industries. Fintech, healthcare. Keep Stripe receipt for audit trail, send your own branded confirmation as a separate "thanks for your purchase" email.
  • Multi-currency or tax-complex jurisdictions. Stripe's receipt format handles VAT / GST lines correctly. Your custom template probably does not.
  • Chargeback defense. Stripe receipt in the customer's inbox is useful evidence in disputes.

FAQ

Can I just send receipts through Postmark and call it done?

Postmark helps with infrastructure quality (dedicated IPs, strict acceptance policies) but does not substitute for your domain reputation, DMARC alignment, and template fingerprint. It is necessary, not sufficient.

Does the amount or currency affect placement?

Not directly, but long receipts with multiple line items, VAT calculations, and refund links tend to contain more text which helps classification. Very short receipts look thin and score worse.

Should I include a PDF attachment?

PDF receipts are fine but add a small spam score. If you must attach, keep the PDF small, use a predictable filename, and ensure the HTML body also contains the receipt info in text form so the email is readable without opening the PDF.

How long until a new billing domain warms up?

Three to eight weeks of steady sending to engaged recipients, depending on volume and content. A good rule: reach Stripe's placement rate within six weeks if you follow the authentication and template rules here.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required