Air Merchandising Fulfillment for ATPCO Carriers

The Air Merchandising Fulfillment request for ATPCO carriers, such as KL, can include optional services for multiple carriers and multiple providers. The request is made post-booking and the response returns the confirmed optional services.

Each Optional Service that is submitted should be a different type. For example, users should not send two OptionalService elements for "checked 1st bag". Additionally, the same service ("checked 1st bag") cannot be sent with Quantity="2" (or more) or an error is returned.

Note: Universal API only supports OptionalService @Quantity="1" for ATPCO-filed optional services.

Schema

Located in AirReqRsp.xsd:

Request

Air Merchandising Fulfillment for ATPCO carriers follows the general Air Merchandising Fulfillment process. Additionally:

  1. The following data is required:
    • OptionalService @PerTraveler set to "true" because the carriers return seats per passenger.
    • A separate EMD (Electronic Miscellaneous Document) for payment of paid seats. (The CreditCard element is not used.)
    • OptionalService/ServiceData/Description. Without Description, the ASVC SSR will not be created.
  2. Therefore, the following data from the Air Merchandising Offer Availability or Seat Map response must be included in any subsequent Merchandising Fulfillment request:

    If the following data is returned in the Air Merchandising Offer Availability or Seat Map response, it must be included in any subsequent Merchandising Fulfillment request:

    Note that the values associated with this data are examples and may be subject to changes in the ATPCO filing by the carrier.

    Important! These values should NOT be hard-coded into a client application. However, the returned Air Merchandising Offer Availability or Seat Map response values should always be included in the subsequent Fulfillment request.

  3. OptionalService @ServiceSubCode is required if OptionalService @Type="PreReservedSeatAssignment".

    If @Type is "PreReservedSeatAssignment" and @ServiceSubCode is missing from:

    • All OptionalService elements, an error is returned and no services are fulfilled: OptionalService PreReservedSeatAssignment is missing ServiceSubCode.
    • Some OptionalService elements, Optional Services that include @ServiceSubCode are fulfilled, and a warning is returned for those that do not: OptionalService PreReservedSeatAssignment is missing ServiceSubCode.
  4. When a request with a paid seat Optional Service is sent:

  5. If an Optional Service that references an infant (INF PTC) is sent in a request, it is ignored and a warning is returned: "OptionalServices may not be Supported/Required for passenger type INF."

    Note: This warning is returned as an error if Seat Map is requested for INF PTC only.

    If the request included an Optional Service that references a Booking Traveler Passenger Type Code (PTC) that includes an age, Universal API converts the PTC with age to an applicable three-alpha-character PTC and saves the Optional Service in the Universal Record (UR). For example, if the PTC is C08, uAPI convers to PTC CNN. CNN is saved in the UR.

    Important! Do not use OptionalService for standard seats. Use SpecificSeatAssignment.

  6. Use @SecondaryType to request secondary optional services. See ATPCO Secondary Optional Services.

Response

The AirMerchandisingFulfillmentRsp contains the entire Universal Record including new or updated Optional Service information.

The ATPCO-filed Optional Service is saved in the Universal Record with an "Offered" status, if the ASVC SSR is in pending status (i.e., the airline has not yet confirmed the sale of the Optional Service). The ServiceStatus is updated when the airline confirms the sale of the Optional Service and the Universal Record is retrieved or synchronized. When an EMD is issued, the OptionalService @ServiceStatus is updated in the Universal Record with "Fulfilled".

If the Optional Service @Type=PreReservedSeatAssignment or there is a SpecificSeatAssignment, a chargeable seat characteristic is set on the provider, regardless if the seat is added for the first time or modified (any of the modify scenarios; standard to standard, standard to paid, paid to standard, etc.). Passenger and segment information, Loyalty Card priority (if available), and Fare Information (if available) are sent in the Air Merchandising Fulfillment request. The prices that are returned are based on the information sent, and can differ based on the passenger. If the Optional Service is not PreReservedSeatAssignment, Universal API does not recheck the price and assumes data sent in the request is correct.

If the Optional Services in the fulfillment request are a mix of paid seat and non-paid seat Optional Services, Universal API attempts to fulfill all services. However, Universal API will fulfill the non-paid seat Optional Service even if there is a price or availability change on the paid seat.

Fulfillment of Optional Services

Fulfillment of optional services is done via EMD (Electronic Miscellaneous Document).

After the Merchandising Fulfillment response is returned, SSR data can be used to create an EMD to submit payment information to the carrier. The carrier will also send a message with the last date the EMD must be issued by. If the EMD is not issued by the specified date, the carrier will cancel the Optional Service.

Exceptions