Learn how to use the /orders/modify/preview endpoint to check and validate changes in accommodation orders. This guide outlines required parameters, and practical examples to validate accommodation dates, room details or payment modifications.
Use the /orders/modify/preview endpoint to check whether a requested modification can be applied to an order and review its impact before confirming the change.
This endpoint is consultive and does not apply any changes.
Use the preview endpoint to:
✅ Validate whether a modification is allowed before attempting it.
✅ Avoid failed modification requests.
✅ Show users the expected cost impact (for accommodation date changes)
Use this endpoint as an optional step before modifying an order:
- Call /orders/modify/preview.
- Check the
modifiablefield in the response. - If true, proceed with /orders/modify.
Preview → Validate → Modify
The endpoint supports previewing the following changes:
| Modification type | Field to include in modification object | |
|---|---|---|
| Payment | Card details | type: card |
| Accommodation | Check-in and check-out dates | type: dates |
Accommodation | Room-level details (guest allocation, guest names, smoking preferences) |
|
When making a request to the orders/modify/preview endpoint, you must include:
The request body always includes:
| Required | Parameter | Description |
|---|---|---|
| ✓ | order | The order ID (string) of the booking to modify. |
| ✓ | modification | Object containing the modification details, either:
|
To check whether modifications in the payment card is possible:
- Use the
modification.paymentobject. - Set
typeto"card". - Include a
"change"object with:
number: The new credit card number.cvc: The card’s CVC code (3–4 digits).cardholder: The cardholder's name.expiry_date: The card's expiry date in YYYY-MM format.
{
"order": "6520081014",
"modification": {
"payment": {
"type": "card",
"change": {
"cardholder": "John Doe",
"number": "4111111111111111",
"expiry_date": "2027-12",
"cvc": "123"
}
}
}
}Refer to the Credit card payments section for best practices when using cards as payment method.
To check whether an accommodation date modification is possible:
- Use the
modification.accommodationobject to modify the dates. - Include the
reservationID. - Set
typeto"dates". - Include the new dates in
change(checkin and checkout) using YYYY-MM-DD format.
Modifying dates may change the total price. Check the current and new price in the response.
{
"order": "4297204980",
"modification": {
"accommodation": {
"reservation": "4297204980",
"type": "dates",
"change": {
"checkin": "2026-10-20",
"checkout": "2026-10-21"
}
}
}
}To check whether it is possible to update room-level details such as guest names, allocation, or smoking preferences:
- Use the
modification.accommodation. - Set
typetoroom. - Include the
reservationID. - In the
changeobject, specify:
room_reservationID (string).guests[].name- Update the guest name(s).allocation.number_of_adults- Update number of adults.smoking_preference- Modify the smoking preference for the room ("smoking", "non_smoking", or "no_preference").
Use /orders/details/accommodations endpoint to retrieve the room_reservation IDs located under "products" in each object. The room_reservation ID is required for all room-level modifications.
{
"order": "5000375899",
"modification": {
"accommodation": {
"reservation": "5000375899",
"type": "room",
"change": {
"room_reservation": "5448643068",
"allocation": {
"number_of_adults": 2
},
"guests": [
{ "name": "Test Test" },
{ "name": "Test2 Test" }
],
"smoking_preference": "smoking"
}
}
}
}
All responses include:
request_id– Unique identifier for the request.data.modifiable– Indicates whether the modification can be applied.
{
"data": {
"modifiable": false,
"reason": "Modification not allowed for this reservation since this order has been cancelled."
}
}| Explanation | Action |
|---|---|
| The modification cannot be applied | Do not call /orders/modify endpoint. |
The reason field explains why | Display the reason to the user. |
{
"data": {
"modifiable": true
}
}| Explanation | Action |
|---|---|
| The modification can be applied | You can proceed with /orders/modify. |
The price field indicates the new amount. | Display the updated pricing. |
For date changes, the response includes updated pricing:
{
"data": {
"modifiable": true,
"price": {
"currency": "EUR",
"current": {
"amount": 200.00
},
"new": {
"amount": 250.00
}
}
}
}Use this to:
- Show users the updated total cost.
- Highlight any price difference before confirmation.
Note: price is only included for accommodation date modifications.
- Price information is only returned for accommodation date changes.
- Not all modification scenarios may be supported.
- Behaviour and response fields may change as this endpoint is in Beta.
- Refer to the orders/modify guide to learn how to proceed the modifications.
- Find likely errors in the Error handling guide.
- Check the Cancellations guide in case you need to cancel the order instead.