Paste a Stripe webhook event (checkout.session.completed, payment_intent.succeeded, etc.) and get accurate TypeScript types in your browser. No signup, no upload.
Stripe webhook events all share the outer Event envelope (id, type, data.object, livemode, etc.) but the data.object payload changes per event type. Typing the outer envelope once is easy; the hard part is keeping data.object aligned with the dozens of inner shapes (Checkout Session, Payment Intent, Subscription, Invoice, etc.). Pasting a real event from your Stripe Dashboard's webhook log gives you a TypeScript interface that matches the exact event you received — including optional fields, nullable values, and metadata you actually use.
Use these types in your webhook handler to narrow event.type === 'checkout.session.completed' and get full autocomplete for the inner Session fields. Paired with a runtime guard (or Stripe's own SDK), they catch shape drift before it reaches production. The official @stripe/stripe-node SDK ships its own types, but generated types from the live payload are useful when you only consume a subset of fields, want a stable shape across SDK versions, or need to share the type with a non-Node consumer.