Stripe · api · fg-0157
Webhook event payloads have a different shape than the objects your upgraded Stripe SDK returns
event.data.object still carries fields your SDK types say were removed, or lacks new ones
Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100
Cause
Every webhook endpoint keeps the API version it was created with, and Stripe renders snapshot events in that version. Raising the SDK or its pinned apiVersion leaves the endpoint where it was.
Fix
Create a second endpoint on the new api_version with a distinguishing query string, process both in parallel while you switch code, then disable the old one. Thin events avoid versioning altogether.
Apply
curl https://api.stripe.com/v1/webhook_endpoints -u "$STRIPE_SECRET_KEY:" \ -d url="https://example.com/webhooks?v=endive" \ -d "enabled_events[]=checkout.session.completed" \ -d api_version=2026-09-30.endive
Affects: All Stripe snapshot webhook endpoints, at every major release: basil 2025-03-31, clover 2025-09-30, dahlia 2026-03-25, endive 2026-09-30
Sources
Have your agent know this before it fails
claude mcp add --transport http footgun https://getfootgun.com/api/mcp