9 Distribution Book Operations and Error Codes

A typical reservation book workflow process is as follows:

Book a reservation:

  1. Book a reservation: The book service receives a request to create a reservation (postReservation) using the information received in the Shop Availability response.
  2. The book service responds with a central confirmation number in OPERA Cloud.

Get a reservation:

  1. The book service receives a GET reservation call (getReservation) using the central confirmation number received during the create reservation process.
  2. The book service responds with a payload including all reservation details.

Modify a reservation:

  1. The book service receives a modify reservation call (putReservation) using the central confirmation number received during the create reservation process and the modified reservation payload.
  2. The book service responds with a payload including all modified reservation details.

Cancel a reservation:

  1. The book service receives a cancel reservation call (postCancelReservation) using the central confirmation number received during the create reservation process and the cancel reservation payload.
  2. The book service responds with a payload including the cancellation number.

On Hold (Session controlled) reservation creation / modification / cancellation:

Session Controlled Reservations are reservations that return a successful response marked as ‘pending’ and require a follow-up message to either commit or ignore (rollback) the reservation.

Create Session Controlled Reservation:

  1. The book service receives a request to create a session controlled reservation (postReservation) using the information received in the Shop Availability Response.
  2. The book service responds with a central confirmation number and the status as 'Pending.'
  • Option 1:
    1. Commit the reservation.
    2. The book service responds with the central confirmation number and the status as 'Commit.'
  • Option 2:
    1. Ignore the reservation. The reservation will be removed from OPERA.
    2. The book service responds with the central confirmation number and the status as 'Ignore.'

Modify Session Controlled Reservation

  1. The book service receives a request to Modify the reservation as session controlled (putReservation) using the central confirmation number received during the create reservation process and the modified reservation payload.
  2. The book service responds with a central confirmation number and the status as 'Pending.'
  • Option 1:
    1. Commit the reservation modification.
    2. The book service responds with the central confirmation number and the status as 'Commit.'
  • Option 2:
    1. Ignore the reservation modification. The reservation modification will be roll backed from OPERA.
    2. The book service responds with the central confirmation number and the status as 'Ignore.'

Cancel Session Controlled Reservation

  1. The book service receives a request to Cancel the reservation as session controlled (postCancelReservation) using the central confirmation number received during the create reservation process and the cancel reservation payload.
  2. The book service responds with a cancellation number and the status as 'Pending.'
  • Option 1:
    1. Commit the reservation Modification.
    2. The book service responds with the cancellation number and the status as 'Commit.'
  • Option 2:
    1. Ignore the reservation cancellation. The reservation cancellation will be roll backed from OPERA.
    2. The book service responds with the cancellation number and the status as 'Ignore.'



Sample API calls:


Create a reservation

POST {{HostName}}/book/v1/hotels/XSBOXD1/reservations

{
    "reservations": [
        {
            "roomStay": {
                "arrivalDate": "2025-02-20",
                "departureDate": "2025-02-21",
                "roomRates": [
                    {
                        "guestCounts": {
                            "adults": 1
                        },
                        "roomType": "B1K",
                        "ratePlanCode": "FLEX",
                        "numberOfUnits": 1,
                        "start": "2025-02-20",
                        "end": "2025-02-20"
                    }
                ],
                "guarantee": {
                    "guaranteeType": "38"
                },
                "printRate": true
            },
            "reservationGuests": [
                {
                    "profileInfo": {
                        "profile": {
                            "customer": {
                                "personName": [
                                    {
                                        "surname": "Reynolds",
                                        "givenName": "Amiya",
                                        "nameTitle": "Mr and Mrs",
                                        "nameType": "Primary",
                                        "email": "Krystina_Wuckert@gmail.com",
                                        "phoneNumber": "466-265-1223",
                                        "address": {
                                            "addressLine": [
                                                "2711 Samson Mission"
                                            ],
                                            "cityName": "Millerhaven",
                                            "postalCode": "CAA-90017",
                                            "country": {
                                                "code": "US"
                                            },
                                            "state": "CA"
                                        }
                                    }
                                ],
                                "language": "en-us"
                            },
                            "profileType": "Guest"
                        }
                    },
                    "primary": true
                }
            ],
            "reservationPaymentMethods": [
                {
                    "paymentMethod": "1"
                }
            ],
            "hotelCode": "XSBOXD1",
            "messageId": "52541fba-0665-4658-b557-298225a708e1",
            "comments": [
                {
                    "commentTitle": "Note from Channel SANDBOX",
                    "comment": {
                        "text": {
                            "value": "Channel Text note\n1 king bed\nNon-Smoking\nBill guest full stay"
                        },
                        "notificationLocation": "RESERVATION",
                        "type": "GEN",
                        "internal": true,
                        "confidential": false,
                        "overrideInternal": false
                    }
                }
            ]
        }
    ]
}



200 response: 

