This document describes the specifications needed to connect an external distributor interested in sharing Weekendesk offers. The product Weekendesk is offering is made up of one hotel item (room) that was previously selected by our teams, and one or some activities that can be part of the hotel facilities or an external activity.
This creates an offer that will always be this package of room + activities. For the moment, there is no possibility for the client to change the room or the activity, as packages are unbreakable.
As a distributor to Weekendesk, you will have your own set of offers. This means that Weekendesk selects a group of offers following some internal filters to prepare the final set for you, so each one can just check and interact with its assigned offers. The same happens with the bookings and cancellations, as a distributor, you will just see the bookings belonging to you.
The workflow to be followed to use this API, is the following one:
Retrieve all the offers shared with you. Remember that as a distributor, you don't have access to the whole Weekendesk catalog, just a subset of offers prepared for you, previously selected by Weekendesk.
Retrieve the full detail of the offers previously shared with you. This will provide the content which will be displayed in your catalog.
Retrieve the prices and availabilities of the offers. This can be helpful for creating a calendar with the different prices available for an offer.
When the client checks for an offer that they are interested in, it is important to make a quote, just to ensure at the moment of the purchase, that the offer dates are still available and the prices are up to date.
With the quote information, once everything is correct, you will perform a booking request.
Retrieve the documents for the activities belonging to the booking (just the ones that need a voucher).
Remember that you can also do some post-purchase actions such as cancel the booking and checking the cancellation fees.
The API supports Basic Authentication as defined in RFC2617. You will have to authenticate each one of your requests by adding the following header:
Authorization: Basic Base64Encode(USERNAME:PASSWORD)
{
"appName": "Outbound API",
"date": "2022-10-14 11:02:59:252",
"traceId": "f73c6aacdd7ab8bd",
"errorCode": "RESOURCE_NOT_FOUND",
"messages": [
"No booking found for this id"
],
"path": "uri=/bookings/234234/cancel"
}
If you receive an error that you want us to review, the traceId is needed to be able to track it.
For the errorCode field, we can have the following values:
BAD_REQUEST: When the json is not properly validated because of max/min, not null fields, etc.
SERVICE_UNAVAILABLE: When the service is not available.
INTERNAL_SERVER_ERROR: One service that we are consuming is returning an unknown error.
RESOURCE_NOT_FOUND: Not found response, like a booking not found by id.
POINT_OF_SALE_NOT_ALLOWED: the requested point of sale is not allowed.
AGENCY_DOES_NOT_EXIST: the requested agency for the distributor does not exist.
BOOKING_ALREADY_CANCELLED: the booking is already cancelled.
BOOKING_NOT_CANCELLABLE: for the cancellation fees endpoint, the requested booking is not cancellable.
These are the common response codes for the API:
200 Success.
400 Bad request, detailed message with the error.
401 Request incorrectly authenticated.
403 Not authorized to access this resource.
404 Resource not found, detailed message with the error.
500 Internal server error.
503 Service not available.
We have two environments (staging and production) and dedicated credentials for each one. You must contact Weekendesk team to receive the access to any of the environments. You must use the following urls depending on the environment you are using:
Production: https://outbound-api.weekendesk.com
Description
This route will allow you to retrieve all the offers that Weekendesk have selected. The request requires the language of the offers that we want to extract (ES, IT, FR, NL). The API will return just the available translations for each offer.
No parameter
Request URL
https://outbound-api.weekendesk.com/catalog
Example of a request with ES and FR selected.
curl -X 'GET' \
'https://outbound-api.weekendesk.com/catalog' \
-H 'accept: application/json'
catalogOffers
Attributes
id [number] - Unique identifier of the offer. - Example: 2783148.
offerDetailUrl [string] - Url to ask for offer details. - Example: http://outboundapi.weekendesk.com/offers/2783148
title [string] - Titles of the offers in the selected languages of the request. - Example: Week-end au coeur de Paris.
200 OK
{
"catalogOffers": [
{
"id": 2783148,
"offerDetailUrl": "http://outboundapi.weekendesk.com/offers/2783148",
"title": {
"FR": "Week-end au coeur de Paris",
"ES": "Escapada con encanto a París"
}
},
{
"id": 2923622,
"offerDetailUrl": "http://outboundapi.weekendesk.com/offers/2923622",
"title": {
"FR": "Week-end en chambre deluxe à Paris",
"ES": "Escapada en habitación de lujo en París"
}
}
]
Description
This route provides you a way of extracting the detail of a set of offers. You will have to request a list of offers and the list of languages that you want to get. The API will return a response with detailed information about the offers containing the descriptions, thumbnails, categories, tags, information about the hotel, information about the room and information about the activities. For more detailed information about the fields in the response, check the schema section next to the example in the response below.
There is an important field inside activities object called voucherRequired. This object is a boolean that will be true when the activity needs a voucher that must be obtained from the /documents endpoint. If there's no activity with this field as true, we won't return any voucher from this endpoint.
For the cancellation policy, bear in mind that when an offer is cancellable, we always keep the 20% of the offer value as fees.
Query parameters:
offerIds array[number] *mandatory
Request URL
https://outbound-api.weekendesk.com/offers?offerIds=21331516&offerIds=2923622
CURL
curl -X 'GET' \
'https://outbound-api.weekendesk.com/offers?offerIds=21331516&offerIds=2923622' \
-H 'accept: application/json'
Offers
Attributes
id [number] - Unique identifier of the offer - example: 21331516
activities
id [number] - Unique identifier of the offer - example: 32480
details - Specific aspects of the activity in the selected languages - example: OrderedMap { "it": List [ "Piscina interna riscaldata" ], "fr": List [ "Piscine intérieure chauffée" ], "es": List [ "Piscina interior climatizada" ] }.
duration - Duration of the activity
length[number] - example: 30
unit[string] - example: MINUTES.
highlights - Most remarkable details of the activity in the selected languages. - example: OrderedMap { "it": List [ "Vai a scaricare la tensione e a godere di un momento di puro relax." ], "fr": List [ "Venez relacher la pression et profiter d'un moment de pure détente." ], "es": List [ "Olvídate del estrés diario y disfruta del relax más intenso." ] }
name - Name of the activity in the selected languages. - example: OrderedMap { "it": "ingresso all'area relax", "fr": "Accès à l'espace détente", "es": "acceso a la zona de relax" }.
restrictions - Constraints of the activity in the selected languages. - example: OrderedMap { "it": List [ "I bambini sotto i 16 anni possono accedere al centro benessere sotto la supervisione di un adulto dalle 7:00 alle 10:00 (vasca idromassaggio e palestra esclusi).", "Nell'area acquatica, gli asciugamani non verranno forniti." ], "fr": List [ "Ouvert sur de larges baies vitrées donnant sur la terrasse, le parc et le Mont Blanc, le bassin de relaxation vous propose un parcours hydro tonique, équipé de buses massantes ainsi qu’un jacuzzi attenant. Séance d’aquagym et d'aquabike possibles.", "Dans l'espace aquatique, les serviettes de bain ne sont pas fournies" ], "es": List [ "Los niños menores de 16 años pueden acceder con un adulto de 07:00h a 10:00h (excepto la habitación con jacuzzi y gimnasio).", "En el espacio acuático no se facilita toalla." ] }
voucherRequired[boolean]- Defines if the activity has a required voucher that needs to be obtained from the documents endpoint. - example: "true"
bestStay - General details of the offer.
lengthOfStay[number] - Min number of nights - example: 2
salePrice[number] - This is our unique sales line/room rate, so we always need to have prices/stocks here. If we have a promotion/special price for Weekendesk, it has to be linked here. Then, if we don’t have any promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - example: 18400.
barPrice[number] - We do not sell this line, so it is not mandatory to map it, but interesting. We use it as a reference price to generate a discount on the website. If we have a promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - example: 20000.
localTax - Value that must be payed at the hotel due to tourist taxes.
type[string] - PER_PERSON_PER_NIGHT or BOOKING_PERCENTAGE - example: PER_PERSON_PER_NIGHT
value[number] - Amount of € or % (depending on the type field) that must be payed at the hotel. - example: 230.
cancellationPolicy
cancellationWindow[number] - Window days that the user can use to cancel after the booking. - example: 4.
type[string] - It can be FLEX (+the number of days that we can cancel) or NCNR (Non cancellable). - example: FLEX.
categories - Offer grouping way.
id[number] - Unique identifier of the category. - example: 455.
name - Detail of the category in the selected languages. - example: OrderedMap { "it": "Paesi Mediterranei", "fr": "en Méditerranée", "es": "en el Mediterráneo" }.
images
index[number]
thumbnails
height [number] - Definition of the image height in pixels. - example: 595.
width [number] - Definition of the image width in pixels. - example: 1920.
url [string] - Url of the thumbnail. - example: https://test/id/size_FSImage_1_EDIT_lobby.jpg.
marketManagerMessages - Special comments from the market manager of the hotel in the selected languages. - example: OrderedMap { "es": "Mensaje del market manager", "it": "Messagio del market manager", "fr": "Message du market manager" }.
mealPlan [string] - Type of meal plan (ALL_INCLUSIVE, FULLBOARD, HALFBOARD, BREAKFAST, ROOM_ONLY) - Example: BREAKFAST.
property
id [number] - Unique identifier of the property. - Example: 5168.
name [string] - Name of the property. - Example: Hôtel Les Jardins de Sainte-Maxime.
descriptions - Description of the hotel in the selected languages. Example: OrderedMap { "it": "Situato vicino al Golfo di Saint-Tropez, segretamente nascosto sul l...", "fr": "A quelques pas d’une belle plage de sable et à quelques minutes de S...", "es": "Situado a las puertas del Golfo de Saint-Tropez, secretamente acurru..." }.
facilities - Details of the facilities provided by the property
category[string]- Detail of the facility type - Example: parking.
type
code[string] - Code of the facility. Example: private_parking.
name - Name of the facility. Example: OrderedMap { "it": "Parcheggio privato", "fr": "Parking privé", "es": "Aparcamiento privado" }.
location
address - Address of the property.
street[string] - Example: Chemin des Deux Ruisseaux.
zipCode [string] - Example: 83120.
city
code [number] - Unique identifier of the city. The reference used is the GeoNames geographical database. - Example: GN22321.
name - Name of the city in the selected languages. - Example: OrderedMap { "fr": "Paris", "es": "París" }.
country
code [string] - Unique identifier of the country. The reference used is the GeoNames geographical database. - Example: GN22.
name - Example: OrderedMap { "fr": "France", "es": "Francia" }.
geolocation - Coordinates of the property
latitude [number] - Example: 43.302.
longitude [number] - Example: 6.621913.
room - Details of the offer’s room.
id [number] - Unique identifier of the room. - Example: 156263.
area [number] - The surface of the room expressed in square meters. - Example: 18.
category [string] - Category of the room. Possible values: CLASSIC, COMFORT, TRADITION, SUPERIOR, DELUXE, PRIVILEGED, EXECUTIVE, PRESTIGE, FAMILY, WITHOUT_CATEGORY. - Example: CLASSIC.
type [string] - Type of room. - Example: DOUBLE_BEDROOM.
view [string] - Views from the room. Possible values: SEA, LAKE, MOUNTAIN, GARDENS, CITY, GOLF, FOREST, COURT_YARD. - Example: SEA.
beds
count [number] - Example: 1.
type
code[string] - Code of the bed type. - Example: double.
name - Name of the facility. - Example: OrderedMap { "it": "letto matrimoniale", "fr": "lit double", "es": "cama doble" }.
capacity - Detail of the capacity of the room splitted in adults, children and babies.
adults [number] - Example: 2.
babies [number] - Example: 1.
children [number] - Example: 0.
max [number] - Example: 3.
facilities - Details of the facilities provided by the property
id [number] - Unique identifier of the facility - Example: 78.
category [string] - Detail of the facility type. - Example: bathroom.
type
code [string] - Code of the facility. - Example: hair_dryer.
name - Name of the facility. - Example: OrderedMap { "it": "Asciugacapelli", "fr": "Sèche-cheveux", "es": "Secador de pelo" }.
receptionHours
checkIn - Detail of the checkin conditions.
from [string] - Example: 990.
to [string] - Example: 1320.
checkOut - Detail of the checkout conditions.
from [string] - Example: 700.
to [string] - Example: 600.
stars [number] - Example: 3.
publication
pointsOfSale [string] - Countries where this offer is available to be sold. - Example: List [ "ES", "IT", "FR", "NL", "BE" ]].
from [string] - First day that is available (if needed). - Example: 2018-06-12T00:00:00.000Z.
to [string] - last day that the offer is available (if needed). - Example: 2023-06-12T00:00:00.000Z.
tags - Name of some offer features.
id [number] - Unique identifier of the tag (numeric). - Example: 146.
code [string] - Identifier of the tag (text). - Example: double_room_classic.
name - Detail of the tag in the selected languages. - Example: OrderedMap { "it": "Camera doppia classic", "fr": "Chambre double classique", "es": "Habitación doble clásica" }
title - Title of the offer in the selected languages of the request. - Example: OrderedMap { "it": "Weekend nel relax a Sainte-Maxime", "fr": "Week-end détente à Sainte-Maxime", "es": "Relax en Sainte-Maxime" }.
offerDetailUrl [string] - Url to ask for offer details. - Example: https://outboundapi.com/offers/21331516
200 OK *we are including just 1 offer in the example
{
"offers": [
{
"id": 21331516,
"activities": [
{
"id": 32480,
"details": {
"it": [
"Piscina interna riscaldata"
],
"fr": [
"Piscine intérieure chauffée"
],
"es": [
"Piscina interior climatizada"
]
},
"duration": {
"length": 30,
"unit": "MINUTES"
},
"highlights": {
"it": [
"Vai a scaricare la tensione e a godere di un momento di puro relax."
],
"fr": [
"Venez relacher la pression et profiter d'un moment de pure détente."
],
"es": [
"Olvídate del estrés diario y disfruta del relax más intenso."
]
},
"name": {
"it": "ingresso all'area relax",
"fr": "Accès à l'espace détente",
"es": "acceso a la zona de relax"
},
"restrictions": {
"it": [
"I bambini sotto i 16 anni possono accedere al centro benessere sotto la supervisione di un adulto dalle 7:00 alle 10:00 (vasca idromassaggio e palestra esclusi).",
"Nell'area acquatica, gli asciugamani non verranno forniti."
],
"fr": [
"Ouvert sur de larges baies vitrées donnant sur la terrasse, le parc et le Mont Blanc, le bassin de relaxation vous propose un parcours hydro tonique, équipé de buses massantes ainsi qu’un jacuzzi attenant. Séance d’aquagym et d'aquabike possibles.",
"Dans l'espace aquatique, les serviettes de bain ne sont pas fournies"
],
"es": [
"Los niños menores de 16 años pueden acceder con un adulto de 07:00h a 10:00h (excepto la habitación con jacuzzi y gimnasio).",
"En el espacio acuático no se facilita toalla."
]
},
"voucherRequired": false
}
],
"bestStay": {
"lengthOfStay": 2,
"salePrice": 18400,
"barPrice": 20000
},
"localTax": {
"type": "PER_PERSON_PER_NIGHT",
"value": 230
},
"cancellationPolicy": {
"cancellationWindow": 4,
"type": "FLEX"
},
"categories": [
{
"id": 455,
"name": {
"it": "Paesi Mediterranei",
"fr": "en Méditerranée",
"es": "en el Mediterráneo"
}
}
],
"images": [
{
"index": 0,
"thumbnails": [
{
"height": 595,
"width": 1920,
"url": "https://test/id/size_FSImage_1_EDIT_lobby.jpg"
}
]
}
],
"marketManagerMessages": {
"es": "Mensaje del market manager",
"it": "Messagio del market manager",
"fr": "Message du market manager"
},
"mealPlan": "BREAKFAST",
"property": {
"id": 5168,
"name": "Hôtel Les Jardins de Sainte-Maxime",
"descriptions": {
"it": "Situato vicino al Golfo di Saint-Tropez, segretamente nascosto sul l...",
"fr": "A quelques pas d’une belle plage de sable et à quelques minutes de S...",
"es": "Situado a las puertas del Golfo de Saint-Tropez, secretamente acurru..."
},
"facilities": [
{
"category": "parking",
"type": {
"code": "private_parking",
"name": {
"it": "Parcheggio privato",
"fr": "Parking privé",
"es": "Aparcamiento privado"
}
}
}
],
"location": {
"address": {
"street": "Chemin des Deux Ruisseaux",
"zipCode": "83120"
},
"city": {
"code": "GN22321",
"name": {
"fr": "Paris",
"es": "París"
}
},
"country": {
"code": "GN22",
"name": {
"fr": "France",
"es": "Francia"
}
},
"geolocation": {
"latitude": 43.302,
"longitude": 6.621913
}
},
"room": {
"id": 156263,
"area": 18,
"category": "STANDARD",
"type": "DOUBLE_BEDROOM",
"view": "SEA",
"beds": [
{
"count": 1,
"type": {
"code": "double",
"name": {
"it": "letto matrimoniale",
"fr": "lit double",
"es": "cama doble"
}
}
}
],
"capacity": {
"adults": 2,
"babies": 1,
"children": 0,
"max": 3
},
"facilities": [
{
"id": 78,
"category": "bathroom",
"type": {
"code": "hair_dryer",
"name": {
"it": "Asciugacapelli",
"fr": "Sèche-cheveux",
"es": "Secador de pelo"
}
}
}
]
},
"receptionHours": {
"checkIn": {
"from": "990",
"to": "1320"
},
"checkOut": {
"from": "07:00",
"to": "600"
}
},
"stars": 3
},
"publication": {
"pointsOfSale": [
[
"ES",
"IT",
"FR",
"NL",
"BE"
]
],
"from": "2018-06-12T00:00:00.000Z",
"to": "2023-06-12T00:00:00.000Z"
},
"tags": [
{
"id": 146,
"code": "double_room_classic",
"name": {
"it": "Camera doppia classic",
"fr": "Chambre double classique",
"es": "Habitación doble clásica"
}
}
],
"title": {
"it": "Weekend nel relax a Sainte-Maxime",
"fr": "Week-end détente à Sainte-Maxime",
"es": "Relax en Sainte-Maxime"
},
"offerDetailUrl": "https://outboundapi.com/offers/21331516"
}
]
}
Description
This route provides a way of extracting all the details of a single offer. You will have to request the specific offer and the list of languages that you want to get. The API will return a response with detailed information about the offer containing the descriptions, thumbnails, categories, tags, information about the hotel, information about the room and information about the activities. For more detailed information about the fields in the response, check the schema section next to the example in the response below.
There is an important field inside activities object called voucherRequired. This object is a boolean that will be true when the activity needs a voucher that must be obtained from the /documents endpoint. If there's no activity with this field as true, we won't return any voucher from this endpoint.
For the cancellation policy, bear in mind that when an offer is cancellable, we always keep the 20% of the offer value as fees.
Path parameter:
offerId [number] *mandatory
Request URL
hhttps://outbound-api.weekendesk.com/offers/21331516
CURL
curl -X 'GET' \
'https://outbound-api.weekendesk.com/offers/21331516' \
-H 'accept: application/json'
Offers
Attributes
id [number] - Unique identifier of the offer - example: 21331516
activities
id [number] - Unique identifier of the offer - example: 32480
details - Specific aspects of the activity in the selected languages - example: OrderedMap { "it": List [ "Piscina interna riscaldata" ], "fr": List [ "Piscine intérieure chauffée" ], "es": List [ "Piscina interior climatizada" ] }.
duration - Duration of the activity
length[number] - example: 30
unit[string] - example: MINUTES.
highlights - Most remarkable details of the activity in the selected languages. - example: OrderedMap { "it": List [ "Vai a scaricare la tensione e a godere di un momento di puro relax." ], "fr": List [ "Venez relacher la pression et profiter d'un moment de pure détente." ], "es": List [ "Olvídate del estrés diario y disfruta del relax más intenso." ] }
name - Name of the activity in the selected languages. - example: OrderedMap { "it": "ingresso all'area relax", "fr": "Accès à l'espace détente", "es": "acceso a la zona de relax" }.
restrictions - Constraints of the activity in the selected languages. - example: OrderedMap { "it": List [ "I bambini sotto i 16 anni possono accedere al centro benessere sotto la supervisione di un adulto dalle 7:00 alle 10:00 (vasca idromassaggio e palestra esclusi).", "Nell'area acquatica, gli asciugamani non verranno forniti." ], "fr": List [ "Ouvert sur de larges baies vitrées donnant sur la terrasse, le parc et le Mont Blanc, le bassin de relaxation vous propose un parcours hydro tonique, équipé de buses massantes ainsi qu’un jacuzzi attenant. Séance d’aquagym et d'aquabike possibles.", "Dans l'espace aquatique, les serviettes de bain ne sont pas fournies" ], "es": List [ "Los niños menores de 16 años pueden acceder con un adulto de 07:00h a 10:00h (excepto la habitación con jacuzzi y gimnasio).", "En el espacio acuático no se facilita toalla." ] }
voucherRequired[boolean]- Defines if the activity has a required voucher that needs to be obtained from the documents endpoint. - example: "true"
bestStay - General details of the offer.
lengthOfStay[number] - Min number of nights - example: 2
salePrice[number] - This is our unique sales line/room rate, so we always need to have prices/stocks here. If we have a promotion/special price for Weekendesk, it has to be linked here. Then, if we don’t have any promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - example: 18400.
barPrice[number] - We do not sell this line, so it is not mandatory to map it, but interesting. We use it as a reference price to generate a discount on the website. If we have a promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - example: 20000.
localTax - Value that must be payed at the hotel due to tourist taxes.
type[string] - PER_PERSON_PER_NIGHT or BOOKING_PERCENTAGE - example: PER_PERSON_PER_NIGHT
value[number] - Amount of € or % (depending on the type field) that must be payed at the hotel. - example: 230.
cancellationPolicy
cancellationWindow[number] - It can be FLEX (+the number of days that we can cancel) or NCNR (Non cancellable). - example: 4.
type[string] - Window days that the user can use to cancel after the booking. - example: FLEX.
categories - Offer grouping way.
id[number] - Unique identifier of the category. - example: 455.
name - Detail of the category in the selected languages. - example: OrderedMap { "it": "Paesi Mediterranei", "fr": "en Méditerranée", "es": "en el Mediterráneo" }.
images
index[number]
thumbnails
height [number] - Definition of the image height in pixels. - example: 595.
width [number] - Definition of the image width in pixels. - example: 1920.
url [string] - Url of the thumbnail. - example: https://test/id/size_FSImage_1_EDIT_lobby.jpg.
marketManagerMessages - Special comments from the market manager of the hotel in the selected languages. - example: OrderedMap { "es": "Mensaje del market manager", "it": "Messagio del market manager", "fr": "Message du market manager" }.
mealPlan [string] - Type of meal plan (ALL_INCLUSIVE, FULLBOARD, HALFBOARD, BREAKFAST, ROOM_ONLY) - Example: BREAKFAST.
property
id [number] - Unique identifier of the property. - Example: 5168.
name [string] - Name of the property. - Example: Hôtel Les Jardins de Sainte-Maxime.
descriptions - Description of the hotel in the selected languages. Example: OrderedMap { "it": "Situato vicino al Golfo di Saint-Tropez, segretamente nascosto sul l...", "fr": "A quelques pas d’une belle plage de sable et à quelques minutes de S...", "es": "Situado a las puertas del Golfo de Saint-Tropez, secretamente acurru..." }.
facilities - Details of the facilities provided by the property
category[string]- Detail of the facility type - Example: parking.
type
code[string] - Code of the facility. Example: private_parking.
name - Name of the facility. Example: OrderedMap { "it": "Parcheggio privato", "fr": "Parking privé", "es": "Aparcamiento privado" }.
location
address - Address of the property.
street[string] - Example: Chemin des Deux Ruisseaux.
zipCode [string] - Example: 83120.
city
code [number] - Unique identifier of the city. The reference used is the GeoNames geographical database. - Example: GN22321.
name - Name of the city in the selected languages. - Example: OrderedMap { "fr": "Paris", "es": "París" }.
country
code [string] - Unique identifier of the country. The reference used is the GeoNames geographical database. - Example: GN22.
name - Example: OrderedMap { "fr": "France", "es": "Francia" }.
geolocation - Coordinates of the property
latitude [number] - Example: 43.302.
longitude [number] - Example: 6.621913.
room - Details of the offer’s room.
id [number] - Unique identifier of the room. - Example: 156263.
area [number] - The surface of the room expressed in square meters. - Example: 18.
category [string] - Category of the room. Possible values: CLASSIC, COMFORT, TRADITION, SUPERIOR, DELUXE, PRIVILEGED, EXECUTIVE, PRESTIGE, FAMILY, WITHOUT_CATEGORY. - Example: STANDARD.
type [string] - Type of room. - Example: DOUBLE_BEDROOM.
view [string] - Views from the room. Possible values: SEA, LAKE, MOUNTAIN, GARDENS, CITY, GOLF, FOREST, COURT_YARD. - Example: SEA.
beds
count [number] - Example: 1.
type
code[string] - Code of the bed type. - Example: double.
name - Name of the facility. - Example: OrderedMap { "it": "letto matrimoniale", "fr": "lit double", "es": "cama doble" }.
capacity - Detail of the capacity of the room splitted in adults, children and babies.
adults [number] - Example: 2.
babies [number] - Example: 1.
children [number] - Example: 0.
max [number] - Example: 3.
facilities - Details of the facilities provided by the property
id [number] - Unique identifier of the facility - Example: 78.
category [string] - Detail of the facility type. - Example: bathroom.
type
code [string] - Code of the facility. - Example: hair_dryer.
name - Name of the facility. - Example: OrderedMap { "it": "Asciugacapelli", "fr": "Sèche-cheveux", "es": "Secador de pelo" }.
receptionHours
checkIn - Detail of the checkin conditions.
from [string] - Example: 990.
to [string] - Example: 1320.
checkOut - Detail of the checkout conditions.
from [string] - Example: 700.
to [string] - Example: 600.
stars [number] - Example: 3.
publication
pointsOfSale [string] - Countries where this offer is available to be sold. - Example: List [ "ES", "IT", "FR", "NL", "BE" ]].
from [string] - First day that is available (if needed). - Example: 2018-06-12T00:00:00.000Z.
to [string] - last day that the offer is available (if needed). - Example: 2023-06-12T00:00:00.000Z.
tags - Name of some offer features.
id [number] - Unique identifier of the tag (numeric). - Example: 146.
code [string] - Identifier of the tag (text). - Example: double_room_classic.
name - Detail of the tag in the selected languages. - Example: OrderedMap { "it": "Camera doppia classic", "fr": "Chambre double classique", "es": "Habitación doble clásica" }
title - Title of the offer in the selected languages of the request. - Example: OrderedMap { "it": "Weekend nel relax a Sainte-Maxime", "fr": "Week-end détente à Sainte-Maxime", "es": "Relax en Sainte-Maxime" }.
offerDetailUrl [string] - Url to ask for offer details. - Example: https://outboundapi.com/offers/21331516
200 OK
{
"offers": [
{
"id": 21331516,
"activities": [
{
"id": 32480,
"details": {
"it": [
"Piscina interna riscaldata"
],
"fr": [
"Piscine intérieure chauffée"
],
"es": [
"Piscina interior climatizada"
]
},
"duration": {
"length": 30,
"unit": "MINUTES"
},
"highlights": {
"it": [
"Vai a scaricare la tensione e a godere di un momento di puro relax."
],
"fr": [
"Venez relacher la pression et profiter d'un moment de pure détente."
],
"es": [
"Olvídate del estrés diario y disfruta del relax más intenso."
]
},
"name": {
"it": "ingresso all'area relax",
"fr": "Accès à l'espace détente",
"es": "acceso a la zona de relax"
},
"restrictions": {
"it": [
"I bambini sotto i 16 anni possono accedere al centro benessere sotto la supervisione di un adulto dalle 7:00 alle 10:00 (vasca idromassaggio e palestra esclusi).",
"Nell'area acquatica, gli asciugamani non verranno forniti."
],
"fr": [
"Ouvert sur de larges baies vitrées donnant sur la terrasse, le parc et le Mont Blanc, le bassin de relaxation vous propose un parcours hydro tonique, équipé de buses massantes ainsi qu’un jacuzzi attenant. Séance d’aquagym et d'aquabike possibles.",
"Dans l'espace aquatique, les serviettes de bain ne sont pas fournies"
],
"es": [
"Los niños menores de 16 años pueden acceder con un adulto de 07:00h a 10:00h (excepto la habitación con jacuzzi y gimnasio).",
"En el espacio acuático no se facilita toalla."
]
},
"voucherRequired": false
}
],
"bestStay": {
"lengthOfStay": 2,
"salePrice": 18400,
"barPrice": 20000
},
"localTax": {
"type": "PER_PERSON_PER_NIGHT",
"value": 230
},
"cancellationPolicy": {
"cancellationWindow": 4,
"type": "FLEX"
},
"categories": [
{
"id": 455,
"name": {
"it": "Paesi Mediterranei",
"fr": "en Méditerranée",
"es": "en el Mediterráneo"
}
}
],
"images": [
{
"index": 0,
"thumbnails": [
{
"height": 595,
"width": 1920,
"url": "https://test/id/size_FSImage_1_EDIT_lobby.jpg"
}
]
}
],
"marketManagerMessages": {
"es": "Mensaje del market manager",
"it": "Messagio del market manager",
"fr": "Message du market manager"
},
"mealPlan": "BREAKFAST",
"property": {
"id": 5168,
"name": "Hôtel Les Jardins de Sainte-Maxime",
"descriptions": {
"it": "Situato vicino al Golfo di Saint-Tropez, segretamente nascosto sul l...",
"fr": "A quelques pas d’une belle plage de sable et à quelques minutes de S...",
"es": "Situado a las puertas del Golfo de Saint-Tropez, secretamente acurru..."
},
"facilities": [
{
"category": "parking",
"type": {
"code": "private_parking",
"name": {
"it": "Parcheggio privato",
"fr": "Parking privé",
"es": "Aparcamiento privado"
}
}
}
],
"location": {
"address": {
"street": "Chemin des Deux Ruisseaux",
"zipCode": "83120"
},
"city": {
"code": "GN22321",
"name": {
"fr": "Paris",
"es": "París"
}
},
"country": {
"code": "GN22",
"name": {
"fr": "France",
"es": "Francia"
}
},
"geolocation": {
"latitude": 43.302,
"longitude": 6.621913
}
},
"room": {
"id": 156263,
"area": 18,
"category": "STANDARD",
"type": "DOUBLE_BEDROOM",
"view": "SEA",
"beds": [
{
"count": 1,
"type": {
"code": "double",
"name": {
"it": "letto matrimoniale",
"fr": "lit double",
"es": "cama doble"
}
}
}
],
"capacity": {
"adults": 2,
"babies": 1,
"children": 0,
"max": 3
},
"facilities": [
{
"id": 78,
"category": "bathroom",
"type": {
"code": "hair_dryer",
"name": {
"it": "Asciugacapelli",
"fr": "Sèche-cheveux",
"es": "Secador de pelo"
}
}
}
]
},
"receptionHours": {
"checkIn": {
"from": "990",
"to": "1320"
},
"checkOut": {
"from": "07:00",
"to": "600"
}
},
"stars": 3
},
"publication": {
"pointsOfSale": [
[
"ES",
"IT",
"FR",
"NL",
"BE"
]
],
"from": "2018-06-12T00:00:00.000Z",
"to": "2023-06-12T00:00:00.000Z"
},
"tags": [
{
"id": 146,
"code": "double_room_classic",
"name": {
"it": "Camera doppia classic",
"fr": "Chambre double classique",
"es": "Habitación doble clásica"
}
}
],
"title": {
"it": "Weekend nel relax a Sainte-Maxime",
"fr": "Week-end détente à Sainte-Maxime",
"es": "Relax en Sainte-Maxime"
},
"offerDetailUrl": "https://outboundapi.com/offers/21331516"
}
]
}
Description
Retrieve the information about prices and availabilities for an array of offerIds. The request just needs the array of offerIds and it will return a response including the content and availability urls, the family composition and the availability together with the BAR and the WED price for each of the offerIds.
offers array[string] *mandatory
- List of offer ids to retrieve price availability. Max items per request: 100.
pointOfSale [string]
- Country code of the point of sale.
Request URL
https://outbound-api.weekendesk.com/offers/prices-availabilities?offers=2783148&offers=2923622&pointOfSale=fr
Example of a request with ES and FR selected.
curl -X 'GET' \
'https://outbound-api.weekendesk.com/offers/prices-availabilities?offers=2783148&offers=2923622&pointOfSale=fr' \
-H 'accept: application/json'
offers
Attributes
id [number] - Offer id. Example: 21749028
contentUrl [string] - Link to the offer in Weekendesk web site. - Example: http://wed-service-outbound-api.staging.weekendesk.com/offers/21749028.
priceAvailUrl [string] - Link to the prices in Weekendesk web site - Example: http://wed-service-outbound-api.staging.weekendesk.com/offers/21749028/prices-availabilities.
familyComposition
adults [number] - Number of adults (minimum 1) - Example: 2.
children [number] - Number of children (minimum 0). - Example: 0.
babies [number] - Number of babies (minimum 0). - Example: 2.
availabilities
checkIn [string] - Date available for the next prices. - Example: 2022-11-22.
prices - List of prices for the available date.
lengthOfStay [number] - Lengh of stay for this price. - Example: 1.
salePrice [number] - This is our unique sales line/room rate, so we always need to have prices/stocks here. If we have a promotion/special price for Weekendesk, it has to be linked here. Then, if we don’t have any promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - Example: 15749.
barPrice [number] - We do not sell this line, so it is not mandatory to map it, but interesting. We use it as a reference price to generate a discount on the website. If we have a promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - Example: 29498.
200 Success
{
"offers": [
{
"id": 2783148,
"contentUrl": "http://outboundapi.weekendesk.com/offers/prices-availabilities?offers=2783148",
"priceAvailUrl": "http://outboundapi.weekendesk.com/offers/2783148/prices-availabilities",
"familyComposition": {
"adults": 2,
"children": 0,
"babies": 0
},
"availabilities": [
{
"checkIn": "2023-05-06",
"prices": [
{
"lengthOfStay": 1,
"salePrice": 28000,
"barPrice": 28400
},
{
"lengthOfStay": 2,
"salePrice": 58000,
"barPrice": 58400
},
{
"lengthOfStay": 3,
"salePrice": 84000,
"barPrice": 85200
}
]
},
{
"checkIn": "2023-12-13",
"prices": [
{
"lengthOfStay": 1,
"salePrice": 28000,
"barPrice": 28400
},
{
"lengthOfStay": 2,
"salePrice": 50000,
"barPrice": 50800
},
{
"lengthOfStay": 3,
"salePrice": 75000,
"barPrice": 76200
}
]
}
]
},
{
"id": 2923622,
"contentUrl": "http://outboundapi.weekendesk.com/offers/prices-availabilities?offers=2923622",
"priceAvailUrl": "http://outboundapi.weekendesk.com/offers/2923622/prices-availabilities",
"familyComposition": {
"adults": 2,
"children": 0,
"babies": 0
},
"availabilities": [
{
"checkIn": "2023-05-06",
"prices": [
{
"lengthOfStay": 1,
"salePrice": 60200,
"barPrice": 60400
},
{
"lengthOfStay": 2,
"salePrice": 120400,
"barPrice": 120800
},
{
"lengthOfStay": 3,
"salePrice": 180600,
"barPrice": 181200
}
]
},
{
"checkIn": "2023-12-13",
"prices": [
{
"lengthOfStay": 1,
"salePrice": 28000,
"barPrice": 28400
},
{
"lengthOfStay": 2,
"salePrice": 57600,
"barPrice": 58000
},
{
"lengthOfStay": 3,
"salePrice": 86400,
"barPrice": 87000
}
]
}
]
}
]
}
Description
Retrieve the information about prices and availabilities for a single offerId. The request just needs the offerId and it will return a response including the content and availability urls, the family composition and the availability together with the BAR and the WED price.
Path parameter:
offerId [string] *mandatory
- List of offer ids to retrieve price availability. Max items per request: 100.
pointOfSale [string]
- Country code of the point of sale.
Request URL
https://outbound-api.weekendesk.com/offers/21749028/prices-availabilities?pointOfSale=fr
Example of a request with ES and FR selected.
curl -X 'GET' \
'https://outbound-api.weekendesk.com/offers/21749028/prices-availabilities?pointOfSale=fr' \
-H 'accept: application/json'
offers
Attributes
id [number] - Offer id. Example: 21749028
contentUrl [string] - Link to the offer in weekendesk web site. - Example: http://wed-service-outbound-api.staging.weekendesk.com/offers/21749028.
priceAvailUrl [string] - Link to the prices in weekendesk web site - Example: http://wed-service-outbound-api.staging.weekendesk.com/offers/21749028/prices-availabilities.
familyComposition
adults [number] - Number of adults (minimum 1) - Example: 2.
children [number] - Number of children (minimum 0). - Example: 0.
babies [number] - Number of babies (minimum 0). - Example: 2.
availabilities
checkIn [string] - Date available for the next prices. - Example: 2022-11-22.
prices - List of prices for the available date.
lengthOfStay [number] - Lengh of stay for this price. - Example: 1.
salePrice [number] - This is our unique sales line/room rate, so we always need to have prices/stocks here. If we have a promotion/special price for Weekendesk, it has to be linked here. Then, if we don’t have any promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - Example: 15749.
barPrice [number] - We do not sell this line, so it is not mandatory to map it, but interesting. We use it as a reference price to generate a discount on the website. If we have a promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - Example: 29498.
200 OK
{
"id": 21749028,
"contentUrl": "http://wed-service-outbound-api.weekendesk.com/offers/21749028",
"priceAvailUrl": "http://wed-service-outbound-api.weekendesk.com/offers/21749028/prices-availabilities",
"familyComposition": {
"adults": 2,
"children": 0,
"babies": 2
},
"availabilities": [
{
"checkIn": "2022-11-22",
"prices": [
{
"lengthOfStay": 1,
"salePrice": 15749,
"barPrice": 29498
}
]
}
}
Description
This route will return the final price that the client will have to pay for the stay configuration.
The response will contain all the information related to the room, the breakfast, the activity details, the days when the client will enjoy the activities, the available date for the activities, the price and the cancellation policies.
If the request is not providing information about the selected activities, the system will automatically select the first available day for all the activities allowing a selection.
With the first request on the quote route, you will know which are the available dates for each activity, then you can offer your clients the possibility of selecting those dates and perform an extra quote with those specific dates.
The remarkable aspects of this body request are:
checkIn/checkOut: Dates formatted as yyyy-MM-dd. For example 2022-10-26.
selectedActivities: This is not a mandatory field. If no information is provided, the system will automatically select the first available day for all the activities allowing a selection
familyComposition: Represents the number of adult, children and babies who will enjoy the stay. Babies are considered until 3 years and children until 8 years.
Request
We will need body parameters. They are described in the section below.
offerId [string]* - Unique identifier of the offer. - Example: 21749028.
period *
checkIn [string] - Initial day of the booking (yyyy-MM-dd). - Example: 2022-12-12.
checkOut [string] - Final day of the booking (yyyy-MM-dd). - Example: 2022-12-16.
familyComposition
adults [number] - Number of adults (minimum 1) - Example: 1.
children [number] - Number of children (minimum 0). - Example: 2.
babies [number] - Number of babies (minimum 0). Example: 0.
selectedActivities* - Information about the activities related to the booked offer.
id [number] - Id of the activity selected. Example: 66256.
date [string] - Date selected for the activity. Example: 2022-12-13.
language [string] - Language of POS where the booking is done (format: es, fr, it, nl). Example: fr.
pointOfSale [string] - Country of POS where the booking is done (format: ES, FR, IT, NL, BE). Example: FR.
{
"offerId": "21749028",
"period": {
"checkIn": "2022-12-12",
"checkOut": "2022-12-16"
},
"familyComposition": {
"adults": 1,
"children": 2,
"babies": 0
},
"selectedActivities": [
{
"id": 66256,
"date": "2022-12-13"
}
],
"language": "fr",
"pointOfSale": "FR"
}
Request URL
https://outbound-api.weekendesk.com/quotes
Example of a request
curl -X 'POST' \
'https://outbound-api.weekendesk.com/quotes' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"offerId": "21749028",
"period": {
"checkIn": "2022-12-12",
"checkOut": "2022-12-16"
},
"familyComposition": {
"adults": 1,
"children": 2,
"babies": 0
},
"selectedActivities": [
{
"id": 66256,
"date": "2022-12-13"
}
],
"language": "fr",
"pointOfSale": "FR"
}'
quotes
Attributes
room
title [string] - Description of the room. - Example: 2 nuits en chambre double standard Vue jardin pour 2 adultes.
details [string] - Details of the room. - Example: Vue jardin ou piscine en fonction des disponibilités.
facilities
title [string] - Facilities title. - Example: Équipements de la chambre.
details [string] - Facilities details. Example: Wifi gratuit et illimité.
roomType [string] - Type of the room. - Example: DOUBLE_BEDROOM.
roomCategory [string] - Category of the room. Example: STANDARD.
breakfast
title [string] - Breakfast title. - Example: 2 petits déjeuners continentaux (buffet) pour 2 adultes.
description [string] - Breakfast description. - Example: Heures d`ouvertures : Du lundi au dimanche de 7h00 à 10h00.
details [string] - Breakfast details. - Example: composition : Pains divers, Fromages, Boissons chaudes, Pâtisseries, Toasts, Yaourts, Fruits, Viennoiseries, Céréales, Confiture, miel, beurre, Jus de fruits, oeufs, Charcuterie].
type [string] - Breakfast type. Possible values: BUFFET, A_LA_CARTE. - Example: BUFFET.
activities
activityId [integer] - Activity id. - Example: 66256.
title [string] - Activity title. - Example: 1 Traversée en bateau pour 2 adultes.
details [string] - Activity details. - Example: À proximité de l`etablissement.
daySelection
availableDays
day [string] - Available day for activity. Example: 2022-10-13.
selectedDay [string] - Selected day for activity. - Example: 2022-10-13.
availableForChildren [boolean] - Returns if it's available for children. Example: True.
selectable [boolean] - Returns if it's a non selectable activity, due it's repeated every day. Example: false.
repeatedEveryDay [boolean] - Returns if it's a non selectable activity, due it's repeated every day. Example: false.
price
salePrice [integer] - This is our unique sales line/room rate, so we always need to have prices/stocks here. If we have a promotion/special price for Weekendesk, it has to be linked here. Then, if we don’t have any promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - Example: 31298.
barPrice [integer] - We do not sell this line, so it is not mandatory to map it, but interesting. We use it as a reference price to generate a discount on the website. If we have a promotion/special price for Weekendesk, the public /BAR room rate has to be linked here. - Example: 29498.
cancellationPolicy
type [string] - Cancellation type. - Example: FLEX.
cancellationWindow [integer] - Cancellation windows. Nullable: true - Example: 2.
bookingUrl [string] - Url to perform a booking. - Example: http://wed-service-outbound-api.weekendesk.com/bookings.
200 OK
{
{
"room": {
"title": "2 nuits en chambre double standard Vue jardin pour 2 adultes",
"details": [
"Vue jardin ou piscine en fonction des disponibilités."
],
"facilities": [
{
"title": "Équipements de la chambre",
"details": [
"Wifi gratuit et illimité"
]
}
],
"roomType": "DOUBLE_BEDROOM",
"roomCategory": "STANDARD"
},
"breakfast": {
"title": "2 petits déjeuners continentaux (buffet) pour 2 adultes",
"description": "Heures d`ouvertures : Du lundi au dimanche de 7h00 à 10h00",
"details": [
"composition : Pains divers, Fromages, Boissons chaudes, Pâtisseries, Toasts, Yaourts, Fruits, Viennoiseries, Céréales, Confiture, miel, beurre, Jus de fruits, oeufs, Charcuterie"
],
"type": "BUFFET"
},
"activities": [
{
"activityId": 66256,
"title": "1 Traversée en bateau pour 2 adultes",
"details": [
"À proximité de l`etablissement"
],
"daySelection": {
"availableDays": [
{
"day": "2022-10-13"
}
]
},
"selectedDay": "2022-10-13",
"availableForChildren": true,
"selectable": false,
"repeatedEveryDay": false
}
],
"price": {
"salePrice": 31298,
"barPrice": 29498
},
"cancellationPolicy": {
"type": "FLEX",
"cancellationWindow": 2
},
"bookingUrl": "http://wed-service-outbound-api.weekendesk.com/bookings"
}
}
Description
This route allows you to perform and confirm a booking in the Weekendesk side. The booking API requires a list of fields related to the general information of the booking described in the schema section below.
The booking route is accepting the same values for the configuration of the stay as the route used for the quote. This helps to assure that you are buying the same stay that has been previously quoted.
The remarkable aspects of this body request are:
agencyCode: This is an optional field. In case of including the agency code, the number and telephone that will be assigned to the booking will be the ones from the agency.
checkIn/checkOut: Dates formatted as yyyy-MM-dd. For example 2022-10-26.
selectedActivities: In case of not including any activity, the system will take all the selected activities and it will show the first available date for this activity.
familyComposition: Represents the number of adult, children and babies who will enjoy the stay. Babies are considered until 3 years and children until 11 years.
The rest of aspects and formats of the fields can be reviewed in the Schema section.
We will need body parameters. They are described in the section below.
offerId [number] * - Unique identifier of the offer. - Example: 21749028.
agencyCode [string] - Code of the agency that perform the booking. Example: 012.
language [string] * - Language of POS where the booking is done (format: es, fr, it, nl). Example: fr.
pointOfSale [string] * - Country of POS where the booking is done (format: ES, FR, IT, NL, BE). Example: FR.
stay *
period *
checkIn [string] * - Initial day of the booking (yyyy-MM-dd). - Example: 2022-12-12.
checkOut [string] * - Final day of the booking (yyyy-MM-dd). - Example: 2022-12-16.
familyComposition *
adults [number] * - Number of adults (minimum 1) - Example: 1.
children [number] * - Number of children (minimum 0). - Example: 2.
babies [number] * - Number of babies (minimum 0). Example: 0.
selectedActivities - Information about the activities related to the booked offer.
id [number] *- Id of the activity selected. Example: 66256.
date [string] * - Date selected for the activity. Example: 2022-12-13.
customer * - Information about the customer.
person *
title [string] * - Title. - Example: Mr.
firstName [string] * - First Name. Example: John.
lastName [string] * - Last Name. Example: Smith.
comment [string] - Customer comments. - Example: comments..
*mandatory
{
"offerId": "21749028",
"agencyCode": "012",
"language": "fr",
"pointOfSale": "FR",
"stay": {
"period": {
"checkIn": "2022-12-12",
"checkOut": "2022-12-16"
},
"familyComposition": {
"adults": 1,
"children": 2,
"babies": 0
},
"selectedActivities": [
{
"id": 66256,
"date": "2022-12-13"
}
]
},
"customer":{
"person":{
"title": "Mr.",
"firstName": "John",
"lastName": "Smith"
},
"comment": "Comments.."
}
}
}
Request URL
https://outbound-api.weekendesk.com/bookings
Example of a request
curl -X 'POST' \
'https://outbound-api.weekendesk.com/bookings' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"offerId": 21749028,
"agencyCode": "012",
"language": "fr",
"pointOfSale": "FR",
"stay": {
"period": {
"checkIn": "2022-12-12",
"checkOut": "2022-12-16"
},
"familyComposition": {
"adults": 2,
"children": 0,
"babies": 2
},
"selectedActivities": [
{
"id": 66256,
"date": "2022-12-13"
}
]
},
"customer": {
"person": {
"title": "Mr.",
"firstName": "John",
"lastName": "Smith"
},
"comment": "Comments.."
}
}'
Booking
The booking response gives information about the room (details, facilities, room type and category), the breakfast (type: buffet or “carta”), the included activities and dates, the price information and the cancellation policy.
Attributes
id [string] - Id of the booking. - Example: ae79bc1a-e864-4cfc-8579-9ad4598ab95e.
bookingUrl [string] - Url to get the booking information. - Example: http://wed-service-outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e
documentsUrl [string] - Url to get documents for a booking. The endpoint just returns this url if there's a voucher that needs to be obtained from an activity. Check offers endpoint, activities object to know when an activity needs a voucher or do a GET booking to check this information after the purchase. - Example: http://wed-service-outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/documents
cancelUrl [string] - Url to cancel the booking. - Example: http://wed-service-outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/cancel
200 OK
{
{
"id": "ae79bc1a-e864-4cfc-8579-9ad4598ab95e",
"bookingUrl": "https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e
",
"documentsUrl": "https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/documents",
"cancelUrl": "https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e
/cancel"
}
Description
This route allows you to retrieve the information about a booking that was done from your side.
The API just needs the bookingId previously obtained in the booking request.
The API response will give you the information about all the related fields of the booking like the stay, periods, room, breakfast, activities, price and cancellation information.
Path parameter:
bookingId [string] *mandatory
- Booking Id to get the information of the booking.
Request URL
https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e
Example of a request
curl -X 'GET' \
'https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e' \
-H 'accept: application/json'
Booking
The booking response gives information about the room (details, facilities, room type and category), the breakfast (type: buffet or “carta”), the included activities and dates, the price information and the cancellation policy.
Attributes
id [string] - Id of the booking. - Example: ae79bc1a-e864-4cfc-8579-9ad4598ab95e.
stay
title [string] - Title of the offer. Example: Weekend au cœur de Paris.
familyComposition
adults [number] - Number of adults. - Example: 2.
children [number] - Number of children. - Example: 2.
babies [number] - Number of babies. - Example: 2.
period
checkin [string] - Checkin date of the booking. Example: 2023-04-12.
checkout [string] - Checkout date of the booking. Example: 2023-04-14.
room
title [string] - Description of the room. Example: Double standard room.
nights [number] - Number of nights. Example: 4.
quantity [number] - Number of rooms. Example: 2.
breakfast
title [string] - Breakfast title - Example: 4 petits déjeneurs continentaux (buffet) pour 2 adultes.
type [string] - Breakfast type (BUFFET, A_LA_CARTE) . Example: BUFFET.
activities
title [string] - Description of the activity. Example: 1 Traversée en bateau pour 2 adultes.
selectedDay [string] - Selected dates for the activity. Example: 2023-04-12.
repeatedEveryDay [boolean] - Returns if it's a non selectable activity, due it's repeated every day. Example: false.
voucherRequired [boolean] - Returns if the activity has a voucher that should be obtained from /documents endpoint. Example: true.
price
totalAmount [number] - Total amount that the client that did the booking payed. Example: 31298.
cancellationPolicy
cancellable [boolean] - Returns if booking is cancellable. Example: true.
cancellableUntil [string] - Deadline to cancel the booking. Example: 2023-02-10.
200 OK
{
{
"id": "ae79bc1a-e864-4cfc-8579-9ad4598ab95e",
"stay": {
"title": "Week-end au cœur de Paris",
"familyComposition": {
"adults": 2,
"children": 0,
"babies": 2
},
"period": {
"checkin": "2023-04-12",
"checkout": "2023-04-16"
},
"room": {
"title": "Double standard Room",
"nights": 4,
"quantity": 4
},
"breakfast": {
"title": "2 petits déjeuners continentaux (buffet) pour 2 adultes",
"type": "BUFFET"
},
"activities": [
{
"title": "1 Traversée en bateau pour 2 adultes",
"selectedDay": "2023-04-12",
"repeatedEveryDay": false,
"voucherRequired": false
}
],
"price": {
"totalAmount": 31298
},
"cancellationPolicy": {
"cancellable": true,
"cancellableUntil": "2023-02-10"
}
}
}
Description
This route allows you to cancel a booking that has been previously confirmed. In case of trying to cancel a booking not belonging to you, the system won’t allow the action returning an error.
The API just needs the bookingId previously obtained in the booking request.
The API response will give the information about the cancellation type (free or payment) and the cancellation fee.
Request
Path parameter:
bookingId [number] *mandatory
- Booking Id to cancel.
Request URL
https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/cancel
Example of a request
curl -X 'POST' \
'https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/cancel' \
-H 'accept: application/json' \
-d ''
Attributes
bookingId [number] - Cancelled booking Id. - Example: 66256.
cancellationFees [number] - Amount for cancellation payment, 0 for free cancellation. Example: 0.
currency [string] - Currency of payment amount. - Example: EUR.
description [string] - Returns free or payment cancellation. Example: Free cancellation.
200 OK
{
{
"bookingId": 66256,
"cancellationFees": 0,
"currency": "EUR",
"description": "Free cancellation"
}
Description
This route allows you to check the cancellation fees of a booking that has been previously confirmed. In case of trying to check the fees of a booking not belonging to you, the system won’t allow the action returning an error.
The API just needs the bookingId previously obtained in the booking request.
The API response will give the information about the cancellation type (free or payment) and the cancellation fee.
For the cancellation policy, bear in mind that when an offer is cancellable, we always keep the 20% of the offer value as fees.
Request
Path parameter:
bookingId [number] *mandatory
- Booking Id to get the cancellation fee.
Request URL
https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/cancellation-fees
Example of a request
curl -X 'GET' \
'https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/cancellation-fees' \
-H 'accept: application/json'
Response
Attributes
bookingId [number] - Cancelled booking Id. - Example: 66256.
cancellationFees [number] - Amount for cancellation payment, 0 for free cancellation. Example: 0.
currency [string] - Currency of payment amount. - Example: EUR.
description [string] - Returns free or payment cancellation. Example: Free cancellation.
200 OK
{
{
"bookingId": 66256,
"cancellationFees": 0,
"currency": "EUR",
"description": "Free cancellation"
}
Description
This route allows you to retrieve the vouchers link of those activities that require this kind of information. In case of having activities documentation, the API is returning a link with the required voucher to be used by the final client. Not all the activities require vouchers and, in this case, the response will be a 404 HTTP error response code.
In order to know when an activity has a voucher associated, check the offers endpoint, activities object, voucherRequired field.
Request
Path parameter:
bookingId [number] *mandatory
- Booking Id to get the activityDocuments.
Request URL
https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/documents
Example of a request
curl -X 'GET' \
'https://outbound-api.weekendesk.com/bookings/ae79bc1a-e864-4cfc-8579-9ad4598ab95e/documents' \
-H 'accept: application/json'
Response
Attributes
activityDocuments
voucherUrl [string] - Url to download the activityDocuments. - Example: https://www.weekendesk.es/mvc/downloadvoucher.jsp?b=349357511&type=KlantActivityVoucher&baw=58861006&checksum=2140f69af21db29b544256a623150a0d
description [string] - Description of the activityDocuments. Example: 1 Dîner sous forme de buffet.
200 OK
{
{
"activityDocuments": [
{
"voucherUrl": "https://www.weekendesk.es/mvc/downloadvoucher.jsp?b=ae79bc1a-e864-4cfc-8579-9ad4598ab95e&type=KlantActivityVoucher&baw=58861006&checksum=2140f69af21db29b544256a623150a0d",
"description": "1 Dîner sous forme de buffet"
}
]
}