The Spotnana platform allows you to search for and book hotel rooms that can accommodate more than one traveler. In the hotel search API, use the occupancy > numAdults and numChildren fields to enter the number of fellow travelers who'll be sharing the room with you. For example, if you are going to share the room with one adult and one child, then numAdults will be 2 and numChildren will be 1.
Every hotel establishment will have their own restrictions on how many adults and children can share a room. In the get hotel details API, use the rooms > rateOptions > maxOccupancy field to determine the maximum number of adults and children allowed to share a room in their hotel. The hotel search results will be filtered based on the occupancy details entered.
For a multi-traveler booking, the primary traveler's data (i.e., user identifier, name, email, and phone number) is used for creating the reservation. When creating a new hotel booking, the primary traveler's information must be entered in the travelers array at index 0. You can then add the information for the other travelers at the subsequent indexes of the travelers array. Only the traveler information added at index 0 will be used by the supplier to make the hotel reservation.
If the primary traveler is bringing an adhoc traveler who is not part of the company, use the adhocInfo field to provide their information when creating a booking. Enter the userId of the primary traveler in the adhocInfo > profileOwnerId field.
Note: Adhoc users will still be required to have a profile on the Spotnana platform. See user profile concepts to learn more about the personas supported.
Assume the following three travelers are creating a hotel booking:
- John Smith: The primary traveler who is a company employee.
- David Miller: A secondary traveler who also works at John's company.
- Mike Williams: An adhoc traveler who is a personal guest of John Smith.
These three travelers are creating a hotel booking where they're going to share a room. Here's a sample request payload containing the traveler array field:
// ... payload truncated for focus
{
"travelers": [
{
"travelerId": {
"id": "a90e38d1-7c9f-4b2a-8c8a-2c8c3e8f9e6a"
},
"name": {
"family1": "Smith",
"given": "John"
},
"phoneNumber": {
"countryCode": 1,
"nationalNumber": 2125550101
},
"email": "john.smith@example.com"
},
{
"travelerId": {
"id": "b1b7c2d8-5f2d-4e9b-9c7e-8d9f1a2b3c4d"
},
"name": {
"family1": "Miller",
"given": "David"
},
"phoneNumber": {
"countryCode": 1,
"nationalNumber": 4155550102
},
"email": "david.miller@example.com"
},
{
"travelerId": {
"id": "c3c6e9f0-1a2b-3c4d-5e6f-7a8b9c0d1e2f"
},
"name": {
"family1": "Williams",
"given": "Mike"
},
"phoneNumber": {
"countryCode": 1,
"nationalNumber": 3055550103
},
"email": "mike.williams@example.com",
"adhocInfo": {
"profileOwnerId": {
"id": "a90e38d1-7c9f-4b2a-8c8a-2c8c3e8f9e6a"
}
}
}
]
}