[
    {
        "reservationIds": [
            {
                "id": "224959",
                "type": "Reservation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607384",
                "type": "Confirmation",
                "idContext": "Central",
                "idExtension": "1"
            }
        ],
        "lastModifyDateTime": "2025-02-14T09:46:40Z",
        "roomStay": {
            "arrivalDate": "2025-02-20",
            "departureDate": "2025-02-21",
            "guestCounts": {
                "adults": 1,
                "children": 0
            },
            "guarantee": {
                "guaranteeCode": "6PM",
                "guaranteeType": "38"
            },
            "printRate": false,
            "roomRates": [
                {
                    "rates": {
                        "rate": [
                            {
                                "base": {
                                    "amountBeforeTax": 300,
                                    "currencyCode": "USD"
                                },
                                "start": "2025-02-20",
                                "end": "2025-02-20"
                            }
                        ]
                    },
                    "guestCounts": {
                        "adults": 1,
                        "children": 0
                    },
                    "roomType": "B1K",
                    "ratePlanCode": "FLEX",
                    "numberOfUnits": 1,
                    "start": "2025-02-20",
                    "end": "2025-02-20",
                    "ratePlanInfo": {
                        "ratePlanName": "Best Flexible Rate",
                        "identificationRequired": false
                    },
                    "suppressRate": false
                }
            ],
            "total": {
                "taxes": {
                    "tax": [
                        {
                            "description": "Resort fee",
                            "type": "Exclusive",
                            "code": "12",
                            "amount": 50,
                            "currencyCode": "USD"
                        },
                        {
                            "description": "Not known",
                            "type": "Exclusive",
                            "code": "41",
                            "amount": 75,
                            "currencyCode": "USD"
                        }
                    ],
                    "amount": 125,
                    "currencyCode": "USD"
                },
                "amountAfterTax": 425,
                "amountBeforeTax": 300
            }
        },
        "reservationGuests": [
            {
                "profileInfo": {
                    "profileIdList": [
                        {
                            "id": "1075267",
                            "type": "Profile"
                        }
                    ],
                    "profile": {
                        "customer": {
                            "personName": [
                                {
                                    "givenName": "Reese",
                                    "surname": "Stroman",
                                    "nameTitle": "Mr and Mrs",
                                    "nameType": "Primary",
                                    "email": "Marc_Ankunding80@hotmail.com",
                                    "phoneNumber": "650-595-8506",
                                    "address": {
                                        "addressLine": [
                                            "9953 Stanton Glen",
                                            null,
                                            null,
                                            null
                                        ],
                                        "cityName": "Port Pascale",
                                        "postalCode": "CAA-90017",
                                        "country": {
                                            "code": "US"
                                        },
                                        "state": "CA"
                                    }
                                }
                            ]
                        },
                        "profileType": "Guest"
                    }
                },
                "primary": true,
                "arrivalTransport": {
                    "transportationReqd": false
                },
                "departureTransport": {
                    "transportationReqd": false
                }
            }
        ],
        "reservationPaymentMethods": [
            {
                "paymentMethod": "1",
                "folioView": "1"
            }
        ],
        "reservationMemberships": [],
        "reservationPolicies": {
            "cancellationPolicies": [
                {
                    "revenueType": "Rooms",
                    "policy": {
                        "deadline": {
                            "absoluteDeadline": "2025-02-19T12:00:00Z"
                        },
                        "amountPercent": {
                            "basisType": "Nights",
                            "nights": 1,
                            "percent": 100.0,
                            "amount": 350.0,
                            "taxInclusive": false
                        },
                        "penaltyDescription": "Cancel latest by 2025-02-19 12:00 to avoid penalty of 350 USD.",
                        "policyCode": "1DAY",
                        "manual": false,
                        "effective": false
                    },
                    "percentageDue": 100,
                    "comments": "1 Day prior to arrival, forfeit 1 night",
                    "policyId": {
                        "id": "64009",
                        "type": "PolicyScheduleId"
                    }
                }
            ],
            "depositPolicies": []
        },
        "hotelCode": "XSBOXD1",
        "comments": [
            {
                "comment": {
                    "text": {
                        "value": "Channel Text note\n1 king bed\nNon-Smoking\nBill guest full stay"
                    },
                    "commentTitle": "RESERVATION"
                }
            }
        ],
        "reservationStatus": "Reserved",
        "printRate": false,
        "optedForCommunication": false,
        "propertyInfo": {
            "hotelId": "SBOXD1",
            "hotelCode": "XSBOXD1",
            "hotelName": "Sandbox New York Hotel",
            "chainCode": "OH",
            "address": {
                "addressLine": [
                    "Street Line 1",
                    "Street Line 2"
                ],
                "countryCode": "US",
                "cityName": "New York City",
                "stateProv": "US",
                "postalCode": "20012"
            },
            "direction": {
                "propertyDirection": "Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property "
            },
            "location": {
                "propertyLocation": "Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property "
            },
            "generalInformation": {
                "checkInTime": "15:00",
                "checkOutTime": "11:00"
            },
            "communications": {
                "phones": [
                    {
                        "phoneTechType": "Voice",
                        "phoneLocationType": "Property direct",
                        "phoneNumber": "11111111111"
                    }
                ],
                "emails": [
                    {
                        "emailType": "Property",
                        "email": "noreply@racle.com"
                    }
                ],
                "urls": [
                    {
                        "url": "https://www.oracle.com/hospitality/"
                    }
                ]
            },
            "marketingMessage": "Thank you for choosing our property."
        }
    }
]


