
stripe smart retry
Stripe Smart Retry: How It Works & When It Runs
Stripe Smart Retry is an automated payment retry system that uses machine learning to re-attempt failed recurring payments at algorithmically determined times, maximizing recovery rates while minimizing customer disruption.
How Stripe Smart Retry Works
When a subscription payment fails, Stripe's Smart Retry logic evaluates the decline code, issuer response, and historical payment patterns to schedule retry attempts. The system operates automatically for all Stripe Billing subscriptions without requiring manual configuration. Smart Retry applies to both initial invoice payments and recurring subscription charges.
The retry schedule adapts based on the specific failure reason. For temporary issues like insufficient_funds or card_velocity_exceeded, Stripe typically retries within hours to days. For permanent failures such as card_declined with issuer instruction not to retry, the system may skip automatic retries entirely. Stripe does not publicly disclose the exact retry intervals, as the machine learning model continuously optimizes timing based on aggregated success data across millions of transactions.
Retry Schedule and Timing
Stripe performs up to four automatic retry attempts over approximately three weeks for failed subscription payments. The first retry typically occurs within 24 hours, followed by additional attempts spaced several days apart. The exact timing varies based on the decline code and payment history patterns.
Between retry attempts, the subscription remains active unless configured otherwise through dunning settings. Customers retain access to services during the retry period, though the invoice status shows as unpaid in the Stripe Dashboard. Each retry attempt generates a new payment_intent.payment_failed webhook event if unsuccessful.
Decline Codes and Retry Behavior
Smart Retry responds differently to specific decline codes. The system immediately retries try_again_later responses, which indicate temporary processor issues. For insufficient_funds declines, retries spread across multiple days to allow customers time to add funds. Card authentication failures (card_error with authentication_required) trigger immediate retry attempts with 3D Secure prompts.
Permanent failures such as fraudulent, lost_card, or stolen_card bypass Smart Retry entirely. Stripe marks these payment methods as blocked and sends email notifications requesting updated payment information. The system also respects issuer-specific retry instructions embedded in decline responses, adhering to card network guidelines that prevent excessive retry attempts.
Configuring Retry Behavior
While Smart Retry operates automatically, subscription settings allow customization of retry-adjacent behavior. The collection_method parameter set to charge_automatically enables Smart Retry, while send_invoice requires manual customer payment and disables automatic retries.
Subscription schedules support billing_thresholds that define when to cancel subscriptions after failed payments. Setting pending_invoice_item_interval controls invoice finalization timing, affecting when Smart Retry initiates. The payment_behavior parameter determines whether subscriptions remain active during retry periods—default_incomplete cancels immediately on failure, while allow_incomplete maintains service access.
Webhook Events and Monitoring
Smart Retry generates distinct webhook events throughout the retry lifecycle. Each retry attempt triggers invoice.payment_action_required or payment_intent.payment_failed depending on the outcome. When retries exhaust without success, Stripe sends invoice.payment_failed and optionally customer.subscription.deleted if configured to cancel.
Monitoring these events enables custom retry logic or customer communication workflows. The attempt_count field in Payment Intent objects tracks how many retries have occurred, allowing systems to intervene before final failure. Integration with Stripe's next_payment_attempt timestamp on invoices provides visibility into scheduled retry timing.
Impact on Subscription Revenue
Industry estimates suggest Smart Retry recovers 30–50% of initially failed subscription payments, though actual recovery rates vary by business model, price point, and customer demographics. Higher-value subscriptions often see lower recovery rates as failures more frequently result from intentional cancellations rather than temporary issues.
The retry window extends revenue recognition timing, as payments may succeed days or weeks after the original billing date. This impacts cash flow forecasting and requires reconciliation between billing period starts and actual payment receipt dates. Subscriptions using metered billing or usage-based pricing accumulate charges during retry periods, potentially increasing the final invoice amount when payment succeeds.
Related
Free diagnostic
See exactly what's happening in your Stripe account
Connect your Stripe account and get a breakdown of every failed payment — which ones can be retried, which ones need customer outreach, and how much is recoverable. Takes 5 minutes. No credit card required until we recover $49.
Run free diagnostic