Skip Navigation

Retrieving a List of Alternative Flights

Note  The feature is available since 3.1 release.

The feature uses the /dcci/passenger/standby/flights service which is a part of the Voluntary Standby functionality and allows searching for flights that are candidates for the Passenger to voluntarily standby. The Passenger can then choose the flight and continue process flow.

The Passenger stays on the same cabin class while choosing standby flight. In the consequence there are three business cases to consider:

  • The cabin class for requested itinerary is known and the found flight has not enough seats available on that cabin class.
  • The cabin class for requested itinerary is known and the found flight has no such cabin class.
  • The cabin class is unknown.

The sample responses for all those cases is presented in the Samples section below.

The service returns the error in two cases:

  • There is no stand_by eligibility on the reservation level or there is a stand_by eligibility on the reservation level but at least one Passenger is not eligible for check-in.
  • The reservation does not contain all Passengers.

The sample responses for all those cases are presented in the Error samples section below.

The flight search is performed within a predefined time window configured as described in the Configuration Reference section below.

Current Assumptions

  • The flights are searched for all Passengers in the reservation and the first segment.
  • The regular flights are supported.
  • Multileg/CoG flights are not supported.
  • All available flights are returned.
  • Each returned flight has the information about the seat availability for each cabin class.
  • There is the configuration allowing to define time window which flights are searched in.

Samples

Request

GET http method.

No request body is needed.

Response

Scenario 1

The cabin class for the requested itinerary is known and the found flight has not enough seats available on that cabin class.

Example

{
  "standbyFlights": [
    {
      "id": "sf1",
      "seatsAvailability": [
        {
          "numberOfSeats": 8,
          "cabinClassCode": "F"
        },
        {
          "numberOfSeats": 0,
          "cabinClassCode": "Y"
        },
        {
          "numberOfSeats": 32,
          "cabinClassCode": "J"
        }
      ],
      "airline": "EY",
      "flightNumber": "2231",
      "departureAirport": "FRA",
      "departureTime": "2019-10-28T23:45:00+01:00",
      "arrivalAirport": "AUH",
      "arrivalTime": "2019-10-29T09:00:00+04:00",
      "equipment": "333"
    },
    {
      "id": "sf2",
      "seatsAvailability": [
        {
          "numberOfSeats": 229,
          "cabinClassCode": "Y"
        },
        {
          "numberOfSeats": 28,
          "cabinClassCode": "J"
        }
      ],
      "airline": "EY",
      "flightNumber": "2",
      "departureAirport": "FRA",
      "departureTime": "2019-10-29T10:45:00+01:00",
      "arrivalAirport": "AUH",
      "arrivalTime": "2019-10-29T20:00:00+04:00",
      "equipment": "789"
    }
  ],
  "results": [
    {
      "standbyFlightId": "sf1",
      "status": {
        "message": "Not enough seats available on the standby flight for passengers' cabin class",
        "type": "WARNING",
        "code": "NOT_ENOUGH_SEATS_AVAILABLE"
      }
    }
  ]
}
Scenario 2

The cabin class for the requested itinerary is known and the found flight does not have such cabin class.

Example

{
    "standbyFlights": [
        {
            "id": "sf1",
            "seatsAvailability": [
                {
                    "numberOfSeats": 40,
                    "cabinClassCode": "W"
                },
                {
                    "numberOfSeats": 288,
                    "cabinClassCode": "Y"
                },
                {
                    "numberOfSeats": 33,
                    "cabinClassCode": "J"
                }
            ],
            "airline": "VA",
            "flightNumber": "29",
            "departureAirport": "SYD",
            "departureTime": "2019-10-30T15:15:00+11:00",
            "arrivalAirport": "AUH",
            "arrivalTime": "2019-10-30T23:55:00+04:00",
            "equipment": "773"
        },
        {
            "id": "sf2",
            "seatsAvailability": [
                {
                    "numberOfSeats": 6,
                    "cabinClassCode": "F"
                },
                {
                    "numberOfSeats": 254,
                    "cabinClassCode": "Y"
                },
                {
                    "numberOfSeats": 38,
                    "cabinClassCode": "J"
                }
            ],
            "airline": "EY",
            "flightNumber": "451",
            "departureAirport": "SYD",
            "departureTime": "2019-10-30T17:00:00+11:00",
            "arrivalAirport": "AUH",
            "arrivalTime": "2019-10-31T00:35:00+04:00",
            "equipment": "77W"
        }
    ],
    "results": [
        {
            "standbyFlightId": "sf1",
            "status": {
                "message": "Cabin class not present for given flight",
                "type": "WARNING",
                "code": "CABIN_CLASS_NOT_PRESENT"
            }
        }
    ]
}
Scenario 3

The cabin class is unknown.

Example

{
    "standbyFlights": [
        {
            "id": "sf1",
            "seatsAvailability": [
                {
                    "numberOfSeats": 8,
                    "cabinClassCode": "F"
                },
                {
                    "numberOfSeats": 0,
                    "cabinClassCode": "Y"
                },
                {
                    "numberOfSeats": 32,
                    "cabinClassCode": "J"
                }
            ],
            "airline": "EY",
            "flightNumber": "2231",
            "departureAirport": "FRA",
            "departureTime": "2019-10-28T23:45:00+01:00",
            "arrivalAirport": "AUH",
            "arrivalTime": "2019-10-29T09:00:00+04:00",
            "equipment": "333"
        },
        {
            "id": "sf2",
            "seatsAvailability": [
                {
                    "numberOfSeats": 229,
                    "cabinClassCode": "Y"
                },
                {
                    "numberOfSeats": 28,
                    "cabinClassCode": "J"
                }
            ],
            "airline": "EY",
            "flightNumber": "2",
            "departureAirport": "FRA",
            "departureTime": "2019-10-29T10:45:00+01:00",
            "arrivalAirport": "AUH",
            "arrivalTime": "2019-10-29T20:00:00+04:00",
            "equipment": "789"
        }
    ]
}
Scenario 4

If there are no alternatives to the requested itinerary, the service returns a warning: NO_STANDBY_FLIGHTS_FOUND

Example

{
    "results": [
        {
            "status": {
                "message": "No standby flights found",
                "type": "WARNING",
                "code": "NO_STANDBY_FLIGHTS_FOUND"
            }
        }
    ]
}

Error Samples

  • The Passengers are not eligible for standby flights.

    {
        "results": [
            {
                "status": {
                    "message": "Passengers are not eligible for standby flights",
                    "type": "ERROR",
                    "code": "PASSENGERS_NOT_ELIGIBLE"
                }
            }
        ]
    }
  • The reservation does not contain all Passengers.

    {
        "results": [
            {
                "status": {
                    "message": "Reservation does not contain all passengers",
                    "type": "ERROR",
                    "code": "RESERVATION_NOT_APPLICABLE"
                }
            }
        ]
    }

Configuration Reference

The following keys are introduced to support this feature:

  • s4ci.feature.standby.flightWindowStart
  • s4ci.feature.standby.flightWindowEnd
  • s4ci.feature.passengerDetails.cabinClassCode.enabled
  • 4ci.feature.standby.periodOfDeferral

For more details refer to the Configuration Index chapter.