Start with Stripe Checkout, not custom
Hosted Checkout handles PCI, 3DS, Apple Pay, Google Pay and 30 local payment methods for free. Building your own card form is months of work for zero competitive advantage.
Webhooks are not optional
Don't trust the redirect after payment — users close the tab, networks drop. The webhook (checkout.session.completed, invoice.paid, customer.subscription.deleted) is your source of truth. Verify the signature, every time.
Handle failed payments properly
Stripe's Smart Retries handle most card declines automatically. But you need email flows for the rest — dunning, grace periods, downgrade-on-fail. Skipping this loses 5–10% of recurring revenue silently.
Tax: use Stripe Tax
VAT, sales tax, GST — different rates in every country and US state. Stripe Tax is $0.50 per transaction and handles all of it. Building it yourself is a six-month project that's never quite right.
What we set up on every project
Stripe Checkout, Stripe Tax, webhook handler with idempotency keys, dunning emails, a customer portal for self-serve cancellation. Half a day's work — saves you everything else.