Get a reservation

GET {{HostName}}/book/v1/hotels/XSBOXD1/reservations/2607384

200 Response:

[
    {
        "reservationIds": [
            {
                "id": "224959",
                "type": "Reservation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607384",
                "type": "Confirmation",
                "idContext": "Central",
                "idExtension": "1"
            }
        ],
        "lastModifyDateTime": "2025-02-14T09:46:40Z",
        "roomStay": {
            "arrivalDate": "2025-02-20",
            "departureDate": "2025-02-21",
            "guestCounts": {
                "adults": 1,
                "children": 0
            },
            "guarantee": {
                "guaranteeCode": "6PM",
                "guaranteeType": "38"
            },
            "printRate": false,
            "roomRates": [
                {
                    "rates": {
                        "rate": [
                            {
                                "base": {
                                    "amountBeforeTax": 300,
                                    "currencyCode": "USD"
                                },
                                "start": "2025-02-20",
                                "end": "2025-02-20"
                            }
                        ]
                    },
                    "guestCounts": {
                        "adults": 1,
                        "children": 0
                    },
                    "roomType": "B1K",
                    "ratePlanCode": "JVO",
                    "numberOfUnits": 1,
                    "start": "2025-02-20",
                    "end": "2025-02-21",
                    "ratePlanInfo": {
                        "ratePlanName": "Corporate Discount 1 (Max Stay Through 7 nights)",
                        "identificationRequired": false,
                        "mealPlan": {
                            "mealsIncluded": []
                        }
                    },
                    "suppressRate": false
                }
            ],
            "total": {
                "taxes": {
                    "tax": [
                        {
                            "description": "Resort fee",
                            "type": "Exclusive",
                            "code": "12",
                            "amount": 50,
                            "currencyCode": "USD"
                        },
                        {
                            "description": "Not known",
                            "type": "Exclusive",
                            "code": "41",
                            "amount": 75,
                            "currencyCode": "USD"
                        }
                    ],
                    "amount": 125,
                    "currencyCode": "USD"
                },
                "amountAfterTax": 425,
                "amountBeforeTax": 300
            }
        },
        "reservationGuests": [
            {
                "profileInfo": {
                    "profileIdList": [
                        {
                            "id": "1075267",
                            "type": "Profile"
                        }
                    ],
                    "profile": {
                        "customer": {
                            "personName": [
                                {
                                    "givenName": "Reese",
                                    "surname": "Stroman",
                                    "nameTitle": "Mr and Mrs",
                                    "nameType": "Primary",
                                    "email": "Marc_Ankunding80@hotmail.com",
                                    "phoneNumber": "650-595-8506",
                                    "address": {
                                        "addressLine": [
                                            "9953 Stanton Glen",
                                            null,
                                            null,
                                            null
                                        ],
                                        "cityName": "Port Pascale",
                                        "postalCode": "CAA-90017",
                                        "country": {
                                            "code": "US"
                                        },
                                        "state": "CA"
                                    }
                                }
                            ]
                        },
                        "profileType": "Guest"
                    }
                },
                "primary": true,
                "arrivalTransport": {
                    "transportationReqd": false
                },
                "departureTransport": {
                    "transportationReqd": false
                }
            }
        ],
        "reservationPaymentMethods": [
            {
                "paymentMethod": "1",
                "folioView": "1"
            }
        ],
        "reservationMemberships": [],
        "reservationPolicies": {
            "cancellationPolicies": [
                {
                    "revenueType": "Rooms",
                    "policy": {
                        "deadline": {
                            "absoluteDeadline": "2025-02-19T12:00:00Z"
                        },
                        "amountPercent": {
                            "basisType": "Nights",
                            "nights": 1,
                            "percent": 100.0,
                            "amount": 350.0,
                            "taxInclusive": false
                        },
                        "penaltyDescription": "Cancel latest by 2025-02-19 12:00 to avoid penalty of 350 USD.",
                        "policyCode": "1DAY",
                        "manual": false,
                        "effective": false
                    },
                    "percentageDue": 100,
                    "comments": "1 Day prior to arrival, forfeit 1 night",
                    "policyId": {
                        "id": "64009",
                        "type": "PolicyScheduleId"
                    }
                }
            ],
            "depositPolicies": []
        },
        "hotelCode": "XSBOXD1",
        "comments": [
            {
                "comment": {
                    "text": {
                        "value": "Channel Text note\n1 king bed\nNon-Smoking\nBill guest full stay"
                    },
                    "commentTitle": "RESERVATION"
                }
            }
        ],
        "reservationStatus": "Reserved",
        "printRate": false,
        "optedForCommunication": false,
        "propertyInfo": {}
    }
]


Modify a reservation

PUT {{HostName}}/book/v1/hotels/XSBOXD1/reservations/2607384

