Mock a Stripe webhook payload
A GET mock that returns a Stripe-shaped payment_intent.succeeded event, ready to feed into your webhook handler.
Returns a ready-made event — feed it straight into your own handler.
Response payload
{
"id": "evt_1QsErTLl2dK9Nqi7",
"object": "event",
"type": "payment_intent.succeeded",
"created": {{now.unix}},
"data": {
"object": {
"id": "pi_3QsErTLl2dK9Nqi71m2XvBnR",
"object": "payment_intent",
"amount": 4999,
"currency": "usd",
"status": "succeeded"
}
}
}
Fields worth knowing
| Field | What it means |
|---|---|
| id | A synthetic event ID — Stripe's real IDs follow the same evt_... shape but are never reused. |
| type | The event type your handler switches on; change it to trigger a different code path. |
| created | Unix timestamp of the event, generated fresh on every call via {{now.unix}}. |
| data.object.amount | The charge amount in minor units (cents) — 4999 means $49.99. |
| data.object.status | The payment_intent status; edit the response body to test other states like requires_action. |
Create the mock
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{
"method": "GET",
"response_status": 200,
"content_type": "application/json",
"response_body": "{\"id\":\"evt_1QsErTLl2dK9Nqi7\",\"object\":\"event\",\"type\":\"payment_intent.succeeded\",\"created\":{{now.unix}},\"data\":{\"object\":{\"id\":\"pi_3QsErTLl2dK9Nqi71m2XvBnR\",\"object\":\"payment_intent\",\"amount\":4999,\"currency\":\"usd\",\"status\":\"succeeded\"}}}"
}'
Call it
curl https://quickmock.dev/m/<slug>
What you get
GET /m/<slug> -> 200 a Stripe-style payment_intent.succeeded event
data.object.amount is in minor units (cents)
How this differs from the real thing
This is a static event trimmed down from a real Stripe payload — no Stripe-Signature header, no live objects behind the IDs. Use it to shape your handler's parsing logic, not to test signature verification.
Ready to use it?
Pairs well with this guide: Test a webhook receiver