Skip to main content

Booking Management API

trip management
booking
REST API
Travel Agency
Try Now

What is it?

The Booking Management API lets you manage your Sabre reservations/bookings in a more efficient way by providing a normalized set of services that manage both Sabre Passenger Name Records (PNRs) and Sabre Orders. These implementations are simplified to ensure that both experts and novices alike can integrate and adopt Sabre APIs in the most seamless way possible.

Currently, this API contains six methods:

  • GetBooking
  • CreateBooking
  • CancelBooking
  • VoidFlightTickets
  • CheckFlightTickets
  • RefundFlightTickets

Get Booking

Get Booking provides a normalized view of reservations by combining both PNRs and orders.

This is achieved by executing internal calls to the PNR and Order domains respectively, and then consolidating the information into a single normalized response.

Additionally, this API sources extra content from other Sabre internal domains (Ticketing, Pricing, etc.) to provide a holistic view of Sabre reservations and to support traveler-oriented use cases (for example, "can I change my ticket?").

Create Booking

Create Booking provides a single, unified service to create a booking for different content sources (NDC, ATPCO, LCC, CSL hotels, cars, and legacy GDS hotels). This is achieved by executing internal calls to the PNR, Order, Pricing, Hotel, and Car domains respectively. The newly created Order and/or Sabre Passenger Name Record (PNR) information is then consolidated into a single normalized response.

Cancel Booking

Cancel Booking provides a single, unified service to cancel the entire reservation, or a part of the reservation, irrespective of what it contains (flight, hotel, car, others) and where it is created (NDC, Sabre, CSL). This includes an option to void or refund corresponding electronic documents for flights (ATPCO & NDC).

Void Flight Tickets

Void Flight Tickets provides a single, unified service to void a list of electronic documents (ATPCO). This includes electronic tickets and electronic miscellaneous documents (EMD).

Check Flight Tickets

Check Flight Tickets provides a single, unified service to verify voidability and refundability for a list of electronic documents (ATPCO) or the entire reservation using a confirmationId (ATPC & NDC). The ability to check for refunds is currently limited to electronic tickets.

Refund Flight Tickets

Refund Flight Tickets provides a single, unified service to refund a list of electronic documents (ATPCO). The service allows you to specify refund qualifiers for electronic tickets.

Why use it?

With the recent introduction of new content types such as NDC and CSL in the Sabre system, the Booking Management API will call the appropriate API for managing reservations/bookings within the Sabre portfolio.

Get Booking

  • Simplifies the booking retrieval process by removing the need to use individual/granular APIs to retrieve a reservation
  • Retrieves a normalized view of the reservation regardless of the content sources (PNR, NDC Order)
  • Provides additional data relevant for travelers (e.g. fare rules) as well as data elements that are not stored in the Sabre PNR (e.g. ticket details and more)
  • Retrieves reservation in a stateless way

Create Booking

  • Simplifies the booking process by removing the need to use individual/granular APIs to create a reservation
  • Completes the reservation regardless of the air content sources (PNR, NDC Order)
  • Completes the reservation for the hotel content
  • Completes the reservation for the car content
  • Retrieves a normalized view of the new booking regardless of the content sources (PNR, NDC Order)
  • Adds capability to specify a different target city (Pseudo City Code, or PCC) for booking creation
  • Generates a booking in a stateless way

Cancel Booking

  • Simplifies the cancellation process by removing the need to use individual/granular APIs to cancel a reservation
  • Cancels any content from the reservation
  • Cancels the entire reservation
  • Voids or refunds corresponding electronic documents for flights
  • Cancels the reservation in a stateless way
  • Adds capability to specify a different target city (Pseudo City Code, or PCC) for the cancelation of the PNR
  • Adds capability to define the API's behavior when encountering errors (halt on error or allow partial cancel)
  • Allows the assignment of a printer profile or dedicated printers for the transaciton

