API reference
Calculate a booking
Calculate a booking
path Parameters
channelReference required | string The external reference of the channel |
version required | string |
Request Body schema: application/json
The calculate request object
arrivalDate required | string <date-time> |
departureDate required | string <date-time> |
productId required | string non-empty |
required | object (TravelCompositionRequest) |
required | Array of objects (ArticleRequest) List with optional articles, can be empty. |
sessionId | string or null To create a session, a session id can be passed here. When empty no session will be used. |
Responses
Request samples
- Payload
{- "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "articles": [ ]
}
Response samples
- 200
{- "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "calculatedArticles": [
- {
- "payAt": "resort",
- "articleId": "art_hs71tz27",
- "quantity": 1,
- "included": "mandatory",
- "articleType": "Rent",
- "description": "Dit is de te betalen huur",
- "isPreferredBooking": false,
- "price": 20,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-10-25T00:00:00+01:00",
- "calculationMethod": "perNight",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 10,
- "isPackage": true,
- "translations": [
- {
- "name": "Huur",
- "description": "Dit is een alternatieve omschrijving",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is an alternate description",
- "language": "en"
}
]
}, - {
- "fromDate": "2023-10-18T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "calculationMethod": "perNight",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 10,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Huur",
- "description": "Dit is de te betalen huur",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is the rent to be paid",
- "language": "en"
}
], - "classification": "stay_accommodation"
}, - {
- "payAt": "resort",
- "articleId": "art_4mjb7vt",
- "quantity": 0,
- "included": "mandatory",
- "articleType": "Discount",
- "description": "Korting",
- "isPreferredBooking": false,
- "price": -2,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "calculationMethod": "percentage",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": -2,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Korting",
- "description": "Korting",
- "language": "nl"
}, - {
- "name": "Discount",
- "description": "Discount",
- "language": "en"
}
], - "classification": "discount_code"
}
], - "optionalArticles": [
- {
- "payAt": "resort",
- "articleId": "art_tw0998y1",
- "quantity": 0,
- "included": "optional",
- "articleType": "Normal",
- "description": "Bedlinnen",
- "isPreferredBooking": false,
- "price": 5,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "calculationMethod": "fixed",
- "calculationPerTravelComposition": "none",
- "offerType": "optional",
- "price": 5,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Bedlinnen",
- "description": "Bedlinnen",
- "language": "nl"
}, - {
- "name": "Bedding",
- "description": "Bedding",
- "language": "en"
}
]
}
], - "nettPrice": 18,
- "discount": -2,
- "deposit": 0
}
Create a booking
Create a booking
path Parameters
channelReference required | string The external reference of the channel |
version required | string |
Request Body schema: application/json
The create booking request object
required | object (GuestBase) |
otaReservationNumber | string or null [ 0 .. 50 ] characters |
otaLabel | string or null [ 0 .. 80 ] characters |
guestRemark | string or null [ 0 .. 2000 ] characters |
arrivalDate required | string <date-time> |
departureDate required | string <date-time> |
productId required | string non-empty |
required | object (TravelCompositionRequest) |
required | Array of objects (ArticleRequest) List with optional articles, can be empty. |
sessionId | string or null To create a session, a session id can be passed here. When empty no session will be used. |
Responses
Request samples
- Payload
{- "guest": {
- "surname": "Smith",
- "firstName": "John",
- "email": "johnsmit@stratech.nl",
- "phoneNumber": "PhoneNumber",
- "postalCode": "PostalCode",
- "street": "Street",
- "houseNumber": "HouseNumber",
- "city": "City",
- "languageCode": "nl",
- "countryCode": "NL",
- "dateOfBirth": "1990-08-16"
}, - "guestRemark": "A remark or message from the guest",
- "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "articles": [
- {
- "articleId": "art_tw0998y1",
- "quantity": 1
}
]
}
Response samples
- 200
{- "reservationNumber": "202200176",
- "otaReservationNumber": "qyb1zsl0tw",
- "paymentTerms": [
- {
- "expireDate": "2023-10-18T00:00:00+02:00",
- "amount": 9,
- "outstandingAmount": 0
}, - {
- "expireDate": "2023-10-25T00:00:00+02:00",
- "amount": 9,
- "outstandingAmount": 0
}
], - "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "calculatedArticles": [
- {
- "payAt": "resort",
- "articleId": "art_hs71tz27",
- "quantity": 1,
- "included": "mandatory",
- "articleType": "Rent",
- "description": "Dit is de te betalen huur",
- "isPreferredBooking": false,
- "price": 23,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-10-25T00:00:00+01:00",
- "offerType": "mandatory",
- "price": 10,
- "isPackage": true,
- "translations": [
- {
- "name": "Huur",
- "description": "Dit is een alternatieve omschrijving",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is an alternate description",
- "language": "en"
}
]
}, - {
- "fromDate": "2023-11-01T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "offerType": "mandatory",
- "price": 13,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Huur",
- "description": "Dit is de te betalen huur",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is the rent to be paid",
- "language": "en"
}
], - "classification": "stay_accommodation"
}, - {
- "payAt": "resort",
- "articleId": "art_tw0998y1",
- "quantity": 0,
- "included": "optional",
- "articleType": "Normal",
- "description": "Bedlinnen",
- "isPreferredBooking": false,
- "price": 5,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "offerType": "optional",
- "price": 5,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Bedlinnen",
- "description": "Bedlinnen",
- "language": "nl"
}, - {
- "name": "Bedding",
- "description": "Bedding",
- "language": "en"
}
]
}, - {
- "payAt": "resort",
- "articleId": "art_4mjb7vt",
- "quantity": 0,
- "included": "mandatory",
- "articleType": "Discount",
- "description": "Korting",
- "isPreferredBooking": false,
- "price": -2,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "offerType": "mandatory",
- "price": -2,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Korting",
- "description": "Korting",
- "language": "nl"
}, - {
- "name": "Discount",
- "description": "Discount",
- "language": "en"
}
], - "classification": "discount_code"
}
], - "nettPrice": 23,
- "discount": -2,
- "deposit": 0
}
Get the status of all bookings with a creation date between the start and end date for a channel
Get the status of all bookings with a creation date between the start and end date for a channel
path Parameters
version required | string |
query Parameters
startDate | string <date-time> The start date of the period of bookings to get |
endDate | string <date-time> The end date of the period of bookings to get |
channelReference | string (Optional) The external reference of the channel |
Responses
Response samples
- 200
[- {
- "reservationNumber": "202200176",
- "otaReservationNumber": "qyb1zsl0tw",
- "bookingDate": "2023-10-18T00:00:00+02:00",
- "rent": 100,
- "cancelled": false,
- "commision": 1
}, - {
- "reservationNumber": "202200177",
- "otaReservationNumber": "484ufkku4t",
- "bookingDate": "2023-10-13T00:00:00+02:00",
- "rent": 250,
- "cancelled": true,
- "commision": 2.5
}
]
Get a los pricing dataset
Get the length of stay pricing dataset for an OTA channel
path Parameters
resortId required | string The id of the resort |
channelReference required | string The external reference of the channel |
key required | string The key of the los dataset ({yyyy-mm-dd}-v1) |
version required | string |
Responses
Response samples
- 200
- 400
- 404
{- "reference": "Booking",
- "products": [
- {
- "productId": "prod_919v82q1",
- "articleDetails": [
- {
- "id": "art_hs71tz27",
- "articleType": "rent",
- "payAt": "resort",
- "classification": "stay_accommodation",
- "maxAllowed": 1,
- "translations": [
- {
- "name": "Huur",
- "description": "Dit is de te betalen huur",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is the rent to be paid",
- "language": "en"
}
]
}, - {
- "id": "art_md41bwfk",
- "articleType": "normal",
- "payAt": "resort",
- "classification": "reservation_fee",
- "maxAllowed": 3,
- "translations": [
- {
- "name": "Reserveringskosten",
- "language": "nl"
}, - {
- "name": "Reservation fee",
- "language": "en"
}
]
}
], - "losPriceAvailability": [
- {
- "arrivalDate": "2022-04-01T00:00:00+02:00",
- "lengthOfStay": 3,
- "nettPrice": 112,
- "discount": 0,
- "unitsAvailable": 15,
- "articleLosDetails": [
- {
- "articleId": "art_hs71tz27",
- "quantity": 1,
- "price": 100,
- "priceDetails": [
- {
- "fromDate": "2022-04-01T00:00:00+02:00",
- "tillDate": "2022-04-04T00:00:00+02:00",
- "calculationMethod": "perPeriod",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 100
}
]
}, - {
- "articleId": "art_md41bwfk",
- "quantity": 1,
- "price": 12,
- "priceDetails": [
- {
- "fromDate": "2022-04-01T00:00:00+02:00",
- "tillDate": "2022-04-04T00:00:00+02:00",
- "calculationMethod": "once",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 12
}
]
}
]
}
]
}
]
}
Get relevant organizations per OTA channel
Get per OTA channel the organizations and their resorts that distribute to this OTA channel.
path Parameters
version required | string |
Responses
Response samples
- 200
[- {
- "externalReference": "ota_channel_reference",
- "organizations": [
- {
- "id": "org_dkqb2rpb",
- "name": "Leisure Parks B.V.",
- "resorts": [
- {
- "id": "rst_ny2yx04d",
- "name": "Camping de Twentsche Hoogte"
}
]
}
]
}
]
Response samples
- 200
{- "name": "Leisure Parks B.V.",
- "featureCategories": [
- {
- "translations": [
- {
- "name": "Categorie",
- "language": "nl"
}, - {
- "name": "Category",
- "language": "en"
}
], - "index": 1,
- "features": [
- {
- "id": "ft_9k943",
- "translations": [
- {
- "name": "Eigen sanitair",
- "language": "nl"
}, - {
- "name": "Own sanitary facilities",
- "language": "en"
}
], - "type": "boolean"
}
]
}
], - "paymentMethods": [
- {
- "id": "pm_42t9a",
- "translations": [
- {
- "name": "iDeal",
- "language": "nl"
}, - {
- "name": "iDeal",
- "language": "en"
}
]
}, - {
- "id": "pm_g4p31",
- "translations": [
- {
- "name": "Bank",
- "language": "nl"
}, - {
- "name": "Bank",
- "language": "en"
}
]
}
], - "referrals": [
- {
- "id": "ref_42t9a",
- "translations": [
- {
- "name": "Advertentie",
- "language": "nl"
}, - {
- "name": "Advert",
- "language": "en"
}
]
}, - {
- "id": "ref_g4p31",
- "translations": [
- {
- "name": "Google",
- "language": "nl"
}, - {
- "name": "Google",
- "language": "en"
}
]
}
], - "salutations": [
- {
- "id": "sal_c307h",
- "translations": [
- {
- "abbreviation": "Dhr",
- "name": "Heer",
- "language": "nl"
}, - {
- "abbreviation": "Sir",
- "name": "Sir",
- "language": "en"
}
]
}, - {
- "id": "sal_ix6ry",
- "translations": [
- {
- "abbreviation": "Mevr",
- "name": "Mevrouw",
- "language": "nl"
}, - {
- "abbreviation": "Madam",
- "name": "Madam",
- "language": "en"
}
]
}
], - "resorts": [
- {
- "address": {
- "street": "Pantheon",
- "houseNumber": "15",
- "postalCode": "7521 AA",
- "city": "Enschede",
- "country": "NL",
- "location": {
- "latitude": 52.239719699185954,
- "longitude": 6.837230311957692
}
}, - "travelCompositions": {
- "persons": {
- "adults": {
- "active": true,
- "age": {
- "from": 18
}, - "translations": [
- {
- "name": "Volwassene",
- "language": "nl"
}, - {
- "name": "Adult",
- "language": "en"
}
]
}, - "youngAdults": {
- "active": false
}, - "children": {
- "active": true,
- "age": {
- "from": 2,
- "to": 18
}, - "translations": [
- {
- "name": "Kind",
- "language": "nl"
}, - {
- "name": "Child",
- "language": "en"
}
]
}, - "babies": {
- "active": true,
- "age": {
- "from": 0,
- "to": 2
}, - "translations": [
- {
- "name": "Volwassene",
- "language": "nl"
}, - {
- "name": "Adult",
- "language": "en"
}
]
}
}, - "pets": {
- "active": true,
- "translations": [
- {
- "name": "Huisdier",
- "language": "nl"
}, - {
- "name": "Pet",
- "language": "en"
}
]
}
}, - "unitCategories": [
- {
- "id": "cat_1",
- "category": "Kamperen",
- "unitKinds": [
- {
- "id": "unt_h7wc94yj",
- "translations": [
- {
- "name": "Kamperen",
- "language": "nl"
}, - {
- "name": "Camping",
- "language": "en"
}
], - "unitTypes": [
- {
- "id": "unc_4mkqnsx",
- "translations": [
- {
- "name": "Kampeerplaats",
- "language": "nl"
}, - {
- "name": "Camping site",
- "language": "en"
}
], - "code": "kam",
- "capacity": {
- "persons": {
- "adults": {
- "min": 1,
- "max": 4,
- "extra": 0
}, - "children": {
- "min": 0,
- "max": 3,
- "extra": 0
}, - "babies": {
- "min": 0,
- "max": 3,
- "extra": 0
}, - "min": 4,
- "max": 1,
- "extra": 0
}, - "pets": {
- "min": 0,
- "max": 1,
- "extra": 0
}
}, - "features": [
- {
- "id": "ft_9k943",
- "value": true
}
], - "units": [
- {
- "id": "unit_p6b24byn",
- "translations": [
- {
- "name": "Kampeerplaats 1",
- "language": "nl"
}, - {
- "name": "Camping site 1",
- "language": "en"
}
], - "code": "KP1",
- "overruleFeatures": [
- {
- "id": "ft_9k943",
- "value": false
}
]
}, - {
- "id": "unit_b0vdsm61",
- "translations": [
- {
- "name": "Kampeerplaats 2",
- "language": "nl"
}, - {
- "name": "Camping site 2",
- "language": "en"
}
], - "code": "KP2"
}, - {
- "id": "unit_h6vvcd3h",
- "translations": [
- {
- "name": "Kampeerplaats 3",
- "language": "nl"
}, - {
- "name": "Camping site 3",
- "language": "en"
}
], - "code": "KP3",
- "overruleCapacity": {
- "persons": {
- "children": {
- "extra": 1
}, - "babies": {
- "extra": 1
}, - "extra": 1
}
}
}
]
}
]
}
]
}
], - "products": [
- {
- "id": "prod_919v82q1",
- "code": "B1",
- "translations": [
- {
- "name": "Bungalow 4-persoons",
- "language": "nl"
}, - {
- "name": "Bungalow 4-persons",
- "language": "en"
}
], - "arrivalFrom": "15:00",
- "departureBefore": "10:00",
- "images": [
- {
- "url": "url",
- "type": "primary"
}
], - "unitTypes": [
- "unc_4mkqnsx"
], - "units": [
- "unit_p6b24byn",
- "unit_b0vdsm61",
- "unit_h6vvcd3h"
]
}, - {
- "id": "prod_dimpq982",
- "code": "B1L",
- "translations": [
- {
- "name": "Bungalow 4-persoons Luxe",
- "language": "nl"
}, - {
- "name": "Bungalow 4-persons Luxurious",
- "language": "en"
}
], - "unitTypes": [
- "unc_4mkqnsx"
], - "units": [
- "unit_p6b24byn",
- "unit_b0vdsm61",
- "unit_h6vvcd3h"
]
}
], - "id": "rst_ny2yx04d",
- "name": "Camping de Twentsche Hoogte"
}
], - "distributionChannels": [
- {
- "id": "dc_4bx6hhff",
- "name": "distribution channel"
}
]
}
Calculate a booking
Calculate a booking
path Parameters
channelId required | string The id of the channel |
version required | string |
Request Body schema: application/json
The calculate request object
preferredUnitId | string or null |
promotionalCode | string or null |
arrivalDate required | string <date-time> |
departureDate required | string <date-time> |
productId required | string non-empty |
required | object (TravelCompositionRequest) |
required | Array of objects (ArticleRequest) List with optional articles, can be empty. |
sessionId | string or null To create a session, a session id can be passed here. When empty no session will be used. |
Responses
Request samples
- Payload
{- "preferredUnitId": "unit_n06q6gx0",
- "promotionalCode": "Promotion22",
- "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "articles": [ ]
}
Response samples
- 200
{- "preferredUnitId": "unit_n06q6gx0",
- "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "calculatedArticles": [
- {
- "isPromotional": false,
- "articleId": "art_hs71tz27",
- "quantity": 1,
- "included": "mandatory",
- "articleType": "Rent",
- "description": "Dit is de te betalen huur",
- "isPreferredBooking": false,
- "price": 20,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-10-25T00:00:00+01:00",
- "calculationMethod": "perNight",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 9,
- "isPackage": true,
- "translations": [
- {
- "name": "Huur",
- "description": "Dit is een alternatieve omschrijving",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is an alternate description",
- "language": "en"
}
]
}, - {
- "fromDate": "2023-11-01T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "calculationMethod": "perNight",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 11,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Huur",
- "description": "Dit is de te betalen huur",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is the rent to be paid",
- "language": "en"
}
]
}, - {
- "isPromotional": true,
- "articleId": "art_4mjb7vt",
- "quantity": 0,
- "included": "mandatory",
- "articleType": "Discount",
- "description": "Korting",
- "isPreferredBooking": false,
- "price": -2,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "calculationMethod": "percentage",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": -2,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Korting",
- "description": "Korting",
- "language": "nl"
}, - {
- "name": "Discount",
- "description": "Discount",
- "language": "en"
}
]
}
], - "optionalArticles": [
- {
- "isPromotional": false,
- "articleId": "art_tw0998y1",
- "quantity": 0,
- "included": "optional",
- "articleType": "Normal",
- "description": "Bedlinnen",
- "isPreferredBooking": false,
- "price": 5,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "calculationMethod": "fixed",
- "calculationPerTravelComposition": "none",
- "offerType": "optional",
- "price": 5,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Bedlinnen",
- "description": "Bedlinnen",
- "language": "nl"
}, - {
- "name": "Bedding",
- "description": "Bedding",
- "language": "en"
}
]
}, - {
- "isPromotional": true,
- "articleId": "art_jy5sy4h3",
- "quantity": 0,
- "included": "optional",
- "articleType": "Normal",
- "isPreferredBooking": false,
- "price": 5,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "calculationMethod": "once",
- "calculationPerTravelComposition": "none",
- "offerType": "optional",
- "price": 0,
- "isPackage": false,
- "translations": [
- {
- "name": "Gratis fles wijn",
- "language": "nl"
}, - {
- "name": "Free bottle of wine",
- "language": "en"
}
]
}
], - "translations": [
- {
- "name": "Fles wijn",
- "language": "nl"
}, - {
- "name": "Bottle of wine",
- "language": "en"
}
]
}
], - "nettPrice": 18,
- "discount": -2,
- "deposit": 0
}
Create a booking
Create a booking
path Parameters
channelId required | string The id of the channel |
version required | string |
Request Body schema: application/json
The create booking request object
preferredUnitId | string or null |
promotionalCode | string or null |
licensePlates | Array of strings or null |
required | object (WebPartnerGuest) |
otaReservationNumber | string or null [ 0 .. 50 ] characters |
otaLabel | string or null [ 0 .. 80 ] characters |
guestRemark | string or null [ 0 .. 2000 ] characters |
arrivalDate required | string <date-time> |
departureDate required | string <date-time> |
productId required | string non-empty |
required | object (TravelCompositionRequest) |
required | Array of objects (ArticleRequest) List with optional articles, can be empty. |
sessionId | string or null To create a session, a session id can be passed here. When empty no session will be used. |
Responses
Request samples
- Payload
{- "preferredUnitId": "unit_n06q6gx0",
- "promotionalCode": "Promotion22",
- "licensePlates": [
- "A-123-AB",
- "B-123-AB"
], - "guest": {
- "referralId": "ref_4ym9xm2m",
- "surname": "Smith",
- "firstName": "John",
- "email": "johnsmit@stratech.nl",
- "countryCode": "nl"
}, - "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "articles": [
- {
- "articleId": "art_tw0998y1",
- "quantity": 1
}, - {
- "articleId": "art_jy5sy4h3",
- "quantity": 1
}
]
}
Response samples
- 200
{- "preferredUnitId": "unit_n06q6gx0",
- "reservationNumber": "202200176",
- "paymentTerms": [
- {
- "expireDate": "2023-10-18T00:00:00+02:00",
- "amount": 9,
- "outstandingAmount": 0
}, - {
- "expireDate": "2023-10-25T00:00:00+02:00",
- "amount": 9,
- "outstandingAmount": 0
}
], - "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}, - "calculatedArticles": [
- {
- "isPromotional": false,
- "articleId": "art_hs71tz27",
- "quantity": 1,
- "included": "mandatory",
- "articleType": "Rent",
- "description": "Dit is de te betalen huur",
- "isPreferredBooking": false,
- "price": 23,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-10-25T00:00:00+01:00",
- "offerType": "mandatory",
- "price": 10,
- "isPackage": true,
- "translations": [
- {
- "name": "Huur",
- "description": "Dit is een alternatieve omschrijving",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is an alternate description",
- "language": "en"
}
]
}, - {
- "fromDate": "2023-11-01T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "offerType": "mandatory",
- "price": 13,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Huur",
- "description": "Dit is de te betalen huur",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is the rent to be paid",
- "language": "en"
}
]
}, - {
- "isPromotional": false,
- "articleId": "art_tw0998y1",
- "quantity": 0,
- "included": "optional",
- "articleType": "Normal",
- "description": "Bedlinnen",
- "isPreferredBooking": false,
- "price": 5,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "offerType": "optional",
- "price": 5,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Bedlinnen",
- "description": "Bedlinnen",
- "language": "nl"
}, - {
- "name": "Bedding",
- "description": "Bedding",
- "language": "en"
}
]
}, - {
- "isPromotional": true,
- "articleId": "art_jy5sy4h3",
- "quantity": 1,
- "included": "optional",
- "articleType": "normal",
- "isPreferredBooking": false,
- "price": 0,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "offerType": "optional",
- "price": 0,
- "isPackage": false,
- "translations": [
- {
- "name": "Gratis fles wijn",
- "language": "nl"
}, - {
- "name": "Free bottle of wine",
- "language": "en"
}
]
}
], - "translations": [
- {
- "name": "Fles wijn",
- "language": "nl"
}, - {
- "name": "Bottle of wine",
- "language": "en"
}
]
}, - {
- "isPromotional": true,
- "articleId": "art_4mjb7vt",
- "quantity": 0,
- "included": "mandatory",
- "articleType": "discount",
- "description": "Korting",
- "isPreferredBooking": false,
- "price": -2,
- "priceDetails": [
- {
- "fromDate": "2023-10-25T00:00:00+02:00",
- "tillDate": "2023-11-01T00:00:00+01:00",
- "offerType": "mandatory",
- "price": -2,
- "isPackage": false,
- "translations": [ ]
}
], - "translations": [
- {
- "name": "Korting",
- "description": "Korting",
- "language": "nl"
}, - {
- "name": "Discount",
- "description": "Discount",
- "language": "en"
}
]
}
], - "nettPrice": 23,
- "discount": -2,
- "deposit": 0
}
Get available units
Get available units
path Parameters
channelId required | string The id of the channel |
version required | string |
Request Body schema: application/json
The available units request object
arrivalDate required | string <date-time> |
departureDate required | string <date-time> |
productId required | string non-empty |
object (TravelCompositionRequest) | |
sessionId | string or null |
Responses
Request samples
- Payload
{- "arrivalDate": "2023-10-25T00:00:00+02:00",
- "departureDate": "2023-11-01T00:00:00+01:00",
- "productId": "prod_t3qvyvtp",
- "travelComposition": {
- "adults": 2,
- "children": 0,
- "babies": 0,
- "pets": 0
}
}
Response samples
- 200
{- "unitIds": [
- "unit_n06q6gx0",
- "unit_gff07pzv",
- "unit_b6x3rxnj",
- "unit_p5x87hc1",
- "unit_m2p84hn9",
- "unit_vr3vm7v7",
- "unit_6vgqwvd",
- "unit_mtwff6pm",
- "unit_r1dm3yd1",
- "unit_nhkv434q"
]
}
Returns the reservation payment terms if the total amount is greater than 0
Returns the reservation payment terms
path Parameters
reservationNumber required | string The reservationnumber of which the paymentterms are to be returned |
version required | string |
Responses
Response samples
- 200
[- {
- "expireDate": "2019-08-24T14:15:22Z",
- "amount": 0,
- "outstandingAmount": 0
}
]
Create payment at booking
Create payment at booking
path Parameters
reservationNumber required | string The id of the channel |
version required | string |
Request Body schema: application/json
The create payment request object
paymentDate required | string <date-time> |
paymentMethodId required | string non-empty |
amount required | number <double> |
description | string or null |
Responses
Request samples
- Payload
{- "paymentDate": "2023-10-18T00:00:00+02:00",
- "paymentMethodId": "pm_w3gf38",
- "amount": 123.45,
- "description": "Preferably a payment reference"
}
Response samples
- 200
{- "id": "gst_cnsj8qmy",
- "surname": "Smith",
- "firstName": "John",
- "initials": "J",
- "dateOfBirth": "1988-04-14",
- "salutationTranslations": [
- {
- "abbreviation": "Dhr",
- "name": "Heer",
- "language": "nl"
}, - {
- "abbreviation": "Sir",
- "name": "Sir",
- "language": "en"
}
], - "languageCode": "NL",
- "iban": "NL18RABO0123459876",
- "bic": "RABONL2U",
- "emailAddresses": [
- {
- "value": "johnsmit@stratech.nl",
- "isPrimary": true
}
], - "phoneNumbers": [
- {
- "value": "923-268-8725",
- "isPrimary": true
}, - {
- "value": "923-245-3333",
- "isPrimary": false
}
]
}
Get reservations
Get reservations belonging to the guest
path Parameters
version required | string |
Responses
Response samples
- 200
[- {
- "reservationNumber": "string",
- "bookingDate": "2019-08-24T14:15:22Z",
- "status": "string",
- "cancellation": {
- "cancellationDate": "2019-08-24T14:15:22Z",
- "cancellationScaleTranslations": [
- {
- "name": "string",
- "description": "string",
- "language": "string"
}
], - "cancellationScalePercentage": 0,
- "reason": "string",
- "cancellationCoveredByInsurance": "string"
}, - "pricePeriod": {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "amountOfNights": 0
}, - "stayPeriod": {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "amountOfNights": 0
}, - "product": {
- "id": "string",
- "code": "string",
- "translations": [
- {
- "name": "string",
- "description": "string",
- "language": "string"
}
]
}, - "unit": {
- "id": "string",
- "code": "string",
- "isPreferred": true,
- "unitType": {
- "id": "string",
- "code": "string",
- "translations": [
- {
- "name": "string",
- "description": "string",
- "language": "string"
}
]
}, - "translations": [
- {
- "name": "string",
- "description": "string",
- "language": "string"
}
]
}, - "travelComposition": [
- {
- "period": {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "amountOfNights": 0
}, - "persons": {
- "adults": 0,
- "youngAdults": 0,
- "children": 0,
- "babies": 0,
- "total": 0
}, - "pets": {
- "total": 0
}, - "type": "string"
}
], - "financial": {
- "totalPrice": 0,
- "totalDeposit": 0,
- "totalDepositDeduction": 0,
- "totalCancellationAmountOfInsurer": 0,
- "totalPaidAmount": 0,
- "totalOutstandingAmount": 0,
- "totalOverdueAmount": 0
}, - "remarks": {
- "guestRemark": "string",
- "externalRemark": "string"
}, - "articles": [
- {
- "id": "string",
- "inclusion": "string",
- "type": "string",
- "totalPrice": 0,
- "quantity": 0,
- "translations": [
- {
- "name": "string",
- "description": "string",
- "language": "string"
}
], - "classification": "string",
- "manualName": "string",
- "isAddedByPromotionalCode": true,
- "deposit": {
- "deduction": 0,
- "reason": "string",
- "retour": 0
}
}
], - "paymentTerms": [
- {
- "expireDate": "2019-08-24T14:15:22Z",
- "amount": 0,
- "paidAmount": 0,
- "outstandingAmount": 0,
- "overdueAmount": 0
}
], - "payments": [
- {
- "paymentDate": "2019-08-24T14:15:22Z",
- "paymentMethod": {
- "id": "string",
- "type": "string",
- "translations": [
- {
- "name": "string",
- "description": "string",
- "language": "string"
}
]
}, - "amount": 0,
- "description": "string",
- "couponCode": "string"
}
], - "licensePlates": [
- "string"
]
}
]
Get a reservation
Get details of the reservation from the reservation number
path Parameters
reservationNumber required | string The reservation number |
version required | string |
Responses
Response samples
- 200
{- "reservationNumber": "202200176",
- "bookingDate": "2023-10-18T00:00:00+02:00",
- "status": "reservation",
- "pricePeriod": {
- "startDate": "2023-10-25T00:00:00+02:00",
- "endDate": "2023-11-01T00:00:00+01:00",
- "amountOfNights": 7
}, - "stayPeriod": {
- "startDate": "2023-10-25T00:00:00+02:00",
- "endDate": "2023-11-01T00:00:00+01:00",
- "amountOfNights": 7
}, - "product": {
- "id": "prod_919v82q1",
- "code": "B1",
- "translations": [
- {
- "name": "Kamperen 4-persoons",
- "language": "nl"
}, - {
- "name": "Camping 4-persons",
- "language": "en"
}
]
}, - "unit": {
- "id": "unit_p6b24byn",
- "code": "KP1",
- "isPreferred": false,
- "unitType": {
- "id": "unc_4mkqnsx",
- "code": "kam",
- "translations": [
- {
- "name": "Kampeerplaats",
- "language": "nl"
}, - {
- "name": "Camping site",
- "language": "en"
}
]
}, - "translations": [
- {
- "name": "Kampeerplaats 1",
- "language": "nl"
}, - {
- "name": "Camping site 1",
- "language": "en"
}
]
}, - "travelComposition": [
- {
- "period": {
- "startDate": "2023-10-25T00:00:00+02:00",
- "endDate": "2023-11-01T00:00:00+01:00",
- "amountOfNights": 7
}, - "persons": {
- "adults": 2,
- "youngAdults": 0,
- "children": 1,
- "babies": 0,
- "total": 3
}, - "pets": {
- "total": 1
}, - "type": "full"
}, - {
- "period": {
- "startDate": "2023-10-27T00:00:00+02:00",
- "endDate": "2023-10-29T00:00:00+02:00",
- "amountOfNights": 2
}, - "persons": {
- "adults": 3,
- "youngAdults": 0,
- "children": 1,
- "babies": 0,
- "total": 3
}, - "pets": {
- "total": 1
}, - "type": "partial"
}
], - "financial": {
- "totalPrice": 100,
- "totalDeposit": 20,
- "totalPaidAmount": 40,
- "totalOutstandingAmount": 60,
- "totalOverdueAmount": 10
}, - "remarks": {
- "guestRemark": "A remark or message from the guest",
- "externalRemark": "A remark or message from the resort"
}, - "articles": [
- {
- "id": "art_hs71tz27",
- "inclusion": "mandatory",
- "type": "rent",
- "totalPrice": 80,
- "quantity": 1,
- "translations": [
- {
- "name": "Huur",
- "description": "Dit is de te betalen huur",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is the rent to be paid",
- "language": "en"
}
], - "classification": "stay_accommodation",
- "isAddedByPromotionalCode": false
}
], - "paymentTerms": [
- {
- "expireDate": "2023-10-11T00:00:00+02:00",
- "amount": 25,
- "paidAmount": 25,
- "outstandingAmount": 0,
- "overdueAmount": 0
}, - {
- "expireDate": "2023-10-15T00:00:00+02:00",
- "amount": 25,
- "paidAmount": 15,
- "outstandingAmount": 10,
- "overdueAmount": 10
}, - {
- "expireDate": "2023-10-25T00:00:00+02:00",
- "amount": 50,
- "paidAmount": 0,
- "outstandingAmount": 50,
- "overdueAmount": 0
}
], - "payments": [
- {
- "paymentDate": "2023-10-18T06:09:49.304339+00:00",
- "paymentMethod": {
- "id": "pm_g4p31",
- "type": "bank",
- "translations": [
- {
- "name": "Bank",
- "language": "nl"
}, - {
- "name": "Bank",
- "language": "en"
}
]
}, - "amount": 40,
- "description": "Bank transfer"
}
], - "licensePlates": [
- "AA-BB-CC",
- "DD-EE-FF"
]
}
Get a los pricing dataset
Get the length of stay pricing dataset for a distribution channel
path Parameters
resortId required | string The reference of the resort |
channelId required | string The id of the channel |
key required | string The key of the los dataset ({yyyy-mm-dd}-v1) |
version required | string |
Responses
Response samples
- 200
- 400
- 404
{- "reference": "Booking",
- "products": [
- {
- "productId": "prod_919v82q1",
- "articleDetails": [
- {
- "id": "art_hs71tz27",
- "articleType": "rent",
- "payAt": "resort",
- "classification": "stay_accommodation",
- "maxAllowed": 1,
- "translations": [
- {
- "name": "Huur",
- "description": "Dit is de te betalen huur",
- "language": "nl"
}, - {
- "name": "Rent",
- "description": "This is the rent to be paid",
- "language": "en"
}
]
}, - {
- "id": "art_md41bwfk",
- "articleType": "normal",
- "payAt": "resort",
- "classification": "reservation_fee",
- "maxAllowed": 3,
- "translations": [
- {
- "name": "Reserveringskosten",
- "language": "nl"
}, - {
- "name": "Reservation fee",
- "language": "en"
}
]
}
], - "losPriceAvailability": [
- {
- "arrivalDate": "2022-04-01T00:00:00+02:00",
- "lengthOfStay": 3,
- "nettPrice": 112,
- "discount": 0,
- "unitsAvailable": 15,
- "articleLosDetails": [
- {
- "articleId": "art_hs71tz27",
- "quantity": 1,
- "price": 100,
- "priceDetails": [
- {
- "fromDate": "2022-04-01T00:00:00+02:00",
- "tillDate": "2022-04-04T00:00:00+02:00",
- "calculationMethod": "perPeriod",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 100
}
]
}, - {
- "articleId": "art_md41bwfk",
- "quantity": 1,
- "price": 12,
- "priceDetails": [
- {
- "fromDate": "2022-04-01T00:00:00+02:00",
- "tillDate": "2022-04-04T00:00:00+02:00",
- "calculationMethod": "once",
- "calculationPerTravelComposition": "none",
- "offerType": "mandatory",
- "price": 12
}
]
}
]
}
]
}
]
}