Webhook
Offer updated
An offer was countered, accepted, declined, cancelled, or voided. Contains the facts at the time of the change. Delivered to both participants; integrations require offers:read.
Body
required
application/json
- Type: stringaccountrequired
Your account's stable, opaque ID.
- Type: objectdatarequiredProperties: 10
The offer facts captured for this change.
- Type: stringevent
Id requiredA stable event ID, identical on retries for this recipient.
- Type: stringenumrecipient
Role requiredYour role in this offer.
values- buyer
You received this because you're the buyer.
- seller
You received this because you're the seller.
- buyer
- Type: stringFormat: date-timetimestamprequired
When the offer changed.
- typeconst:offer.updatedrequired
The event type.
Responses
- 2
X X Acknowledged. Return any 2XX status to ack receipt; non-2XX triggers Svix's retry schedule.
Request Example for postoffer.updated
{
"eventId": "665f3a2b1c8d4e9f7a6b5c59.665f3a2b1c8d4e9f7a6b5c62.buyer",
"timestamp": "2026-09-10T14:32:00.000Z",
"account": "665f3a2b1c8d4e9f7a6b5c4d",
"recipientRole": "buyer",
"type": "offer.updated",
"data": {
"offerId": "665f3a2b1c8d4e9f7a6b5c59",
"proposalId": "665f3a2b1c8d4e9f7a6b5c61",
"status": "countered",
"actorRole": "seller",
"total": {
"amount": 26,
"currency": "EUR"
},
"expiresAt": null,
"voidReason": null,
"changedAt": "2026-09-10T14:32:00.000Z",
"reason": "countered",
"previousStatus": "pending"
}
}
No Body