Webhooks

A collection of requests that PORTA will make to a supplier's webhook service.

Hold availability for bookingWebhook POST

A hold availability request is sent when a customer adds an item to their cart before payment. A successful response means the availability is guaranteed for the hold_duration value decided in the supplier's contract.

Request endpoint: POST {supplier_url}/hold

SecurityWebhook
Request
header Parameters
accept-version
required
string (PORTA webhook version)

The version of PORTA for the webhook request.

Value: Description
vnd.porta-webhook-api.v1

Version 1.0.0

x-webhook-key
required
string (Webhook key)

The key which allows the PORTA to access the supplier's webhook service.

Request Body schema: application/json
experience_id
required
string^(?!\-|\.|\_)[0-9a-z\-\.\_]{1,50}$

The experience ID.

expiration_time
required
string <date-time>

When the hold availability request can expire, based on the agreed upon hold_duration value.

The value for this property must be in the local time for the experience with no time zone information, following the ISO 8601 standard.

hold_id
required
string <uuid>

The ID of the hold availability request.

option_id
required
string^(?!\-|\.|\_)[0-9a-z\-\.\_]{1,50}$

The option ID.

pickup_id
string^(?!\-|\.|\_)[0-9a-z\-\.\_]{1,50}$

The pickup ID, if any.

required
Array of objects unique

An array of the requested holder categories and their quantities.

slot_id
required
string^(?!\-|\.|\_)[0-9a-z\-\.\_]{1,50}$

The availability slot ID.

Responses
200

Hold availability request accepted

400

Bad request

Request samples
application/json
{
  • "experience_id": "string",
  • "expiration_time": "2024-04-22T12:42:37+0000",
  • "hold_id": "4ce991bb-2101-434c-985c-39697d3f31c4",
  • "option_id": "string",
  • "pickup_id": "string",
  • "quantities": [
    ],
  • "slot_id": "string"
}
Response samples
application/json
{
  • "hold_id": "string",
  • "transaction_id": "string"
}

Confirm bookingWebhook POST

This request is sent after a customer has successfully created an order for the Musement catalog.

Request endpoint: POST {supplier_url}/booking

SecurityWebhook
Request
header Parameters
accept-version
required
string (PORTA webhook version)

The version of PORTA for the webhook request.

Value: Description
vnd.porta-webhook-api.v1

Version 1.0.0

x-webhook-key
required
string (Webhook key)

The key which allows the PORTA to access the supplier's webhook service.

Request Body schema: application/json
booking_id
required
string

The ID of the booking to confirm.

required
Array of objects unique

An array of items for the booking.

hold_id
required
string

The ID of the availability hold request made when a customer added the item to cart.

required
object

Information about the lead booker.

tuimm_booking_id
required
string^MUS[0-9]+?_[0-9]+?$

This property contains Musement booking information.

The value consists of two IDs separated by an underscore. The first ID, consisting of MUS and numbers, is the order ID to use when contacting Musement Customer Care.

The second ID, consisting only of numbers, is the ID for a single item in the order. This ID is used for internal technical checks and is not relevant when contacting Musement Customer Care.

Responses
200

Booking confirmation request accepted

400

Bad request

Request samples
application/json
{
  • "booking_id": "string",
  • "booking_requests": [
    ],
  • "hold_id": "string",
  • "holder": {
    },
  • "tuimm_booking_id": "string"
}
Response samples
application/json
{
  • "booking_id": "string",
  • "tickets": [
    ],
  • "transaction_id": "string"
}

Cancel bookingWebhook DELETE

This request is usually sent went a customer requests to cancel a booking. A cancellation request may also be sent when a booking confirmation request times out.

Request endpoint: DELETE {supplier_url}/booking

SecurityWebhook
Request
header Parameters
accept-version
required
string (PORTA webhook version)

The version of PORTA for the webhook request.

Value: Description
vnd.porta-webhook-api.v1

Version 1.0.0

x-webhook-key
required
string (Webhook key)

The key which allows the PORTA to access the supplier's webhook service.

Request Body schema: application/json
One of:
booking_id
required
string <uuid>

The ID of the booking to cancel.

ticket_numbers
required
Array of strings

A list of ticket values issued by the original booking confirmation response.

transaction_id
required
string

The ID issued by the original booking confirmation response.

Responses
200

Booking successfully cancelled

400

Bad request

Request samples
application/json
{
  • "booking_id": "b0ae0641-0cd4-4f7f-8550-dcd550941f4a",
  • "ticket_numbers": [
    ],
  • "transaction_id": "string"
}
Response samples
application/json
{
  • "code": "INACTIVE_HOLD_KEY",
  • "message": "string"
}

Check webhook healthWebhook GET

This request is sent approximately every five minutes to check the status of the supplier's webhook endpoint.

Request endpoint: GET {supplier_url}/health

SecurityWebhook
Request
header Parameters
accept-version
required
string (PORTA webhook version)

The version of PORTA for the webhook request.

Value: Description
vnd.porta-webhook-api.v1

Version 1.0.0

x-webhook-key
required
string (Webhook key)

The key which allows the PORTA to access the supplier's webhook service.

Responses
200

Webhook is healthy

400

Bad request

Response samples
application/json
{
  • "code": "INACTIVE_HOLD_KEY",
  • "message": "string"
}
Copyright © TUI Musement. All rights reserved.