Booking Guide for Failed/Shell Bookings
This guide details the functionality supported for shell bookings, which is a reservation that does not have any air segments booked and contains only traveler details.
Related Content: Booking Guide, Reservation Retrieve Guide, Reservation Retrieve API Reference
In this topic:
- Basic Concepts
- Setting Up a Reservation Shell in Case of Booking Failure
- Ticketing a Reservation Shell
- Adding or Deleting Remarks
- Updating Traveler Details
- Example Response
Basic Concepts
In the case of bookings that fail due to inability to either add the offer or quote a fare, if the autoDeleteDate query parameter is sent at commit, AirReservation creates a reservation shell that retains the traveler details. This allows an agency to contact the customer offline through their call center and complete the booking as necessary, or to retrieve the reservation and complete the booking later with the usual JSON API booking workflow.
Setting Up a Reservation Shell in Case of Booking Failure
In the initial booking workflow, you can ensure a shell booking is created in the event there is a booking failure either because the offer cannot be added or the fare cannot be quoted. To do so, include the autoDeleteDate query parameter in the workbench commit at the end of the initial booking workflow.
Ticketing a Shell Reservation
You can ticket a failed booking with a reservation shell using the following workflow:
-
Create a post-commit workbench request, sending the locator code for the failed booking.
-
Send an Add Offer request.
-
If necessary, send an Add Traveler request to complete traveler details.
-
Send an Add Form of Payment request.
-
Send an Add Payment request.
-
Send a Commit Workbench request.
Optional steps such as seats, ancillaries, or remarks are also supported in the workflow above after adding the offer and traveler/s.
Adding or Deleting Remarks
You can add and delete the following types of remarks to a shell booking. These remarks are returned in the Reservation Retrieve response:
-
Vendor remarks
-
DOCI remarks
-
Itinerary (associated and unassociated) remarks
-
Notepad remarks
-
Historical Notepad remarks
-
Accounting remarks
-
OSI remarks
To add and delete remarks, use the applicable workflow in the Remarks and Service Requests Guide.
Updating Traveler Details
You can add, update, and delete any traveler details supported in the TravelerUpdateableItems request. See the Traveler Modify Guide.
Examples
The following example reservation retrieve response returns a reservation shell for a failed booking. Note that no offer details are returned, and the Result object returns the warning NO FARES FOUND.
{
"ReservationResponse": {
"@type": "ReservationResponse",
"Reservation": {
"@type": "Reservation",
"Identifier": {
"authority": "Travelport",
"value": "4459c564-a913-448b-b332-1376bd17d6f9"
},
"Traveler": [
{
"@type": "Traveler",
"birthDate": "1999-02-22",
"gender": "Male",
"passengerTypeCode": "ADT",
"id": "travelerRefId_1",
"Identifier": {
"authority": "Travelport",
"value": "d168b2e9-25c6-44f9-8e15-8fc5c2ce5637"
},
"PersonName": {
"@type": "PersonName",
"Given": "PX ADTONEMDNM MR",
"Surname": "SRNMONE ADT"
},
"Telephone": [
{
"@type": "TelephoneDetail",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "212456121",
"extension": "1243",
"id": "telephone_1",
"cityCode": "ORD",
"role": "Office"
}
],
"Email": [
{
"value": "TravelerOneOne@gmail.com"
},
{
"value": "TravelerTwoOne@gmail.com"
}
],
"CustomerLoyalty": [
{
"supplier": "DL",
"value": "DL2071983684"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "245968",
"docType": "Passport",
"expireDate": "2027-02-22",
"issueCountry": "IND",
"birthDate": "1999-02-22",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "PX ONE",
"Middle": "MDNMONE",
"Surname": "SRNMONE"
}
}
]
},
{
"@type": "Traveler",
"birthDate": "1999-02-22",
"gender": "Male",
"passengerTypeCode": "ADT",
"id": "travelerRefId_2",
"Identifier": {
"authority": "Travelport",
"value": "ecefbfa9-f05e-4c6e-bb79-bc3c85cd4e6f"
},
"PersonName": {
"@type": "PersonName",
"Given": "PX ADTTWOMDNM MR",
"Surname": "SRNMTWO ADT"
},
"Telephone": [
{
"@type": "TelephoneDetail",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "212456122",
"extension": "1243",
"id": "telephone_1",
"cityCode": "ORD",
"role": "Office"
}
],
"CustomerLoyalty": [
{
"supplier": "DL",
"value": "DL2071983684"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "245968",
"docType": "Passport",
"expireDate": "2027-02-22",
"issueCountry": "IND",
"birthDate": "1999-02-22",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "PX TWO",
"Middle": "MDNMTWO",
"Surname": "SRNMTWO"
}
}
]
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"Identifier": {
"authority": "Travelport",
"value": "d7899efc-866b-44c5-9b78-9ca9668f32f2"
},
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "1G",
"value": "2CB56Z"
}
}
}
],
"ReservationComment": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"Comment": [
{
"name": "AD",
"value": "THANKS FOR BOOKING WITH US"
},
{
"name": "RD",
"value": "Have a Nice Day"
}
]
}
],
"PrimaryContact": [
{
"@type": "PrimaryContact",
"id": "primaryContact_1",
"Email": {
"value": "TEST@TRAVELPORT.COM"
},
"TravelerIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "d168b2e9-25c6-44f9-8e15-8fc5c2ce5637"
}
}
},
{
"@type": "PrimaryContact",
"id": "primaryContact_2",
"Telephone": {
"@type": "Telephone",
"phoneNumber": "5551212",
"role": "Mobile"
},
"TravelerIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "d168b2e9-25c6-44f9-8e15-8fc5c2ce5637"
}
}
},
{
"@type": "PrimaryContact",
"id": "primaryContact_3",
"Email": {
"value": "TEST@TRAVELPORT.COM"
},
"TravelerIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "ecefbfa9-f05e-4c6e-bb79-bc3c85cd4e6f"
}
}
},
{
"@type": "PrimaryContact",
"id": "primaryContact_4",
"Telephone": {
"@type": "Telephone",
"phoneNumber": "5551212",
"role": "Mobile"
},
"TravelerIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "ecefbfa9-f05e-4c6e-bb79-bc3c85cd4e6f"
}
}
}
]
},
"Result": {
"@type": "Result",
"Warning": [
{
"@type": "Warning",
"Message": "NO FARES FOUND"
}
]
}
}
}