Void Flight Tickets

  • Simplifies the ticket cancellation process by removing the need to use individual/granular APIs to void an electronic document
  • Cancels multiple electronic documents (up to 12) from one reservation in a single call
  • Voids electronic documents and update the reservation in a stateless way
  • Adds capability to specify a different target city (Pseudo City Code, or PCC) and post-processing options (email or queue placement) for the refund of the electronic document
  • Adds capability to define the API's behavior when encountering errors (halt on error or allow partial cancel)
  • Allows the assignment of a printer profile or dedicated printers for the transaciton

Check Flight Tickets

  • Simplifies the ticket validation process by removing the need to use individual/granular APIs to validate options for void or refund of an electronic document
  • Checks for multiple electronic documents (up to 12) from one reservation in a single call
  • Adds capability to specify a different target city (Pseudo City Code, or PCC) for the validation of the electronic document
  • Supports refund qualifiers to price specific refund options
  • Adds capability to define the API's behavior when encountering errors (halt on error or allow partial cancel)

Refund Flight Tickets

  • Simplifies the ticket refund process by removing the need to use individual/granular APIs to refund an electronic document
  • Refunds multiple electronic documents (up to 12) from one reservation in a single call
  • Refunds electronic documents and updates the reservation in a stateless way
  • Adds capability to specify a different target city (Pseudo City Code, or PCC) and post-processing options (email or queue placement) for the refund of the electronic document
  • Supports refund qualifiers to price specific refund options
  • Adds capability to define the API's behavior when encountering errors (halt on error or allow partial cancel)
  • Allows the assignment of a printer profile or dedicated printers for the transaciton

How it works

Get Booking

Get Booking executes the following steps to display a booking:

  1. Retrieves reservation data by the given confirmationID (PNR locator and Order ID).
  2. Calls proper downline services to retrieve additional data.
  3. Maps retrieved data to a normalized data model.

Create Booking

Create Booking executes the following steps to complete the creation of a booking:

  1. Populates traveler information based on the request payload or profile data.
  2. Calls proper downline booking creation services.
  3. Creates an NDC air order and/or a traditional PNR for ATPCO, LCC air content.
  4. Creates a hotel booking irrespective of content (CSL or legacy GDS).
  5. Creates a car booking with the booking key.
  6. Maps the newly created booking data to a normalized data model.

Cancel Booking

Cancel Booking executes the following steps to complete the cancellation process of a specific product:

  1. Retrieves reservation data by the given confirmationID (PNR locator and order ID).
  2. Validates the cancel request against reservation content.
  3. Calls proper cancellation downline services.
  4. Finalizes/commits the transaction in the event of a success or partial success.
  5. Retrieves booking details after cancellation (optional).

Additionally, the following steps are executed when using VOID for flightTicketOperation:

  1. Retrieves all electronic documents contained in the PNR or order.
  2. Matches the coupons of each document to the correct segment(s).
  3. Validates the coupon status.
  4. Validates the void period.
  5. Calls the Void Ticket downline service (includes a recovery strategy in case of failure).
  6. Finalizes/commits the transaction in the event of a success or partial success.
  7. Continues with the steps above.

Additionally, the following steps are executed when using REFUND for flightTicketOperation:

  1. Validates the coupon status.
  2. Validates the void period.
  3. Supports additional refund qualifiers.
  4. Calls the Void Ticket downline service (includes a recovery strategy in case of failure).
  5. Calls the Automated Refunds downline service (includes a recovery strategy in case of failure).
  6. Finalizes/commits the transaction in the event of a success or partial success.

Additionally, when using offerItemId, Cancel Booking will forward the ID to the orders/cancel request.

Notes:

  • This is applicable only for NDC orders.
  • The ID determines which action should be taken on the ticket(s) related to the order.

Void Flight Tickets

  1. Retrieves all electronic documents by the given electronic Document Number or confirmationId.
  2. Validates the coupon status.
  3. Validates the void period.
  4. Calls the Void Ticket downline service (includes a recovery strategy in case of failure).
  5. Finalizes/commits the transaction in the event of a success or partial success.

Check Flight Tickets

  1. Retrieves all electronic documents by the given electronic Document Number or confirmationId.
  2. Validates the coupon status.
  3. Validates the void period.
  4. Validates refundablity and amounts.
  5. Checks for additional refund qualifiers for ATPCO tickets.
  6. Calls the Void Ticket downline service (includes a recovery strategy in case of failure).
  7. Calls the Automated Refunds downline service (includes a recovery strategy in case of failure).

Refund Flight Tickets

  1. Retrieves all electronic documents by the given electronic Document Number or confirmationId.
  2. Validates the coupon status.
  3. Validates the void period.
  4. Checks for additional refund qualifiers.
  5. Calls the Void Ticket downline service (includes a recovery strategy in case of failure).
  6. Calls the Automated Refunds downline service (includes a recovery strategy in case of failure).
  7. Finalizes/commits the transaction in the event of a success or partial success.

How to use

Get Booking

Display booking

To ensure successful booking retrieval, the request should contain the below information:

Add confirmationId (PNR Locator or Order Id) in the Get Booking request:

{
  "confirmationId": "XXXXXX"
}

Display booking and validate surname

To ensure successful booking retrieval with surname validation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id) in the Get Booking Request.
  2. Add surname in the Get Booking Request.

Note: The API will validate if the surname matches the data in the reservation before retrieving it.

{
  "confirmationId": "XXXXXX",
  "surname": "Smith"
}

Display selected elements of the booking

To ensure successful booking retrieval with a limited number of elements in the response, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id) in the Get Booking Request.
  2. Add the returnOnly element in the Get Booking Request with the selected list of elements you want to retrieve.

Note: The full list of possible returnOnly values can be found in the OpenAPI specification under the Reference Documentation tab.

{
  "confirmationId": "XXXXXX",
  "surname": "Smith",
  "returnOnly":[
    "TRAVELERS", "FLIGHTS"
  ]
}

Create Booking

Create booking for NDC content type (Order)

To ensure a successful booking, pass a valid offerID, selectedOfferItems, and the traveler id returned by the Offer Price API.

{

  "flightOffer": {
    "offerId": "{{price_offer_id}}",
    "selectedOfferItems": [
      "{{price_offer_item_id}}"
    ]
  },
  "travelers": [
    {
      "id": "{{price_passenger_id}}",
      "givenName": "John",
      "surname": "Kowalski",
      "birthDate": "1970-01-23",
      "passengerCode": "ADT",
      "customerNumber": "1234567"
    }
  ],
  "contactInfo":
  {
    "emails": [
      "travel@sabre.com"
    ],
    "phones": [
      "123456"
    ]
  }
}

The successful booking will contain a booking reference with a confirmationId (PNR Locator) and a normalized view of the reservation will be provided in the API response.

Create booking for ATPCO content

Note: By following this step, you can also request to have the booking priced and its price validated against the desired pricing.

Pass valid traveler information and the full details of each flight:

{
  "agency": {
    "address": {
      "name": "John Smith",
      "street": "1230 Ellen Ave, apt 10",
      "city": "Dallas",
      "stateProvince": "TX",
      "postalCode": "75063",
      "countryCode": "US",
      "freeText": "John Smith\n1230 Ellen Ave, apt 10\nDallas, TX 75063\nUS"
    },
    "agencyCustomerNumber": "1234567",
    "ticketingPolicy": "TODAY"
  },
  "travelers": [
    {
      "givenName": "John",
      "surname": "Smith",
      "birthDate": "1970-01-23",
      "passengerCode": "ADT"
    },
    {
      "givenName": "Mary",
      "surname": "Smith",
      "birthDate": "2014-01-23",
      "passengerCode": "CNN"
    }
  ],
  "contactInfo": {
    "emails": [
      "travel@sabre.com",
      "travel2@sabre.com"
    ],
    "phones": [
      "+123456"
    ]
  },
  "flightDetails": {
    "flights": [
      {
        "flightNumber": 463,
        "airlineCode": "EY",
        "fromAirportCode": "MEL",
        "toAirportCode": "AUH",
        "departureDate": "2021-03-30",
        "departureTime": "16:55",
        "bookingClass": "Y",
        "marriageGroup": false,
        "flightStatusCode": "NN"
      },
      {
        "flightNumber": 462,
        "airlineCode": "EY",
        "fromAirportCode": "AUH",
        "toAirportCode": "MEL",
        "departureDate": "2021-04-15",
        "departureTime": "09:00",
        "bookingClass": "Y",
        "marriageGroup": false,
        "flightStatusCode": "NN"
      }
    ],
    "flightPricing": [
      {
        "priceComparisons": [
          {
            "desiredAmount": "5300.00",
            "comparisonType": "INCREASE_BY_AMOUNT",
            "amount": "30.00"
          },
          {
            "desiredAmount": "5300.00",
            "comparisonType": "DECREASE_BY_AMOUNT",
            "amount": "30.00"
          }
        ]
      }
    ]
  },
  "payment": {
    "billingAddress": {
      "name": "John Smith",
      "street": "1230 Ellen Ave, apt 10",
      "city": "Dallas",
      "stateProvince": "TX",
      "postalCode": "75063",
      "countryCode": "US"
    }
  }
}

The successful booking will contain a booking reference with a confirmationId (PNR Locator) and a normalized view of the reservation will be provided in the API response.

Create booking for hotel content

To ensure a successful booking, pass a valid bookingKey returned by the Hotel Price Check API.

{
  "agency": {
    "address": {
      "name": "John Smith",
      "street": "1230 Ellen Ave, apt 10",
      "city": "Dallas",
      "stateProvince": "TX",
      "postalCode": "75063",
      "countryCode": "US",
      "freeText": "John Smith\n1230 Ellen Ave, apt 10\nDallas, TX 75063\nUS"
    },
    "agencyCustomerNumber": "1234567",
    "ticketingPolicy": "TODAY"
  },
  "travelers": [
    {
      "givenName": "John",
      "surname": "Kowalski",
      "passengerCode": "ADT"
    },
        {
      "givenName": "Junior",
      "surname": "Kowalski",
      "passengerCode": "INF",
      "age": 3
    }
  ],
  "contactInfo": {
    "emails": [
      "travel@sabre.com",
      "travel2@sabre.com"
    ],
    "phones": [
      "+123456"
    ]
  },
  "hotel": {
    "bookingKey": "{{bookingKey}}",
    "rooms": [
      {
        "travelerIndices": [
          1,
          2
        ]
      }
    ],
    "paymentPolicy": "DEPOSIT",
    "formOfPayment": 1
  },
  "payment": {
    "formsOfPayment": [
      {
        "type": "PAYMENTCARD",
        "cardTypeCode": "VI",
        "cardNumber": "4487971000000006",
        "cardSecurityCode": "123",
        "expiryDate": "2022-10",
        "cardHolder": {
          "givenName": "John",
          "surname": "Smith",
          "email": "john@smith.family.priv",
          "phone": "+1-555-123-4567",
          "address": {
            "street": "1230 Ellen Ave, apt 10",
            "city": "Dallas",
            "stateProvince": "TX",
            "postalCode": "75063",
            "countryCode": "US"
          }
        }
      }
    ]
  }
}

The successful booking will contain a booking reference with a confirmationId (PNR Locator) and a normalized view of the reservation will be provided in the API response.

Create booking for hotel content, while using traveler profiles

To ensure a successful booking, pass a valid bookingKey returned by the Hotel Price Check API.

{
  "profiles": [
    {
      "uniqueId": "231448659",
      "profileTypeCode": "TVL",
      "domainId": "G7RE"
    },
        {
      "uniqueId": "231448673",
      "profileTypeCode": "TVL",
      "domainId": "G7RE"
    }
  ],
  "agency": {
    "address": {
      "name": "John Smith",
      "street": "1230 Ellen Ave, apt 10",
      "city": "Dallas",
      "stateProvince": "TX",
      "postalCode": "75063",
      "countryCode": "US",
      "freeText": "John Smith\n1230 Ellen Ave, apt 10\nDallas, TX 75063\nUS"
    }
  },
  "hotel": {
    "bookingKey": "{{bookingKey}}",
    "rooms": [
      {
        "travelerIndices": [
          1,
          2
        ]
      }
    ],
    "paymentPolicy": "DEPOSIT",
    "formOfPayment": 1
  },
  "payment": {
    "formsOfPayment": [
      {
        "type": "AGENCY_NAME",
        "agencyAddress": {
          "name": "John Smith",
          "street": "1230 Ellen Ave, apt 10",
          "city": "Dallas",
          "stateProvince": "TX",
          "postalCode": "75063",
          "countryCode": "US"
        }
      }
    ]
  }
}

The successful booking will contain a booking reference with a confirmationId (PNR Locator) and a normalized view of the reservation will be provided in the API response.

Create booking for ancillaries (ATPCO)

To ensure a successful booking, pass valid ancillary details returned by the Get Ancillary Offers API.

{
    "agency": {
        "address": {
            "name": "John Smith",
            "street": "1230 Ellen Ave, apt 10",
            "city": "Dallas",
            "stateProvince": "TX",
            "postalCode": "75063",
            "countryCode": "US",
            "freeText": "John Smith\n1230 Ellen Ave, apt 10\nDallas, TX 75063\nUS"
        },
        "agencyCustomerNumber": "1234567",
        "ticketingPolicy": "TODAY"
    },
    "travelers": [
        {
            "givenName": "John",
            "surname": "Smith",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "ancillaries": [
                {
                    "reasonForIssuance": "BAGGAGE",
                    "reasonForIssuanceSubcode": "0C2",
                    "airlineCode": "EY",
                    "electronicMiscellaneousDocumentType": "FLIGHT_COUPON_ASSOCIATED",
                    "basePrice": "528.00",
                    "currencyCode": "USD",
                    "groupCode": "BG",
                    "flightIndices": [
                        1
                    ]
                }
            ]
        },
        {
            "givenName": "Mary",
            "surname": "Smith",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT"
        }
    ],
    "contactInfo": {
        "emails": [
            "travel@sabre.com",
            "travel2@sabre.com"
        ],
        "phones": [
            "+123456"
        ]
    },
    "flightDetails": {
        "flights": [
            {
                "flightNumber": 78,
                "airlineCode": "EY",
                "fromAirportCode": "AMS",
                "toAirportCode": "AUH",
                "departureDate": "2021-11-19",
                "departureTime": "20:25",
                "bookingClass": "V",
                "flightStatusCode": "NN"
            },
            {
                "flightNumber": 77,
                "airlineCode": "EY",
                "fromAirportCode": "AUH",
                "toAirportCode": "AMS",
                "departureDate": "2021-11-26",
                "departureTime": "09:00",
                "bookingClass": "V",
                "flightStatusCode": "NN"
            }
        ],
        "flightPricing": [
            {}
        ]
    },
    "payment": {
        "billingAddress": {
            "name": "John Smith",
            "street": "1230 Ellen Ave, apt 10",
            "city": "Dallas",
            "stateProvince": "TX",
            "postalCode": "75063",
            "countryCode": "US"
        }
    }
}

The successful booking will contain a booking reference with a confirmationId (PNR Locator) and a normalized view of the reservation will be provided in the API response.

Create booking for car content

To ensure a successful booking, pass a valid bookingKey returned by the Vehicle Price Check API.

{
  "agency": {
    "address": {
      "name": "John Smith",
      "street": "1230 Ellen Ave, apt 10",
      "city": "Dallas",
      "stateProvince": "TX",
      "postalCode": "75063",
      "countryCode": "US",
      "freeText": "John Smith\n1230 Ellen Ave, apt 10\nDallas, TX 75063\nUS"
    },
    "agencyCustomerNumber": "1234567",
    "ticketingPolicy": "TODAY"
  },
  "travelers": [
    {
      "givenName": "John",
      "surname": "Kowalski",
      "passengerCode": "ADT"
    },
        {
      "givenName": "Junior",
      "surname": "Kowalski",
      "passengerCode": "INF",
      "age": 3
    }
  ],
  "contactInfo": {
    "emails": [
      "travel@sabre.com",
      "travel2@sabre.com"
    ],
    "phones": [
      "+123456"
    ]
  },
  "car": {
    "bookingKey": "{{carBookingKey}}"
  },
  "payment": {
    "formsOfPayment": [
      {
        "type": "PAYMENTCARD",
        "cardTypeCode": "VI",
        "cardNumber": "4487971000000006",
        "cardSecurityCode": "123",
        "expiryDate": "2022-10",
        "cardHolder": {
          "givenName": "John",
          "surname": "Smith",
          "email": "john@smith.family.priv",
          "phone": "+1-555-123-4567",
          "address": {
            "street": "1230 Ellen Ave, apt 10",
            "city": "Dallas",
            "stateProvince": "TX",
            "postalCode": "75063",
            "countryCode": "US"
          }
        }
      }
    ]
  }
}

The successful booking will contain a booking reference with a confirmationId (PNR Locator). A normalized view of the reservation will be provided in the API response.

Cancel Booking

A few examples of using Cancel Booking are mentioned below. Additional examples can be found in the OpenAPI specification under the Reference Documentation tab and the Help tab.

Cancel specific flight/hotels/cars

To ensure the successful cancellation of specific flights/hotels/cars, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the list of cars/flights/hotels:
    • itemId can be retrieved from GetBookingResponse.(flights|cars|hotels).itemId or GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id.
      {
        "confirmationId": "XXXXXX",
        "cars": [
          {
            "itemId": 1
          }
        ],
        "flights": [
          {
            "itemId": 2
          }
        ],
        "hotels": [
          {
            "itemId": 12
          }
        ]
      }

Cancel whole reservation

To ensure the successful cancellation of an entire reservation, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the cancelAll flag to true ("cancelAll": true).
    {
      "confirmationId": "XXXXXX",
      "cancelAll": true
    }

Cancel whole reservation and sign change with specific entry

To ensure the successful cancellation of an entire reservation and signature with the desired entry, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the cancelAll flag to true ("cancelAll": true).
  3. Add receivedFrom.
    {
      "confirmationId": "XXXXXX",
      "cancelAll": true,
      "receivedFrom": "DOE"
    }

Cancel specific segments by ID or sequence

To ensure the successful cancellation of specific flights/hotels/cars, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the list of segments:
    • id can be retrieved from GetBookingResponse.flights(cars/hotels).itemId or GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id.
    • sequence can be retrieved from GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@sequence
      {
        "confirmationId": "XXXXXX",
        "segments": [
          {
            "id": 1,
            "sequence": 2
          }
        ]
      }

Cancel and retrieve booking

To ensure the successful cancellation of, and to retrieve the state of the booking after cancellation, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the retrieveBooking flag to true ("retrieveBooking": true).
    {
      "confirmationId": "XXXXXX",
      "retrieveBooking": true,
      "flights": [
        {
          "itemId": 2
        }
      ]
    }

Cancel with "allow partial cancel" error policy

To ensure a successful cancellation with the option to allow a partial cancellation (continue with processing in the event of an error), your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the errorHandlingPolicy flag to ALLOW_PARTIAL_CANCEL ("errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL").
    {
      "confirmationId": "XXXXXX",
      "errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL",
      "flights": [
        {
          "itemId": 2
        }
      ],
      "hotels": [
        {
          "itemId": 12
        }
      ]
    }

Cancel whole reservation and void corresponding tickets

To ensure the successful cancellation of a complete reservation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the cancelAll flag to true ("cancelAll": "true").
  3. Add and set flightTicketOperation to VOID ("flightTicketOperation": "VOID").
    {
      "confirmationId": "XXXXXX",
      "cancelAll": true,
      "flightTicketOperation": "VOID"
    }

Cancel whole reservation and refund corresponding tickets

To ensure the successful cancellation of a complete reservation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the cancelAll flag to true ("cancelAll": "true").
  3. Add and set flightTicketOperation to REFUND ("flightTicketOperation": "REFUND").
    {
      "confirmationId": "XXXXXX",
      "cancelAll": true,
      "flightTicketOperation": "REFUND"
    }

Cancel specific flight and void corresponding tickets

