Discounts
You can use the discounts endpoint to add multiple discounts per apartment. There is no possibility to push discounts for all of your properties at the same time, you will always need to add the discounts individually to every apartment.
The following discount types are supported: "LAST_MINUTE"
, "EARLY_BIRD"
, "LONG_STAY"
and "DEVICE_SPECIFIC"
You can always check for active discounts for a specific apartment using the GET Discounts endpoint or GET a single discount for an apartment by discount id
The discount object
Parameter | Type | Required | Usage |
---|---|---|---|
"id" | int64 | NO | When creating a new discount this field is empty, it will be set by Holidu in the response, when updating an existing discount push the "id" of this discount |
"status" | string | YES | The status indicates if a discount is active, inactive (temporary), or deleted |
"name" | string | NO | You can put a name of the discount (for instance Early Bird Discount) |
"discountType" | string | YES | Choose between the last minute or early bird, long stay, or device specific type of discount |
"discountPercent" | number | YES | Discount percentage |
"conditions" | object | YES | Conditions on which the discount is applied |
"conditions"."daysBeforeCheckIn" | int32 | YES* | For "LAST_MINUTE" it is the maximum amount of days before check-in and for "EARLY_BIRD" the minimum of days before check-in during which the discount should be applied *Required if the discount type is "LAST_MINUTE" or "EARLY_BIRD" |
"conditions"."minStay" | int32 | YES* | Minimum length of stay required for the discount to be applied *Required if the discount type is "LONG_STAY" |
"conditions"."bookingSeason" | array of objects | NO | For the discount to be applied the booking date must be within a specific season |
"conditions"."bookingSeason"."onlyApplicableFrom" | date | YES* | Start date of booking season *Required if "bookingSeason" object is pushed |
"conditions"."bookingSeason"."onlyApplicableUntil" | date | YES* | End date of booking season *Required if "bookingSeason" object is pushed |
"conditions"."travelSeason" | array of objects | NO | For the discount to be applied the travel date must be within a specific season |
"conditions"."travelSeason"."onlyApplicableFrom" | date | YES* | Start date of travel season *Required if "travelSeason" object is pushed |
"conditions".travelSeason"."onlyApplicableUntil" | date | YES* | End date of travel season *Required if "travelSeason" object is pushed |
"conditions"."deviceType" | string | YES* | From which device (Mobile or Desktop) needs the booking be made in order for the discount to be applied *Required if the discount type is "DEVICE_SPECIFIC" |
Status of a discount
status | Usage |
---|---|
"ACTIVE" | The discount should be active |
"INACTIVE" | The discount should be inactive (paused) but not deleted |
"DELETED" | You want to delete the discount |
Type of a discount
discountType | Usage |
---|---|
"EARLY_BIRD" | A discount should be applied x or more days before check-in |
"LAST_MINUTE" | A discount should be applied x or less days before check-in |
"LONG_STAY" | A discount should be applied if a booking has a specific minimum length of stay |
"DEVICE_SPECIFIC" | A discount should be applied if a booking is made from a specific device such as a mobile phone or a desktop |
Be aware
- Discounts should be properly used for actual discounts, not for missing rates in LOS file
- The discount will always be applied to the whole base rate of the property if those conditions apply, not just to the specific days
- If you push more than 1 discounts for each booking only 1 discount object will be applied. The one leading to the highest discounted amount will be applied.
Examples
Create a discount for Early Birds
If a guest is an early bird and books for 5 nights or more and 90 days or more before check-in date the price per night is discounted by 10%.
{
"discountPercent": 10,
"status": "ACTIVE",
"discountType": "EARLY_BIRD",
"conditions": {
"daysBeforeCheckIn": 90,
"minStay": 5
}
}
Create a discount for Last Minute guests
If a guest likes to book last minute 7 days or less before check-in date the price per night is discounted by 20%.
{
"discountPercent": 20,
"status": "ACTIVE",
"discountType": "LAST_MINUTE",
"conditions": {
"daysBeforeCheckIn":7
}
}
Create a discount for Long Stays
If a guest chooses to stay 7 or more days the price is discounted by 20% for bookings if the guests books between 2023-08-01 and 2021-04-30
{
"discountPercent": 20,
"status": "ACTIVE",
"discountType": "LONG_STAY",
"conditions": {
"bookingSeason": [
{
"onlyApplicableFrom": "2020-08-01",
"onlyApplicableUntil": "2021-04-30"
}
],
"minStay": 7
}
}
Create a discount for a device specific booking
If a guest chooses to book on a mobile device the price is discounted by 15% if the guest's travel date is between 2023-08-01 and 2021-04-30
{
"discountPercent": 15,
"status": "ACTIVE",
"discountType": "DEVICE_SPECIFIC",
"conditions": {
"travelSeason": [
{
"onlyApplicableFrom": "2020-08-01",
"onlyApplicableUntil": "2021-04-30"
}
],
"deviceType": "MOBILE"
}
}
Update an existing discount to status deleted
💡Now the "id"
needs to be included in the request. To get all pushed discount objects including the discount id you can use the GET
{
"id": 123,
"discountPercent": 20,
"status": "DELETED",
"discountType": "DEVICE_SPECIFIC",
"conditions": {
"deviceType": "DESKTOP"
}
}
Update an existing discount to status inactive
💡Now the "id"
needs to be included in the request. To get all pushed discount objects including the discount id you can use the GET
{
"id":456,
"discountPercent":20,
"status":"INACTIVE",
"discountType":"LONG_STAY",
"conditions":{
"minStay":14,
"travelSeason":[
{
"onlyApplicableFrom":"2024-05-01",
"onlyApplicableUntil":"2024-09-30"
}
]
}
}
Updated about 1 year ago