Loading…
Developing and investigating subscription data flow
Hidetaka Okamoto
- Source
- Stripe
- Published
- Added to Yomu
Summary
The article presents Stripe Sandboxes as isolated environments for developing and investigating subscription systems without affecting production data or settings. It explains how to create subscriptions, inspect dashboard actions through Workbench, and review API requests, JSON resource data, and webhook events such as customer.subscription.created and invoice.created. Test Clocks allow developers to advance time and examine subscription cancellation behavior, including the customer.subscription.deleted event after a scheduled cancellation. Workbench’s Shell tab, API Explorer, and Print SDK Request feature support testing requests in the browser and converting them into implementation code, while the article stresses testing plan changes, trial expirations, cancellations, and payment failures.
Context
Developing a robust subscription system requires testing successful flows alongside trial periods, plan changes, cancellations, payment failures, and integration changes after trial periods end. Separate environments also prevent unrelated test data, operations, and logs from being mixed together or affecting production.
Approach / What changed
Use Stripe Sandboxes to create clean, disposable test environments, then create subscriptions and inspect their API calls and events in Workbench. Use Test Clocks to advance subscription time, and use the Shell tab, API Explorer, and Print SDK Request to test requests and generate application code.
Takeaways
- A single Stripe account can create up to five Sandboxes, each isolated from production with its own API keys, webhook settings, customer data, and other configuration.
- Workbench exposes subscription resource JSON, dashboard and API activity, request bodies, and emitted events, including customer.subscription.created and invoice.created.
- Test Clocks can advance time beyond a subscription period so scheduled cancellation behavior and the resulting customer.subscription.deleted event can be examined.