Going Live and Operating Payments
Going-live checklist
- [ ] Business details, bank account and identity verification completed in Stripe
- [ ] Live secret key and webhook secret in production environment variables only
- [ ] Live webhook endpoint created for the exact events you handle
- [ ] Prices and products recreated in live mode (test objects do not carry over)
- [ ] Amounts converted with
to_minor_units; currencies correct - [ ] Webhooks verified, idempotent and fast; fulfilment tested end to end
- [ ] Refund policy, terms and privacy policy published
- [ ] Receipts enabled; tax settings decided
- [ ] Rate limits on checkout endpoints; Radar rules reviewed
- [ ] Alerts on webhook failures
Monitoring
- The dashboard's webhook page shows failed deliveries; fix and resend them.
- Log every payment-related event with Stripe IDs for support and audits.
- Alert on webhook signature failures (possible attack or wrong secret) and fulfilment errors.
Reconciliation
Periodically compare your orders table with Stripe's payments and payouts (the Balance and Payouts reports). Differences reveal missed webhooks or bugs. A nightly job that checks recent paid Checkout Sessions against your orders catches problems early.
Marketplaces: Stripe Connect
If your platform pays other people (sellers, freelancers), use Stripe Connect to onboard them as connected accounts and split payments. It handles their identity verification and payouts, which you must not do by collecting their bank details yourself.
Common mistakes
| Mistake | Consequence |
|---|---|
| Granting access on the success page | free products for anyone with the URL |
| Taking prices from the browser | customers set their own prices |
int(amount * 100) |
off-by-one-cent charges; JPY charged 100× |
| No webhook signature check | attackers fake "payment succeeded" |
| Not handling duplicates | double fulfilment, double emails |
| Test keys in production | payments never actually taken |
Final project
Build complete payments for a digital-products store: one-time Checkout purchases with server-side prices, subscriptions with trials and the customer portal, verified idempotent webhooks driving fulfilment and access, refunds and dispute handling, automatic tax in test mode, a nightly reconciliation job and a going-live checklist completed for your app.
Check yourself
- What must be recreated when switching to live mode?
- How does reconciliation catch missed webhooks?
- When do you need Stripe Connect?
進捗はこのブラウザーにのみ保存されます。
レビューに提出(10 ポイント)