{
    "reservations": [
        {
            "reservationIdList": [
                {
                    "id": "2607384",
                    "type": "Confirmation",
                    "idContext": "Central",
                    "idExtension": "1"
                }
            ],
            "roomStay": {
                "arrivalDate": "2025-02-15",
                "departureDate": "2025-02-17",
                "roomRates": [
                    {
                        "guestCounts": {
                            "adults": 2
                        },
                        "roomType": "B1K",
                        "ratePlanCode": "FLEX",
                        "numberOfUnits": 1,
                        "start": "2025-02-15",
                        "end": "2025-02-16"
                    }
                ],
                "guarantee": {
                    "guaranteeType": "5"
                },
                "printRate": true
            },
            "reservationGuests": [
                {
                    "profileInfo": {
                        "profile": {
                            "customer": {
                                "personName": [
                                    {
                                        "surname": "Rodriguez",
                                        "givenName": "Branson",
                                        "nameTitle": "Mr and Mrs",
                                        "nameType": "Primary",
                                        "email": "Ellen21@hotmail.com",
                                        "phoneNumber": "622-329-8204",
                                        "address": {
                                            "addressLine": [
                                                "519 Adams Views"
                                            ],
                                            "cityName": "Corkeryfurt",
                                            "postalCode": "CAA-90017",
                                            "country": {
                                                "code": "US"
                                            },
                                            "state": "CA"
                                        }
                                    }
                                ],
                                "language": "en-us"
                            },
                            "profileType": "Guest"
                        }
                    },
                    "primary": true
                }
            ],
            "reservationPaymentMethods": [
                {
                    "paymentMethod": "5",
                    "folioView": "1",
                    "paymentCard": {
                        "cardType": "AX",
                        "cardNumber": "371449635398431",
                        "expirationDate": "06/29",
                        "cardHolderName": "SomeChannel VirtualCard"
                    }
                }
            ],
            "hotelCode": "XSBOXD1",
            "messageId": "a20c88dc-8bc7-4733-9e8d-56be85f3821f",
            "comments": [
                {
                    "commentTitle": "Note from Channel SANDBOX",
                    "comment": {
                        "text": {
                            "value": "Channel Text note\n1 king bed\nNon-Smoking\nBill guest full stay"
                        },
                        "notificationLocation": "RESERVATION",
                        "type": "GEN",
                        "internal": true,
                        "confidential": false,
                        "overrideInternal": false
                    }
                }
            ]
        }
    ]
}

200 Response:

[
    {
        "reservationIds": [
            {
                "id": "224959",
                "type": "Reservation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607384",
                "type": "Confirmation",
                "idContext": "Central",
                "idExtension": "1"
            }
        ],
        "lastModifyDateTime": "2025-02-14T10:10:13Z",
        "roomStay": {
            "arrivalDate": "2025-02-15",
            "departureDate": "2025-02-17",
            "guestCounts": {
                "adults": 2,
                "children": 0
            },
            "guarantee": {
                "guaranteeCode": "GCC",
                "guaranteeType": "5"
            },
            "printRate": false,
            "roomRates": [
                {
                    "rates": {
                        "rate": [
                            {
                                "base": {
                                    "amountBeforeTax": 300,
                                    "currencyCode": "USD"
                                },
                                "start": "2025-02-15",
                                "end": "2025-02-15"
                            },
                            {
                                "base": {
                                    "amountBeforeTax": 300,
                                    "currencyCode": "USD"
                                },
                                "start": "2025-02-16",
                                "end": "2025-02-16"
                            }
                        ]
                    },
                    "guestCounts": {
                        "adults": 2,
                        "children": 0
                    },
                    "roomType": "B1K",
                    "ratePlanCode": "FLEX",
                    "numberOfUnits": 1,
                    "start": "2025-02-15",
                    "end": "2025-02-17",
                    "ratePlanInfo": {
                        "ratePlanName": "Best Flexible Rate",
                        "identificationRequired": false
                    },
                    "suppressRate": false
                }
            ],
            "total": {
                "taxes": {
                    "tax": [
                        {
                            "description": "Resort fee",
                            "type": "Exclusive",
                            "code": "12",
                            "amount": 100,
                            "currencyCode": "USD"
                        },
                        {
                            "description": "Not known",
                            "type": "Exclusive",
                            "code": "41",
                            "amount": 150,
                            "currencyCode": "USD"
                        }
                    ],
                    "amount": 250,
                    "currencyCode": "USD"
                },
                "amountAfterTax": 850,
                "amountBeforeTax": 600
            }
        },
        "reservationGuests": [
            {
                "profileInfo": {
                    "profileIdList": [
                        {
                            "id": "1075273",
                            "type": "Profile"
                        }
                    ],
                    "profile": {
                        "customer": {
                            "personName": [
                                {
                                    "givenName": "Clifton",
                                    "surname": "Boehm",
                                    "nameTitle": "Mr and Mrs",
                                    "nameType": "Primary",
                                    "email": "Tyrique_Wiza52@gmail.com",
                                    "phoneNumber": "612-218-1467",
                                    "address": {
                                        "addressLine": [
                                            "5521 Nitzsche Mills",
                                            null,
                                            null,
                                            null
                                        ],
                                        "cityName": "Port Aracely",
                                        "postalCode": "CAA-90017",
                                        "country": {
                                            "code": "US"
                                        },
                                        "state": "CA"
                                    }
                                }
                            ]
                        },
                        "profileType": "Guest"
                    }
                },
                "primary": true,
                "arrivalTransport": {
                    "transportationReqd": false
                },
                "departureTransport": {
                    "transportationReqd": false
                }
            }
        ],
        "reservationPaymentMethods": [
            {
                "paymentMethod": "5",
                "folioView": "1",
                "paymentCard": {
                    "cardType": "AX",
                    "cardNumber": "XXXXXXXXXXXXXXXX",
                    "expirationDate": "XX/XX",
                    "cardHolderName": "XXXXXX",
                    "cardNumberMasked": "XXXXXXXXXXXX8431",
                    "cardOrToken": "Token"
                }
            }
        ],
        "reservationMemberships": [],
        "reservationPolicies": {
            "cancellationPolicies": [
                {
                    "revenueType": "Rooms",
                    "policy": {
                        "deadline": {
                            "absoluteDeadline": "2025-02-14T12:00:00Z"
                        },
                        "amountPercent": {
                            "basisType": "Nights",
                            "nights": 1,
                            "percent": 100.0,
                            "amount": 350.0,
                            "taxInclusive": false
                        },
                        "penaltyDescription": "Cancel latest by 2025-02-14 12:00 to avoid penalty of 350 USD.",
                        "policyCode": "1DAY",
                        "manual": false,
                        "effective": false
                    },
                    "percentageDue": 100,
                    "comments": "1 Day prior to arrival, forfeit 1 night",
                    "policyId": {
                        "id": "64009",
                        "type": "PolicyScheduleId"
                    }
                }
            ],
            "depositPolicies": []
        },
        "hotelCode": "XSBOXD1",
        "comments": [
            {
                "comment": {
                    "text": {
                        "value": "Channel Text note\n1 king bed\nNon-Smoking\nBill guest full stay"
                    },
                    "commentTitle": "RESERVATION"
                }
            }
        ],
        "reservationStatus": "ReservedChanged",
        "printRate": false,
        "optedForCommunication": false,
        "propertyInfo": {
            "hotelId": "SBOXD1",
            "hotelCode": "XSBOXD1",
            "hotelName": "Sandbox New York Hotel",
            "chainCode": "OH",
            "address": {
                "addressLine": [
                    "Street Line 1",
                    "Street Line 2"
                ],
                "countryCode": "US",
                "cityName": "New York City",
                "stateProv": "US",
                "postalCode": "20012"
            },
            "direction": {
                "propertyDirection": "Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property "
            },
            "location": {
                "propertyLocation": "Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property "
            },
            "generalInformation": {
                "checkInTime": "15:00",
                "checkOutTime": "11:00"
            },
            "communications": {
                "phones": [
                    {
                        "phoneTechType": "Voice",
                        "phoneLocationType": "Property direct",
                        "phoneNumber": "11111111111"
                    }
                ],
                "emails": [
                    {
                        "emailType": "Property",
                        "email": "noreply@racle.com"
                    }
                ],
                "urls": [
                    {
                        "url": "https://www.oracle.com/hospitality/"
                    }
                ]
            },
            "marketingMessage": "Thank you for choosing our property."
        }
    }
]


