Upsell services
Before you upsell services to a guest, the first step is getting offers for services that are available for the reservation you want to change. Ideally, you limit the services to the ones that are available on public channels like the IBE. The service offer tells you how the service would be booked if you do not provide any specific days, prices or counts. Display the result, or a filtered subset, to the user. When you then book the service, it is up to you to divert from the defaults by overriding them.
Request all services that are available for a reservation by calling the following endpoint:
GET /booking/v1/reservations/{id}/service-offers
Example
{
"services": [
{
"service": {
"id": "LND-YOGA",
"code": "YOGA",
"name": "Sun Salutation",
"description": "Start the day with a private Yoga session with one of our certified trainers.",
"pricingUnit": "Room",
"defaultGrossPrice": {
"amount": 60,
"currency": "GBP"
}
},
"count": 1,
"totalAmount": {
"grossAmount": 60,
"netAmount": 50,
"vatType": "Normal",
"currency": "GBP"
},
"prePaymentAmount": {
"amount": 60,
"currency": "GBP"
},
"dates": [
{
"serviceDate": "2020-09-24",
"amount": {
"grossAmount": 60,
"netAmount": 50,
"vatType": "Normal",
"currency": "GBP"
},
"isDefaultDate": true,
"isMandatory": false
}
]
}
]
}
Once you select the service, you can add it to the reservation by calling the following endpoint:
PUT /booking/v1/reservation-actions/{id}/book-service
When you book a service, you can override the defaults regarding the service days you want to book it for, the prices, and the count.
Example
{
"serviceId": "LND-YOGA",
"dates": [
{
"serviceDate": "2020-09-23",
"amount": {
"amount": 60.0,
"currency": "GBP"
}
}
]
}