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
activebooleanOptional

Whether active is enabled.

Example: true
apiKeystringOptional

Api key value.

Example: api_live_ventrata_123456
apiKeysstring[]Optional

List of api key values.

Example: ["api_live_ventrata_123456"]
useContactLanguagebooleanOptional

Whether use contact language is enabled.

Example: true
retryOnErrorbooleanOptional

Whether retry on error is enabled.

Example: true
Responses
chevron-right
200

Successful response

application/json
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
activebooleanOptional

Whether active is enabled.

Example: true
apiKeystringOptional

Api key value.

Example: api_live_ventrata_123456
apiKeysstring[]Optional

List of api key values.

Example: ["api_live_ventrata_123456"]
useContactLanguagebooleanOptional

Whether use contact language is enabled.

Example: true
retryOnErrorbooleanOptional

Whether retry on error is enabled.

Example: true
Responses
chevron-right
200

Successful response

application/json
patch
/webhooks/{webhookId}
200

Successful response

Update an existing webhook.

Request Body

Same fields as Create Webhook, but all are optional.

capabilities are recalculated from the request Octo-Capabilities header every time you update.

Response 200

Returns the updated Webhook Object.

List Webhooks

get
Responses
chevron-right
200

Successful response

application/json
get
/webhooks
200

Successful response

List webhooks for the authenticated connection.

Response 200

Array of Webhook Object.

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
chevron-right
200

Successful response

application/json
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
chevron-right
200

Successful response

application/json
delete
/webhooks
200

Successful response

Provide url as a query parameter or request body field.

Parameters

200 OK with empty body.

Trigger Webhook

post
Path parameters
webhookIdstringRequired

Webhook identifier.

Example: webhook_booking_update
Body

From capability octo/webhooks.

productIdstringOptional

Product identifier.

Example: e7cc8bb4-8d1c-4848-8824-5dbedb718681
optionIdstringOptional

Option identifier.

Example: 94cdd032-3d32-416d-b0a4-abf8b7495b8b
availabilityIdsstring[]Optional

List of availability identifiers.

Example: ["2026-05-14T09:00:00-04:00","2026-05-15T09:00:00-04:00"]
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
orderRecordStatestringOptional

Order record state value.

Example: order_record_state-example
productRecordStatestringOptional

Product record state value.

Example: product_record_state-example
Responses
chevron-right
200

Successful response

application/json
post
/webhooks/{webhookId}/trigger
200

Successful response

Trigger delivery using the webhook's configured event.

Request Body By Event

orderRecordState and productRecordState are optional compressed/base64 record snapshots used to build a JSON Patch diff.

For availability_update, the same filtering/modifier parameters accepted by GET /availability are accepted here.

availability_update Nested units[] Parameters

For availability_update, one trigger call may produce multiple outbound webhook deliveries (one per serialized availability). Past availabilities are skipped unless historical mode is enabled for the connection.

Trigger Response

Response body is empty.

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, trigger 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

WebhookTriggerRequest

Last updated