Cancel a reservation

POST {{HostName}}/book/v1/hotels/XSBOXD1/reservations/2607384/cancellations

{
    "reservations": [
        {
            "reservationIdList": [
                {
                    "id": "2607384",
                    "type": "Confirmation",
                    "idContext": "Central",
                    "idExtension": "1"
                }
            ],
            "hotelCode": "XSBOXD1",
            "messageId": "1e975740-4825-4cd3-9ed6-53dbc3719d27"
        }
    ]
}



200 Response:

[
    {
        "reservationIds": [
            {
                "id": "224959",
                "type": "Reservation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607384",
                "type": "Confirmation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607391",
                "type": "Cancellation",
                "idContext": "Central",
                "idExtension": "1"
            }
        ],
        "hotelCode": "XSBOXD1",
        "reservationStatus": "Cancelled",
        "comments": []
    }
]


Create an on hold reservation

POST {{HostName}}/book/v1/hotels/XSBOXD1/reservations

{
    "reservations": [
        {
            "roomStay": {
                "arrivalDate": "2025-02-20",
                "departureDate": "2025-02-21",
                "roomRates": [
                    {
                        "guestCounts": {
                            "adults": 1,
                            "children": 1,
                            "childAges": [
                                4
                            ]
                        },
                        "roomType": "B1K",
                        "ratePlanCode": "FLEX",
                        "numberOfUnits": 1,
                        "start": "2025-02-20",
                        "end": "2025-02-20"
                    }
                ],
                "guarantee": {
                    "guaranteeType": "5"
                },
                "printRate": true
            },
            "reservationGuests": [
                {
                    "profileInfo": {
                        "profile": {
                            "customer": {
                                "personName": [
                                    {
                                        "surname": "D'''Amore",
                                        "givenName": "Kurtis",
                                        "nameTitle": "Mr and Mrs",
                                        "nameType": "Primary",
                                        "email": "Dan38@hotmail.com",
                                        "phoneNumber": "930-398-2899",
                                        "address": {
                                            "addressLine": [
                                                "7063 Little Shoal"
                                            ],
                                            "cityName": "Daniellaville",
                                            "postalCode": "CAA-90017",
                                            "country": {
                                                "code": "US"
                                            },
                                            "state": "CA"
                                        }
                                    }
                                ],
                                "language": "en-us"
                            },
                            "profileType": "Guest"
                        }
                    },
                    "primary": true
                }
            ],
            "reservationPaymentMethods": [
                {
                    "paymentMethod": "5",
                    "folioView": "1",
                    "paymentCard": {
                        "cardType": "AX",
                        "cardNumber": "371449635398431",
                        "expirationDate": "06/25",
                        "cardHolderName": "SomeChannel VirtualCard"
                    }
                }
            ],
            "hotelCode": "XSBOXD1",
            "messageId": "86b78b93-069a-487c-8268-2d3ee4c641c1",
            "comments": [
                {
                    "comment": {
                        "text": {
                            "value": "Channel Text note\n1 king bed\nNon-Smoking\nBill guest full stay"
                        },
                        "commentTitle": "Notes from channel",
                        "notificationLocation": "RESERVATION",
                        "type": "GEN",
                        "internal": true,
                        "confidential": false,
                        "overrideInternal": false
                    }
                }
            ],
            "isSessionRequest": true
        }
    ]
}



