In the Stripe Dashboard billing settings, configure the retry schedule specifying the number of retry attempts and days between each attempt
Set the subscription behavior on final failure to either cancel or leave unpaid depending on your business policy
Configure customer emails to be sent at each retry stage using the built-in dunning email templates or disable them if using your own email system
Create a test clock in the Stripe API with a frozen time representing the subscription renewal date
Advance the test clock by the configured retry intervals to verify each retry attempt fires and the invoice status transitions correctly
Test the payment_intent.payment_failed and invoice.payment_failed webhook events to confirm your downstream dunning logic executes
Known gotchas
Smart retries use Stripe's ML-based optimal time selection; the custom schedule acts as a maximum retry cadence, not an override of smart timing
Test clocks only work with objects created under that clock; do not mix real customer objects with test clock objects
The subscription.updated webhook fires on status changes during dunning; ensure your subscription status sync logic handles intermediate statuses like past_due without canceling too aggressively
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp