Extra customer data and participant info
Some activities require additional information about the customers in order to complete a booking. This information should be collected at the end of the booking flow after all the items have been added to cart.
Our API offers two types of fields for customer information:
- Extra customer data
- Participant info
Activities may have one type, both or none. Fields are not necessarily static for all products - they may change based on what is added to cart.
Extra customer data
Extra customer data is information requested per booking, such as a single contact number or hotel address for pickup. Each field needs to be filled out once to complete a booking.
When managing a booking, partners are required to use the /carts/{cartUuid}/customer/schema
endpoint to check for extra customer data. However, you can get a preview of possible fields for an activity by calling the following endpoint:
curl -X GET '{baseUrl}/activities/{activityUuid}/extra-customer-data/schema' \
-H 'X-Musement-Application: {applicationValue}' \
-H 'X-Musement-Version: 3.4.0' \
-H 'Authorization: Bearer {accessToken}'
The response returns a JSON schema. The properties
property contains the information needed from customers. The response also contains a required
property listing which info is required.
Each part of the properties
property describes the expected value type and label to display to customers. In the example response below, there is a single required field which expects a string
value for a field labeled "Hotel location":
{
"title": "form",
"type": "object",
"properties": {
"s_74380": {
"type": "string",
"title": "Hotel location",
"propertyOrder": 1
}
},
"required": [
"s_74380"
]
}
Activities without extra customer data may return a 404 error status code response or an empty properties
property:
{
"title": "form",
"type": "object",
"properties": []
}
For more information on handling extra customer data in the booking flow, check out the dedicated section.
Participant info
Participant info is asked per person in a booking, such as everyone's first and last names. Each field needs to be filled out once for each person in a booking, specifically for each product quantity in cart.
When managing a booking, partners must use the /carts/{cartUuid}/items/{cartItemUuid}//schema
endpoint to check for participant info. However, you can get a preview of possible fields for an activity by calling the following endpoint:
curl -X GET '{baseUrl}/activities/{activityUuid}/participants-info/schema' \
-H 'X-Musement-Application: {applicationValue}' \
-H 'X-Musement-Version: 3.4.0' \
-H 'Authorization: Bearer {accessToken}'
Similar to extra customer data, the response is a JSON schema. The properties
property contains information needed from customers and the required
property lists which fields are required.
Each part of the properties
property contains info on the expected value type and label to show customers. In the example response below, each participant is expected to provide their "Date of birth", submitted as a string with a standard date format (YYYY-MM-DD
):
{
"title": "participant",
"type": "object",
"properties": {
"date_of_birth": {
"type": "string",
"title": "Date of birth",
"format": "date",
"propertyOrder": 1
}
},
"required": [
"date_of_birth"
]
}
Activities without participant info will return a 404 status code:
{
"code": "1400",
"message": "The activity does not require any participant information"
}
For more information on handling participant info in the booking flow, check out the dedicated section.