200 Response:

[
    {
        "reservationIds": [
            {
                "id": "224972",
                "type": "Reservation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607397",
                "type": "Confirmation",
                "idContext": "Central",
                "idExtension": "1"
            }
        ],
        "lastModifyDateTime": "2025-02-14T10:37:04Z",
        "roomStay": {
            "arrivalDate": "2025-02-20",
            "departureDate": "2025-02-21",
            "guestCounts": {
                "adults": 1,
                "children": 1
            },
            "guarantee": {
                "guaranteeCode": "GCC",
                "guaranteeType": "5"
            },
            "printRate": false,
            "roomRates": [
                {
                    "rates": {
                        "rate": [
                            {
                                "base": {
                                    "amountBeforeTax": 300,
                                    "currencyCode": "USD"
                                },
                                "start": "2025-02-20",
                                "end": "2025-02-20"
                            }
                        ]
                    },
                    "guestCounts": {
                        "childAges": [
                            4
                        ],
                        "adults": 1,
                        "children": 1
                    },
                    "roomType": "B1K",
                    "ratePlanCode": "FLEX",
                    "numberOfUnits": 1,
                    "start": "2025-02-20",
                    "end": "2025-02-20",
                    "ratePlanInfo": {
                        "ratePlanName": "Best Flexible Rate",
                        "identificationRequired": false
                    },
                    "suppressRate": false
                }
            ],
            "total": {
                "taxes": {
                    "tax": [
                        {
                            "description": "Resort fee",
                            "type": "Exclusive",
                            "code": "12",
                            "amount": 50,
                            "currencyCode": "USD"
                        },
                        {
                            "description": "Not known",
                            "type": "Exclusive",
                            "code": "41",
                            "amount": 75,
                            "currencyCode": "USD"
                        }
                    ],
                    "amount": 125,
                    "currencyCode": "USD"
                },
                "amountAfterTax": 425,
                "amountBeforeTax": 300
            }
        },
        "reservationGuests": [
            {
                "profileInfo": {
                    "profileIdList": [
                        {
                            "id": "1075289",
                            "type": "Profile"
                        }
                    ],
                    "profile": {
                        "customer": {
                            "personName": [
                                {
                                    "givenName": "Narciso",
                                    "surname": "O'Keefe",
                                    "nameTitle": "Mr and Mrs",
                                    "nameType": "Primary",
                                    "email": "Suzanne60@hotmail.com",
                                    "phoneNumber": "286-930-2451",
                                    "address": {
                                        "addressLine": [
                                            "64024 Bednar Course",
                                            null,
                                            null,
                                            null
                                        ],
                                        "cityName": "Daisyview",
                                        "postalCode": "CAA-90017",
                                        "country": {
                                            "code": "US"
                                        },
                                        "state": "CA"
                                    }
                                }
                            ]
                        },
                        "profileType": "Guest"
                    }
                },
                "primary": true,
                "arrivalTransport": {
                    "transportationReqd": false
                },
                "departureTransport": {
                    "transportationReqd": false
                }
            }
        ],
        "reservationPaymentMethods": [
            {
                "paymentMethod": "5",
                "folioView": "1",
                "paymentCard": {
                    "cardType": "AX",
                    "cardNumber": "XXXXXXXXXXXXXXXX",
                    "expirationDate": "XX/XX",
                    "cardHolderName": "XXXXXX",
                    "cardNumberMasked": "XXXXXXXXXXXX8431",
                    "cardOrToken": "Token"
                }
            }
        ],
        "reservationMemberships": [],
        "reservationPolicies": {
            "cancellationPolicies": [
                {
                    "revenueType": "Rooms",
                    "policy": {
                        "deadline": {
                            "absoluteDeadline": "2025-02-19T12:00:00Z"
                        },
                        "amountPercent": {
                            "basisType": "Nights",
                            "nights": 1,
                            "percent": 100.0,
                            "amount": 350.0,
                            "taxInclusive": false
                        },
                        "penaltyDescription": "Cancel latest by 2025-02-19 12:00 to avoid penalty of 350 USD.",
                        "policyCode": "1DAY",
                        "manual": false,
                        "effective": false
                    },
                    "percentageDue": 100,
                    "comments": "1 Day prior to arrival, forfeit 1 night",
                    "policyId": {
                        "id": "64016",
                        "type": "PolicyScheduleId"
                    }
                }
            ],
            "depositPolicies": []
        },
        "hotelCode": "XSBOXD1",
        "comments": [
            {
                "comment": {
                    "text": {
                        "value": "Channel Text note\n1 king bed\nNon-Smoking\nBill guest full stay"
                    },
                    "commentTitle": "Notes from channel"
                }
            }
        ],
        "reservationStatus": "Reserved",
        "isSessionRequest": true,
        "printRate": false,
        "optedForCommunication": false,
        "propertyInfo": {
            "hotelId": "SBOXD1",
            "hotelCode": "XSBOXD1",
            "hotelName": "Sandbox New York Hotel",
            "chainCode": "OH",
            "address": {
                "addressLine": [
                    "Street Line 1",
                    "Street Line 2"
                ],
                "countryCode": "US",
                "cityName": "New York City",
                "stateProv": "US",
                "postalCode": "20012"
            },
            "direction": {
                "propertyDirection": "Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property Direction to the Property "
            },
            "location": {
                "propertyLocation": "Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property Location of the Property "
            },
            "generalInformation": {
                "checkInTime": "15:00",
                "checkOutTime": "11:00"
            },
            "communications": {
                "phones": [
                    {
                        "phoneTechType": "Voice",
                        "phoneLocationType": "Property direct",
                        "phoneNumber": "11111111111"
                    }
                ],
                "emails": [
                    {
                        "emailType": "Property",
                        "email": "noreply@racle.com"
                    }
                ],
                "urls": [
                    {
                        "url": "https://www.oracle.com/hospitality/"
                    }
                ]
            },
            "marketingMessage": "Thank you for choosing our property."
        }
    }
]


