githubEdit

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_update

  • booking_update

  • availability_update

  • product_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.

Create Webhook

post
Body

From capability octo/webhooks.

eventstringOptional

Event value.

Example: booking.updated
urlstring · uriOptional

Fully-qualified URL.

Example: https://www.city-sightseeing.com
useContactLanguagebooleanOptional

Whether use contact language is enabled.

Example: true
retryOnErrorbooleanOptional

Whether retry on error is enabled.

Example: true
Responses
post
/webhooks
200

Successful response

Create a webhook.

Update Webhook

patch
Path parameters
webhookIdstringRequired

Webhook identifier.

Example: webhook_booking_update
Body

From capability octo/webhooks.

eventstringOptional

Event value.

Example: booking.updated
urlstring · uriOptional

Fully-qualified URL.

Example: https://www.city-sightseeing.com
useContactLanguagebooleanOptional

Whether use contact language is enabled.

Example: true
retryOnErrorbooleanOptional

Whether retry on error is enabled.

Example: true
Responses
patch
/webhooks/{webhookId}
200

Successful response

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.

List Webhooks

get
Responses
get
/webhooks
200

Successful response

List webhooks for the authenticated connection.

Delete Webhook

delete
Path parameters
webhookIdstringRequired

Webhook identifier.

Example: webhook_booking_update
Body

From capability octo/webhooks.

urlstring · uriOptional

Fully-qualified URL.

Example: https://www.city-sightseeing.com
eventstringOptional

Event value.

Example: booking.updated
Responses
delete
/webhooks/{webhookId}
200

Successful response

Webhook By URL

delete
Body

From capability octo/webhooks.

urlstring · uriOptional

Fully-qualified URL.

Example: https://www.city-sightseeing.com
eventstringOptional

Event value.

Example: booking.updated
Responses
delete
/webhooks
200

Successful response

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:

  • order uses the same serialized shape as GET /orders/:orderId.

  • booking uses the same serialized shape as GET /bookings/:uuid.

  • product uses the same serialized shape as GET /products/:productId.

  • availability uses one serialized item from GET /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