To ensure the successful cancellation of a specific flight within a complete reservation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the list of flights:
    • itemId can be retrieved from GetBookingResponse.(flights|cars|hotels).itemId or
    • GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id.
  3. Add and set flightTicketOperation to VOID ("flightTicketOperation": "VOID").
    {
      "confirmationId": "XXXXXX",
      "flightTicketOperation": "VOID",
      "flights": [
        {
          "itemId": 2
        }
      ]
    }

Cancel specific flight and refund corresponding tickets

To ensure the successful cancellation of a specific flight within a complete reservation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the list of flights:
    • itemId can be retrieved from GetBookingResponse.(flights|cars|hotels).itemId or GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id.
  3. Add and set flightTicketOperation to REFUND ("flightTicketOperation": "REFUND").
    {
      "confirmationId": "XXXXXX",
      "flightTicketOperation": "REFUND",
      "flights": [
        {
          "itemId": 2
        }
      ]
    }

Cancel whole reservation and take action on tickets (NDC)

To ensure the successful cancellation of a complete reservation and take action on the tickets (void or refund), the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the offerItemId:
    • offerItemId can be retrieved from CheckTicketsResponse.cancelOffer.offerItemId or
    • /v1/offers/reshop/cancelOrder form response.reshopOffers.offerId.
  3. Add offerItemId ("offerItemId": "cb7778589bcbklg7tkkp8sdo50").
    {
      "confirmationId": "XXXXXX",
      "offerItemId": "cb7778589bcbklg7tkkp8sdo50"
    }

Void Flight Tickets

A few examples of using Void Flight Tickets are mentioned below. Additional examples can be found in the OpenAPI specification under the Reference Documentation tab and the Help tab.

Cancel single electronic document with "allow partial cancel" error policy

To ensure the successful cancellation of the document, the request should contain the below information:

  1. Add tickets (13 digit electronic document number) or confirmationId (PNR Locator or Order Id).
  2. Add and set the errorHandlingPolicy flag to ALLOW_PARTIAL_CANCEL ("errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL").
    {
      "tickets": [
        "6071237616558"
      ],
      "errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL"  
    }

The electronic document was voided and the reservation was updated:

TKT/TIME LIMIT                                                  
  1.T-06AUG-AB12*A12                                            
  2.TE 6071237616558-AT ABC/D AB12*A12 0427/06AUG*              
    TV 6071237616558-AT  *VOID* AB12*A12 0428/06AUG*E           

Cancel multiple electronic document with "halt on error" error policy

To ensure the successful cancellation of the document, the request should contain the below information:

  1. Add tickets (13 digit electronic document number).
  2. Add and set the errorHandlingPolicy flag to HALT_ON_ERROR ("errorHandlingPolicy": "HALT_ON_ERROR").
    {
      "tickets": [
        "6071237616558",
        "6074567616559",
        "6077897616560"
      ],
      "errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL"  
    }

The electronic documents were voided and the reservation was updated:

TKT/TIME LIMIT                                                  
  1.T-06AUG-AB12*A12                                            
  2.TE 6071237616558-AT ABC/D AB12*A12 0427/06AUG*   
  3.TE 6074567616559-AT ABC/D AB12*A12 0427/06AUG* 
  4.TE 6077897616560-AT ABC/D AB12*A12 0427/06AUG* 
    TV 6071237616558-AT  *VOID* AB12*A12 0429/06AUG*E    
    TV 6074567616559-AT  *VOID* AB12*A12 0429/06AUG*E   
    TV 6077897616560-AT  *VOID* AB12*A12 0429/06AUG*E   

Check Flight Tickets

A few examples of using Check Flight Tickets are mentioned below. Additional examples can be found in the OpenAPI specification under the Reference Documentation tab and the Help tab.

Check single electronic document with additional refund qualifier

To ensure the successful validation of the document, the request should contain the below information:

  1. Add tickets (13 digit electronic document number) or confirmationId (PNR Locator or Order Id).
  2. Add and define the refundQualifiers as required. For example, you can override the cancel fee by setting overrideCancelFee ("overrideCancelFee": "100.00").
    {
      "tickets": [
        {
          "number": "0017489825123",
          "refundQualifiers": {
            "overrideCancelFee": "100.00"
          }
        }
      ]
    }

