Webhooks
Configure webhook endpoints for order, booking, availability, and product updates
To use this capability, add octo/webhooks to your Octo-Capabilities header.
All paths below are shown under /octo.
This capability lets you configure outbound HTTP webhooks for:
order_updatebooking_updateavailability_updateproduct_update
Webhook Object
All webhook CRUD endpoints return the same object shape.
capabilities come from the Octo-Capabilities header on create/update requests, not from request body fields. For order_update, octo/cart is always included automatically.
From capability octo/webhooks.
Event value.
booking.updatedFully-qualified URL.
https://www.city-sightseeing.comWhether use contact language is enabled.
trueWhether retry on error is enabled.
trueSuccessful response
From capability octo/webhooks.
Webhook identifier.
webhook_booking_updateEvent value.
booking.updatedFully-qualified URL.
https://www.city-sightseeing.comList of capability values.
["octo/pricing","octo/offers","octo/waivers"]Whether use contact language is enabled.
trueWhether retry on error is enabled.
truePOST /octo/webhooks HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 154
{
"event": "booking.updated",
"url": "https://www.city-sightseeing.com",
"useContactLanguage": true,
"headers": {
"X-Webhook-Secret": "abc123"
},
"retryOnError": true
}Successful response
{
"id": "webhook_booking_update",
"event": "booking.updated",
"url": "https://www.city-sightseeing.com",
"capabilities": [
"octo/pricing",
"octo/offers",
"octo/waivers"
],
"useContactLanguage": true,
"headers": {
"X-Webhook-Secret": "abc123"
},
"retryOnError": true
}Create a webhook.
Webhook identifier.
webhook_booking_updateFrom capability octo/webhooks.
Event value.
booking.updatedFully-qualified URL.
https://www.city-sightseeing.comWhether use contact language is enabled.
trueWhether retry on error is enabled.
trueSuccessful response
From capability octo/webhooks.
Webhook identifier.
webhook_booking_updateEvent value.
booking.updatedFully-qualified URL.
https://www.city-sightseeing.comList of capability values.
["octo/pricing","octo/offers","octo/waivers"]Whether use contact language is enabled.
trueWhether retry on error is enabled.
truePATCH /octo/webhooks/{webhookId} HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 154
{
"event": "booking.updated",
"url": "https://www.city-sightseeing.com",
"useContactLanguage": true,
"headers": {
"X-Webhook-Secret": "abc123"
},
"retryOnError": true
}Successful response
{
"id": "webhook_booking_update",
"event": "booking.updated",
"url": "https://www.city-sightseeing.com",
"capabilities": [
"octo/pricing",
"octo/offers",
"octo/waivers"
],
"useContactLanguage": true,
"headers": {
"X-Webhook-Secret": "abc123"
},
"retryOnError": true
}Update an existing webhook.
Same fields as Create Webhook, but all are optional.
capabilities are recalculated from the request Octo-Capabilities header every time you update.
Successful response
From capability octo/webhooks.
Webhook identifier.
webhook_booking_updateEvent value.
booking.updatedFully-qualified URL.
https://www.city-sightseeing.comList of capability values.
["octo/pricing","octo/offers","octo/waivers"]Whether use contact language is enabled.
trueWhether retry on error is enabled.
trueGET /octo/webhooks HTTP/1.1
Host: api.ventrata.com
Accept: */*
Successful response
[
{
"id": "webhook_booking_update",
"event": "booking.updated",
"url": "https://www.city-sightseeing.com",
"capabilities": [
"octo/pricing",
"octo/offers",
"octo/waivers"
],
"useContactLanguage": true,
"headers": {
"X-Webhook-Secret": "abc123"
},
"retryOnError": true
}
]List webhooks for the authenticated connection.
Webhook identifier.
webhook_booking_updateFrom capability octo/webhooks.
Fully-qualified URL.
https://www.city-sightseeing.comEvent value.
booking.updatedSuccessful response
Whether success is enabled.
trueMessage value.
Deleted successfully.DELETE /octo/webhooks/{webhookId} HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 68
{
"url": "https://www.city-sightseeing.com",
"event": "booking.updated"
}Successful response
{
"success": true,
"message": "Deleted successfully."
}From capability octo/webhooks.
Fully-qualified URL.
https://www.city-sightseeing.comEvent value.
booking.updatedSuccessful response
Whether success is enabled.
trueMessage value.
Deleted successfully.DELETE /octo/webhooks HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 68
{
"url": "https://www.city-sightseeing.com",
"event": "booking.updated"
}Successful response
{
"success": true,
"message": "Deleted successfully."
}Provide url as a query parameter or request body field.
Outbound Delivery Payloads
When a webhook is delivered to your URL, the HTTP method is always POST.
webhook Fields
webhook is the same Webhook Object shown above.
supplier Fields
If additional capabilities are active on the webhook, supplier may include more fields added by those capabilities.
diff[] Fields
diff is emitted for order_update, booking_update, and product_update.
Event Object Serialization
The event object payloads use the same serializer methods as the corresponding API endpoints, with the webhook's stored capabilities activated first:
orderuses the same serialized shape asGET /orders/:orderId.bookinguses the same serialized shape asGET /bookings/:uuid.productuses the same serialized shape asGET /products/:productId.availabilityuses one serialized item fromGET /availability.
This means capability-specific fields (for example content/pricing/extras/questions fields) are included in webhook payloads the same way they appear in those endpoint responses.
When octo/cardPayments is active, webhook delivery serialization suppresses card payment session payload generation, so detailed cardPayment payloads are not emitted.
Schema Additions (JSON)
These are additive fragments showing only fields introduced by this capability.
Webhook
WebhookDeleteByUrlRequest
WebhookDiffOperation
WebhookEventPayload
WebhookRequest
Last updated