Commit an on hold reservation

POST {{HostName}}/book/v1/hotels/XSBOXD1/reservations/2607397/status

{
    "reservations": [
        {
            "reservationIdList": [
                {
                    "id": "2607397",
                    "type": "Confirmation",
                    "idContext": "Central",
                    "idExtension": "1"
                }
            ],
            "hotelCode": "XSBOXD1",
            "reservationStatus": "Commit",
            "lastModifyDateTime": "2020-09-17T19:21:00.0Z",
            "messageId": "7f38a3a4-a0ad-4475-ac55-2963abb29d00"
        }
    ]
}

200 Response:

{
    "reservationIds": [
        {
            "id": "224972",
            "type": "Reservation",
            "idContext": "Central",
            "idExtension": "1"
        },
        {
            "id": "2607397",
            "type": "Confirmation",
            "idContext": "Central",
            "idExtension": "1"
        }
    ],
    "reservationStatus": "Committed",
    "hotelCode": "XSBOXD1"
}


Cancel an on hold reservation

POST {{HostName}}/book/v1/hotels/XSBOXD1/reservations/2607397/cancellations

{
    "reservations": [
        {
            "reservationIdList": [
                {
                    "id": "2607397",
                    "type": "Confirmation",
                    "idContext": "Central",
                    "idExtension": "1"
                }
            ],
            "hotelCode": "XSBOXD1",
            "messageId": "444bdfa1-23e7-4359-bea5-93ce1bb67ef7",
            "isSessionRequest": true
        }
    ]
}



200 Response:

[
    {
        "reservationIds": [
            {
                "id": "224972",
                "type": "Reservation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607397",
                "type": "Confirmation",
                "idContext": "Central",
                "idExtension": "1"
            },
            {
                "id": "2607398",
                "type": "Cancellation",
                "idContext": "Central",
                "idExtension": "1"
            }
        ],
        "hotelCode": "XSBOXD1",
        "reservationStatus": "Cancelled",
        "comments": [],
        "isSessionRequest": true
    }
]



Limitations and constraints:

  • An on hold reservation / modification / cancellation is kept on hold based on the configuration in OPERA Cloud controls. If it is not committed or ignored within that time frame, the reservation is removed from OPERA Cloud.

Error responses:

Error code Error Description
DRSV00011 Update failed for {0} . There was a problem serving the request. Please try again
DRSV00020 {0} is exceeded the maximum limit {1}.
DRSV00304 Unable to tokenize the Credit Card with Oracle Payment Interface. Reservation is rejected.
DRSV00305 Hotel Default controls are not found.
DRSV00306 Payment Card details are required for the Payment Method 5 (Credit Card)
DRSV00307 Travel Agency Name is required for the Profile type TravelAgent.
DRSV00308 Either guaranteeCode or guaranteeType is required.
DRSV00314 Block is not available to book.
DRSV00320 The requested Block Code {1} is not valid in PMS.
DRSV00335 Day use reservation is not allowed for a business block
DRSV00350 No mapping exists for the Payment Method {1} {2}. Unable to process the reservation
DRSV00351 Travel Agent Profile is required to process the reservation with Payment method 19 Travel Agent IATA Number / ID
DRSV00353 Corporate ID Not Matching With Central Records, Please Correct.
DRSV00354 CorporateID Required, Please Correct.
DRSV00355 Unable to process the reservation for an 'Internal' Channel.
DRSV00389 Invalid guarantee
DRSV00390 Channel code is missing for the given hotelId {0}.
DRSV00391 Failed to dequeue staged reservations for hotelId {0} and channelCode {1}.
DRSV00392 Processing of staged reservations failed for hotelId {0} and channelCode {1}.
DRSV00393 Failed to make an update operation while updating staged reservations for hotelId {0}.
DRSV00394 Reservation ID list is empty for the given hotelId {0} and enterpriseId {1}.
DRSV10003 An unexpected error occurred. Please contact your system administrator.
DRSV10008 Bad request
DRSV20002 Invalid check-in date
DRSV30000 No Last Name provided.
DRSV30002 No channel ID was provided
DRSV30003 There was a problem serving the request. Please try again or contact your administrator.
DRSV30004 Reservation Status {fieldname} is invalid or missing.
DRSV30005 Request requires a query parameter
DRSV30006 No Room Type provided
DRSV30007 Reservation ID was not found
DRSV30008 Field {fieldname} cannot be null or empty
DRSV30010 Arrival Date is required
DRSV30011 {0} is not allowed for {1}
DRSV30012 Sorry, but you are not authorized to access this page
DRSV30013 You do not have permission to access the option or page you have tried to reach
DRSV30014 External Message ID required
DRSV30015 Wrong delivery message ID
DRSV30016 Either arrival date range or creation date range are mandatory
DRSV30017 SUCCESS delivery status not accepted
DRSV30018 Wrong delivery external message ID
DRSV30019 Departure Date cannot be earlier than the Arrival Date
DRSV30020 Number of rooms cannot be <1
DRSV30021 Requested reservation is not an Onhold Reservation
DRSV30022 The reservation On Hold Time has expired
DRSV30023 Update operation not allowed for existing On hold reservation
DRSV30024 Invalid on hold reservation status value provided
DRSV30025 Invalid On Hold reservation Payload provided
DRSV30027 No expired On Hold Reservation present for this hotel {1}
DRSV30029 Multi Leg Itinerary ID {0} not found for hotel {1}
DRSV30030 Updates to Reservation with status different to OnHold or Reserved and with empty Reservation ID list is not supported
DRSV30031 Reservation payload containing OhHold Reservation Status is not accepted
DRSV30032 Unable to update InSession Reservation Record for hotelId {0} and confirmationId{1}
DRSV30033 Cannot update an existing Reservation from {0} Status to {1} Status for hotelId: {2}
DRSV30034 Unable to delete the cancellationRecord ID for hte hotel: {0} having cancellation number: {0}
DRSV30035 Currency Code Is Missing, Please Correct.
DRSV30036 Reservation rejected due to insufficient availability.
DRSV30037 Update operation is not allowed for an already Cancelled Reservation.
DRSV30038 Update operation is not allowed for OnHold reservation while in Cancelled status. OnHold Reservation needs to be ignored before further changes can be made.
DRSV30039 Direct reservation update operation is not allowed for the existing OnHold Reservation.
DRSV30040 Reservation can not be created due to invalid hotel: {0}.
DRSV30041 Reservation {0} not found in the source.
DRSV30042 Reservation cannot be created as there is no active connection with PMS for hotel : {0}
DRSV30043 Reservation is already Checked In or the arrival date is a past date. Unable to Modify.
DRSV30044 Reservation is already Checked In or the arrival date is a past date. Unable to Cancel.
DRSC00168 Travel Agent ID Not Matching With Central Records, Please Correct
DRSC00208 IATA Number Required, Please Correct
DRSC00240 Credit Card Expiration Date Invalid, Please Correct
DRSC00242 Credit Card Number Invalid, Please Correct
DRSC00249 Rate Plan Invalid, Please Correct
DRSC00281 Credit Card Details Required, Please Correct
DRSC00313 Credit Card Type Not Accepted, Please Correct
DRSC00371 Deposit Required, Please Correct
DRSC00400 Property Not Found, Please Correct
DRSC004001 Property is currently disabled in this region
DRSC00402 Room Type Invalid, Please Correct
DRSC00427 Property Not Available
DRSC00437 Rate Not Available
DRSC00536 Promotion Code Is Invalid For The Property
DRSC00632 Booking Cannot Be Modified
DRSC10000 Error Occurred During Reservation Processing
DRSC10001 External Confirmation Not Found
DRSC10002 Arrival Date Is Invalid
DRSC10003 Departure Date Is Invalid
DRSC10004 Room Type Is Empty
DRSC10005 Rate Plan Code Is Empty
DRSC10007 External Reservation ID was not found
DRSC10008 Reservation ID was not found
DRSC10009 Channel not allowed to use this service
DRSC10010 Reservation Missing Rate Information
DRSC10011 Either the guaranteeType or guaranteeCode will be accepted. Both cannot be sent in the same request.

Anti-patterns:

Review Asynchronous APIs in the OHIP user guide to learn more about functional and technical anti-patterns.