The API will now check voidability and refundability. For the refund flow, the refund qualifiers will be applied:

{
    "tickets": [
        {
            "number": "0017489825123",
            "isVoidable": false,
            "isrefundable": true,
            "refundTotals": {
                "subtotal": "498.00",
                "taxes": "87.13",
                "total": "585.13",
                "currencyCode": "USD"
            }
        }
    ]
}  

Check multiple electronic documents with different refund qualifiers

To ensure the successful validation of the document, the request should contain the below information:

  1. Add tickets (13 digit electronic document number).
  2. Add and define the refundQualifiers as required for each ticket.
    {
        "tickets": [
            {
                "number": "0017489825123",
                "refundQualifiers": {
                    "overrideCancelFee": "100.00"
                }
            },
            {
                "number": "017489825124",
                "refundQualifiers": {
                    "overrideTaxes": [
                        {
                            "taxCode": "XF",
                            "taxAmount": "5.00",
                            "airportTaxBreakdowns": [
                                {
                                    "taxAmount": "5.5",
                                    "airportCode": "DFW"
                                }
                            ]
                        },
                        {
                            "taxCode": "SQ",
                            "taxAmount": "15.00"
                        }
                    ],
                    "waiverCode": "123456789ABCDEF*"
                }
            }
        ]
    }

The electronic documents were validated and the refund options priced:

{
    "tickets": [
        {
            "number": "017489825123",
            "isVoidable": false,
            "isrefundable": true,
            "refundTotals": {
                "subtotal": "498.00",
                "taxes": "87.13",
                "total": "585.13",
                "currencyCode": "USD"
            }
        },
        {
            "number": "017489825124",
            "isVoidable": false,
            "isrefundable": true,
            "refundTotals": {
                "subtotal": "598.00",
                "taxes": "87.13",
                "total": "685.13",
                "currencyCode": "USD"
            }
        }
    ]
}

Refund Flight Tickets

An example of using Refund Flight Tickets is mentioned below. Additional examples can be found in the OpenAPI specification under the Reference Documentation tab and the Help tab.

Refund single electronic document without refund qualifiers

To ensure the successful refund of the document, the request should contain the below information:

  1. Add tickets (13 digit electronic document number) or confirmationId (PNR Locator or Order Id).
  2. Add and set the errorHandlingPolicy flag to HALT_ON_ERROR ("errorHandlingPolicy": "HALT_ON_ERROR").
    {
        "tickets": [
            {
                "number": "6077531704032"
            }
        ],
        "errorHandlingPolicy": "HALT_ON_ERROR"
    }

The API will now check for refundability. For a successful validation and refund, the API will return the refundTotals per ticket:

{
    "tickets": [
        {
            "number": "6077531704032",
            "refundTotals": {
                "subtotal": "498.00",
                "taxes": "87.13",
                "total": "585.13",
                "currencyCode": "USD"
            }
        }
    ]
}  

Ticket was refunded:

ELECTRONIC TICKET RECORD                          CRS CODE:0011
INV:                  CUST:                          PNR:ABCDEF
TKT:6077531704032     ISSUED:02FEB21   PCC:G7RE   IATA:9998999
NAME:PIPPEN/SCOTTY                                             
FORM OF PAYMENT                        FCI: 0                  
1    CASH                                                      
CPN  A/L  FLT  CLS DATE   BRDOFF  TIME  ST F/B             STAT
1    EY   2     Y  10JUN  FRAAUH 1120A  OK YLF1DE          RFND
                                NVB:10JUN   NVA:10JUN   BAG:35K

and the booking was updated accordingly:

TKT/TIME LIMIT
  1.T-02FEB-G7RE*AWX
  2.TE 6077531704032-AT PIPPE/S G7RE*AWX 0321/02FEB*
  3.TE 6077531704033-AT JORDA/M G7RE*AWX 0321/02FEB*
  4.TR 6077531704032-AT PIPPE/S G7RE*AWX 0438/02FEB*I