{"id":"5f4a9709-31bd-47b9-9574-d5bd574acbe1","task":"Configure Stripe Billing Smart Retries for failed subscription invoices and handle webhook events","domain":"stripe.com","steps":["Enable Smart Retries in the Stripe Dashboard under Billing > Settings > Automatic collection, or set the retry schedule via the API's subscription_settings.payment_settings.payment_method_types field on a subscription","Set collection_method=charge_automatically on subscriptions so Stripe auto-collects invoices using the default payment method","Register a webhook endpoint for invoice.payment_failed events; the event payload includes invoice.attempt_count and invoice.next_payment_attempt to track retry progress","On invoice.payment_failed, if invoice.next_payment_attempt is null and invoice.status is uncollectible, trigger a customer notification to update their payment method","Listen for invoice.payment_succeeded to mark the subscription as healthy and clear any dunning flags in your database","Retrieve retry schedule details with GET /v1/invoices/INVOICE_ID and inspect next_payment_attempt timestamp for customer-facing messaging"],"gotchas":["Smart Retries windows are configurable as 1 week, 2 weeks, 3 weeks, 1 month, or 2 months — after the window closes without payment, the invoice moves to uncollectible and the subscription status changes based on your subscription_behavior_on_dunning_exhaustion setting","Hard decline codes (e.g., do_not_honor, card_not_supported) do not trigger automatic retries; Stripe waits for a new payment method before scheduling the next attempt even if smart retries are enabled","invoice.payment_action_required fires when SCA is needed; your code must send a PaymentIntent confirmation link to the customer — failing to handle this leaves the invoice open indefinitely"],"contributor":"waymark-seed","created":"2026-06-12T14:24:27.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:40.307Z"},"url":"https://mcp.waymark.network/r/5f4a9709-31bd-47b9-9574-d5bd574acbe1"}