You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. Pin Stripe API version to 2026-04-22.dahlia
2. Read current_period_start/end from items.data[0] (Stripe ≥2025-08-27) with top-level fallback
3. Dead-letter protection: track attempts; dead-letter at ≥5, skip rollback, return 200 to Stripe
4. Per-family event ordering guards: separate lastSubscriptionEvent* / lastInvoiceEvent* fields
5. Fail-closed for paused/unpaid/incomplete_expired status in meter mode
6. Refund backfill: fetch PaymentIntent when stripeSessionId missing from charge metadata
7. Integer-cents math for refund proportional calculation (no IEEE 754 drift)
8. Stable extras checkout idempotency key via optional intentId parameter
9. Server-side active-sub guard in createCheckout via live stripe.subscriptions.list call
0 commit comments