Book a demo


Blog Detail Title

Short Content Here

by Author Name

Date Published


Upsell Integration Guide

Benjamin Schmid January 20, 2019
This guide explains how you can connect your upselling application, and offer extra services or room upgrades to guests. If you are new to apaleo APIs, head over to the quick-start guide, and learn how you can implement the apaleo connect flow. There are many variants to upselling, and not all steps might be relevant for you. If something seems strange or irrelevant, just ignore it, and skip to the next paragraph.

Upselling APIs

Browse all apaleo APIs on For most upselling integrations, the Core APIs are the only ones needed. Switch between different modules using the dropdown in the top right corner. The Rate Plan APIs let you retrieve all available rate plans and extras the hotel set up in apaleo. Use these to initially configure your upselling paths and options, directly after the hotel connects your app with apaleo. Note that each rate plan is always connected to exactly one unit group (or 'room type'). This might be different from what you are used to by other systems.
GET /rateplan/v1/rate-plans
GET /rateplan/v1/services
You can let hotels set up their own upselling services in your application, and then push them over to apaleo. This is useful, if you want to model room upgrades as extra services, instead of changing the price for the room rate for the reservation. Besides services that can be booked on any day covered by the stay dates of the reservation you can also define services that can only be booked on the arrival or departure date. This is helpful for early check-in or late check-out fees or final cleaning packages.
POST /rateplan/v1/services
The Booking API is where the magic happens. Here you can get the reservation you want to modify.
GET /booking/v1/reservations/{id}
For upgrading a reservation, retrieve all alternative offers for this one reservation, and find the offer that matches best. Find the one with the same cancellation policies and guarantees, or anything else that makes sense to you. This is your expertise, not ours. You can override the prices for each night based on any upselling rules defined in your app.
GET /booking/v1/reservations/{id}/offers
PUT /booking/v1/reservation-actions/{id}/amend
You can also ask to get offers which would normally not be available (for example, because the advanced booking or other restrictions are violated). Simply add the parameter IncludeUnavailable to true. If you do this, be sure to check the validation messages in the offer response and ensure that you do not overbook the hotel. To book an offer with validation messages you need to force the system to accept it by using the $force endpoint.
GET /booking/v1/reservations/{id}/offers?includeUnavailabe=true
PUT /booking/v1/reservation-actions/{id}/amend/$force
Adding extra services can be done in a similar way. Request all services that are available for a reservation, and then add them to the reservation. 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.
GET /booking/v1/reservations/{id}/service-offers
PUT /booking/v1/reservation-actions/{id}/book-service


The following list of examples is not exhaustive but gives you some guidance on how to upsell with apaleo APIs. For details on the exact payloads, see the examples and model definitions in swagger.

Extend stay

Arrive a day earlier? Stay for the weekend? Extending the stay is a very standard amend use-case. Get the alternative offers for a reservation, and either wait for user input to choose one, or use your magic to determine the best. When getting the alternative offers, be sure to change the arrival and/or departure dates of the reservation, so that the new offer covers the additional days. Then, call amend. Use the data from the offers endpoint to construct the input for the call. The amend functionality is pretty powerful and constructing the input from scratch is complex.

Upgrade room

Upgrading a room is following the same pattern: get alternative offers, pick one, amend. This time, when getting the offers, be sure to not change any of the core parameters, but set the requote flag to true. As you do not want to offer lower value rooms, you can use the rank of the unit groups in apaleo, if they are set up by the hotel. You can also use the prices of the offers or use any hierarchy or upselling models in your application.

Late check-out or early check-in

Late check-out or early check-in can be modelled by changing the departure or arrival time of a reservation, and increasing the price. Ask for alternative offers for the reservation you want to adjust and specify the desired departure or arrival time. Use the response to construct the payload for the amend and add the additional price for the late check-out or early check-in to the last or first time night respectively. You could also instead of increasing the price book a pre-defined extra for the respective night.

Bid on room upgrades / Set your own price

Similar to the late check-out, setting your own price can be done by amending a reservation, and passing prices in the timeslices / nights. Just like above, you can also add extra services instead of changing the price. It is not possible to set a price for the entire reservation, you always must adjust each and every time slice / night.

Add extra services

To add extra services, 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.
Benjamin Schmid

Posted by

Benjamin Schmid
Benjamin Schmid is a co-founder at apaleo. He’s spent more than a decade leading teams to build software that help businesses run smoothly, from ERP systems to SaaS products at SAP hybris. For the last four years, he has taken his product knowledge to the hospitality industry, building up hetras’s API and app platform and now creating apaleo’s open hospitality cloud. When he’s not busy building cool products, Benjamin can be found relaxing in the quietness of the alps or playing sports.


by Benjamin Schmid


IBE Integration Guide

Let's talk Internet Booking Engines (IBEs). They work best when directly connected to the PMS, without any intermediaries that might get in the way with delays ...

by Andrea Stubbe


Digital guest journey with apaleo

apaleo is building software for hotels, and our users are people that work at hotels. To create amazing guest experiences we need you, creators of guest facing ...

by Andrea Stubbe


Push it! Webhooks in apaleo

The notification service allows you to build or set up apps which subscribe to certain events on apaleo (webhooks). When an event is triggered, we send an HTTP ...


Subscribe to our a-list for all the fun:

  • Keep up to date with hotel trends
  • Understand what matters most to hotel clients
  • Sweet gifs and special offers

Get it in your inbox every Monday ;)

By entering your email you expressly consent to receive our newsletter every week and other material related to...