Skip to content

Xenia Connect API (1.0.1)

Situ's API for seamless integration with Situ's workflow.

Download OpenAPI description
Overview
Situ Technical Support
Languages
Servers
Mock server
https://docs.xenia.staysitu.com/_mock/xenia-connect/spec/
Production
https://api-xenia.staysitu.com/
Sandbox
https://api-xenia-cisandbox.staysitu.com/

Bookings

Bookings are the next step in the booking journey after an enquiry has been created. Bookings are created when a quote is accepted by the client.

Webhooks

Enquiries

Enquiries are the start point in the booking journey. Providing as much information as possible upfront about an enquiry will increase its conversion rate and reduce touchpoints. We are constantly looking for what we can add to our set of information to make our process easier for everybody. If you have any suggestions get in contact!

OperationsWebhooks

Quotes

Quotes are the 2nd stage of the booking journey. Quotes are created when a specialist has found properties that match the enquiry requirements and send shortlisted properties to the client.

OperationsWebhooks

Sandbox Operations

Operations that only exist within the sandbox environment. These are not available in production. You can use these operations to trigger state changes in the sandbox environment to test your webhooks and other operations.

Operations

Webhook Operations

Manage your webhooks with this set of operations. The maximum limit for webhooks per environment is 5. If you need more than this please contact us.

Operations

Get all webhooks

Request

Get all webhooks for the current environment.

Security
apiKey
curl -i -X GET \
  https://docs.xenia.staysitu.com/_mock/xenia-connect/spec/external-api/v1/webhooks \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

A list of webhooks.

Bodyapplication/json
dataArray of objects(webhookObject)

A list of webhooks

Response
application/json
{ "data": [ {}, {} ] }

Create a new webhook

Request

Create a new webhook for Xenia to send events to.

Security
apiKey
Bodyapplication/jsonrequired
descriptionstringrequired

A description of the webhook. This is for your own reference and will not be used by Situ.

Example: "Webhook for new enquiries"
eventsArray of strings(webhookEvent)

The events to subscribe to. This is a list of events that will trigger the webhook. You may subscribe to multiple events. If left empty, all events will be sent.

Items Enum"ENQUIRY.CREATED""ENQUIRY.SPECIALIST_ASSIGNED""ENQUIRY.SHORTLISTING""ENQUIRY.CLOSED""ENQUIRY.REOPENED""ENQUIRY.QUOTED""QUOTE.CREATED""QUOTE.INVALIDATED""BOOKING.PENDING""BOOKING.CLIENT_CONFIRMATION_DETAILS_SENT"
Example: ["ENQUIRY.CREATED"]
urlstring(uri)required

The URL to send the webhook to. Xenia will send a POST request to this URL with the event data in the body. The URL must be unique.

Example: "https://example.com/webhook"
curl -i -X POST \
  https://docs.xenia.staysitu.com/_mock/xenia-connect/spec/external-api/v1/webhooks \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "description": "Webhook for new enquiries",
    "events": [
      "ENQUIRY.CREATED",
      "ENQUIRY.CLOSED"
    ],
    "url": "https://example.com/webhook"
  }'

Responses

The created webhook object.

Bodyapplication/json
dataobject(webhookObject)
Response
application/json
{ "data": { "description": "Webhook for new enquiries", "events": [], "id": "123e4567-e89b-12d3-a456-426614174000", "url": "https://example.com/webhook" } }

Delete a webhook

Request

Delete a webhook by ID.

Security
apiKey
Path
idstring(uuid)required

The ID of the webhook.

Example: 123e4567-e89b-12d3-a456-426614174000
curl -i -X DELETE \
  https://docs.xenia.staysitu.com/_mock/xenia-connect/spec/external-api/v1/webhooks/123e4567-e89b-12d3-a456-426614174000 \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

No content, the webhook was successfully deleted.

Response
No content

Get a webhook

Request

Get a webhook by ID.

Security
apiKey
Path
idstring(uuid)required

The ID of the webhook.

Example: 123e4567-e89b-12d3-a456-426614174000
curl -i -X GET \
  https://docs.xenia.staysitu.com/_mock/xenia-connect/spec/external-api/v1/webhooks/123e4567-e89b-12d3-a456-426614174000 \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

The webhook object.

Bodyapplication/json
dataobject(webhookObject)
Response
application/json
{ "data": { "description": "Webhook for new enquiries", "events": [], "id": "123e4567-e89b-12d3-a456-426614174000", "url": "https://example.com/webhook" } }

Update a webhook

Request

Update an existing webhook.

Security
apiKey
Path
idstring(uuid)required

The ID of the webhook.

Example: 123e4567-e89b-12d3-a456-426614174000
Bodyapplication/jsonrequired
descriptionstringrequired

A description of the webhook. This is for your own reference and will not be used by Situ.

Example: "Webhook for new enquiries"
eventsArray of strings(webhookEvent)

The events to subscribe to. This is a list of events that will trigger the webhook. You may subscribe to multiple events. If left empty, all events will be sent.

Items Enum"ENQUIRY.CREATED""ENQUIRY.SPECIALIST_ASSIGNED""ENQUIRY.SHORTLISTING""ENQUIRY.CLOSED""ENQUIRY.REOPENED""ENQUIRY.QUOTED""QUOTE.CREATED""QUOTE.INVALIDATED""BOOKING.PENDING""BOOKING.CLIENT_CONFIRMATION_DETAILS_SENT"
Example: ["ENQUIRY.CREATED"]
urlstring(uri)required

The URL to send the webhook to. Xenia will send a POST request to this URL with the event data in the body. The URL must be unique.

Example: "https://example.com/webhook"
curl -i -X PUT \
  https://docs.xenia.staysitu.com/_mock/xenia-connect/spec/external-api/v1/webhooks/123e4567-e89b-12d3-a456-426614174000 \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE' \
  -d '{
    "description": "Webhook for new enquiries",
    "events": [
      "ENQUIRY.CREATED",
      "ENQUIRY.CLOSED"
    ],
    "url": "https://example.com/webhook"
  }'

Responses

The updated webhook object.

Bodyapplication/json
dataobject(webhookObject)
Response
application/json
{ "data": { "description": "Webhook for new enquiries", "events": [], "id": "123e4567-e89b-12d3-a456-426614174000", "url": "https://example.com/webhook" } }

Get webhook signature verification public key

Request

Get the public key used to verify webhook signatures. Use this key to verify that webhook payloads are authentically from Situ by validating the X-Signature header against the webhook body using HMAC-SHA256.

Security
apiKey
curl -i -X GET \
  https://docs.xenia.staysitu.com/_mock/xenia-connect/spec/external-api/v1/webhook-verification-key \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

The public key for webhook signature verification.

Bodyapplication/json
dataobject(webhookPublicKeyObject)required

The public key object for webhook signature verification.

data.​publicKeystringrequired

The public key in base64 format used to verify webhook signatures.

Example: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1234..."
data.​algorithmstringrequired

The algorithm used for signature generation.

Example: "HMAC-SHA256"
data.​keyFormatstringrequired

The format of the public key.

Example: "base64"
Response
application/json
{ "data": { "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1234...", "algorithm": "HMAC-SHA256", "keyFormat": "base64" } }