Stripe · received 18 Oct 2026, 17:05:16 IST
Payment received · ₹550 from Ishaan · Assam CTC, 1 kg
Held safelyThe message arrived in a new layout
Stripe changed the layout of its messages, and Chai & Co. still expects the old one, so it couldn't read this one. It's kept safe here and can be sent again once that's fixed.
Is it really from Stripe?
Yes. Its signature matched, so it really came from Stripe.
What happened on each try
- Try 1 · Bad Request (400)The app turned it away, and sending the same thing again won't help, so it is held safely.
What changed since the last one that worked
data.object.customeraddeddata.object.customer.idaddeddata.object.customer_idremoved
Send it again
Holdfast first checks it is genuine and hasn't already been delivered.
For your developer
Stripe now sends data.object.customer.id instead of data.object.customer_id, and the app still reads the old field. Read the new one (or accept both), deploy, then resend the held events.
Cause payload_changed
The raw message
Headers
- Accept-Encoding
- gzip
- Content-Length
- 339
- Content-Type
- application/json; charset=utf-8
- Stripe-Signature
- t=1792323316,v1=19ef111706256ec08e744d956a0b571ee23509e49f622c380c192a64bd4b6323
- User-Agent
- Stripe/1.0 (+https://stripe.com/docs/webhooks) holdfast-demo
Body
{
"id": "evt_3at7al8j9c95u",
"object": "event",
"type": "payment_intent.succeeded",
"created": 1792323316,
"livemode": false,
"data": {
"object": {
"id": "pi_1nt429a208jxi",
"object": "payment_intent",
"amount": 55000,
"currency": "inr",
"customer": {
"id": "cus_28kdsnorjxi7g"
},
"status": "succeeded",
"metadata": {
"customer_name": "Ishaan",
"item": "Assam CTC, 1 kg"
}
}
}
}
Last answer from Chai & Co.
{"error":"missing required field customer_id"}