Air Merchandising Fulfillment for Low Cost and API Carriers
The Air Merchandising Fulfillment request for API carriers (e.g., Delta, United, etc.) and Low Cost Carriers (LCC) such as easyJet that are sourced through Airline Content Hub (ACH), can include optional services for multiple carriers and multiple providers. The request is made post-booking, and the response returns the confirmed Optional Services.
Schema
Located in AirReqRsp.xsd:
Request
AirMerchandisingFulfillmentReq supports the fulfillment of Optional Services.
Fulfillment of the optional service paid seat is done by the carrier, and a credit card form of payment must be sent in the request.
- Enter the minimum data required for all carriers and providers in the Air Merchandising Fulfillment request.
- Enter the minimum data required for API and Low Cost carriers:
- A HostToken @Key is needed to reference the matching air segment.
- A HostToken is expected for each AirSegment sent in the request.
- Each AirSegment identifies the flight associated with the seats being added or modified.
- Each AirSegment should include a HostTokenRef with the associated HostToken @Key value
- OptionalService must include the applicable AirSegmentRef and BookingTravelerRef.
- OptionalService can include the seat assignment in ServiceData/@Data. Or, the seat assignment can be sent in SpecificSeatAssignment.
- A standard seat in the back of the plane is identified if Remark or Description is not sent and when the price is 0.00.
- @ProviderDefinedType can be included in the request. @ProviderDefinedType is available for users that copy the OptionalService from the Air Merchandising Offer Availability response. If OptionalService @ProviderDefinedType is not included in the request, Universal API sends OptionalService @Type.
-
An OptionalService taken from SeatMapRsp (Air v35 and later) must be sent with ServiceStatus="Offered".
- Enter additional request data to refine the response.
- The form of payment must be sent in the AirMerchandisingFulfillmentReq with the paid seat optional service. UA confirms the paid seat, but does not issue the EMD until the ticket is issued.
- The OptionalService in the AirMerchandisingFulfillmentRsp does not have a @Confirmation attribute when an EMD has not yet been issued.
- After an EMD is issued, the EMD number is not returned in the OptionalService @Confirmation, nor saved in the Universal Record (UR) unless another AirMerchandisingFulfillmentReq is sent.
HostTokenA HostToken is required if a HostToken was returned in the previous web service in the flow (in this case, the SeatMapRsp).
HostReservationHostReservation is required and must include the CarrierLocatorCode and the ProviderCode.
AirSolutionAirSolution/AirSegment is required.
CreditCardA credit card form of payment is required in the Air Merchandising Fulfillment request if the seat has a charge. CreditCard includes the payment and billing address to b e used.
Delta requires at least one space between names in CreditCard @Name. Examples:
Name="Robert Smith"
Name="Robert E Smith"
The following @Name values will return an error:
Name="Smith"
Name="Smith-Jones"
OptionalServiceAn OptionalService, taken from AirMerchandisingOfferAvailabilityRsp, must be sent for each air segment and traveler.
Universal API compares the price of each Optional Service sent in the request with the Optional Service returned by ACH.
The Air Merchandising Fulfillment response returns OptionalService @Type and @ProviderDefinedType in all schema versions.
AirSolution/SearchTravelerEach SearchTraveler identifies the name of the traveler associated with the seats being added or modified.
SpecificSeatAssignmentThe seat assignments can be sent in either SpecificSeatAssignment or OptionalService/ServiceData @Data.
If SpecificSeatAssignment is used, BookingTravelerRef must be sent to associate the correct traveler, and SegmentRef must be sent to associate the correct air segment.
<air:SpecificSeatAssignment BookingTravelerRef="2" SegmentRef="0T" SeatId="19E"/>
Note: If an invalid Loyalty Card is sent in the request, it is ignored an no warning is returned.
United Paid Seat - Pre-ticketingPreviously, United Airlines (UA) required a ticketed PNR in order to purchase a seat upgrade. However, UA has removed the ticketing requirement. Universal API supports the fulfillment of UA paid seats pre-ticketing.
Response
AirMerchandisingFulfillmentRsp contains the entire Universal Record including new or updated Optional Service information. The response returns:
- UniversalRecord. UniversalRecord displays items such as traveler, seat assignment, loyalty information, and optional services purchased.
- OptionalService.
- When an Optional Service has been cancelled:
- The Optional Service is deleted and OptionalService="Canceled" is not returned in the response.
- The deleted Optional Service is recorded in the Universal Record History.
- The Optional Service shows “Fulfilled” when the airline issues the EMD.
- When an Optional Service has been cancelled:
The provider reservation is updated by the carrier with the added or modified seat assignments.
Note: Delta updates the provider reservation for Worldspan (1P) bookings only.
Typically, the best price available for any one passenger is also applied to any other passengers in the booking. Responses may vary by carrier.
Based on a carrier's reconciliation process, the status of the Optional Service can vary. For example, a paid Optional Service that has been changed may still show as confirmed in the Air Merchandising Fulfillment response.
For UA only, if the seat is being added for the first time for that passenger and flight, and the price returned by ACH is lower than the price in the Air Merchandising Fulfillment request, fulfillment is completed and a warning is returned in the fulfillment response, for each optional service that had a lower price:
Payment amount was lowered to 29.00 for XX seat optional service SEAT YYY on flight XX ZZZ. Fulfillment of this seat was successful.
- XX = carrier code
- YYY = seat assignment
- ZZZ = flight number
Note: This comparison is not done for free, back of plane seats.
For UA only, if a seat is modified for a passenger and flight, regardless of whether the price returned by ACH is lower or higher than the price in the Air Merchandising Fulfillment request, fulfillment is completed and a warning is returned in the response, as above. Universal API determines if the seat is being modified by comparing the seat sent in the Air Merchandising fulfillment request with the data returned by ACH to see a seat is already assigned for the same passenger and flight number.
For all carriers other than UA, if the price returned by ACH is lower than the price in the Air Merchandising Fulfillment request, an error is returned in AirMerchandisingFulfillmentRsp that specifies which Optional Service has the price difference. For example: The price has changed to 59.00 for optional service SEAT 11A on flight DL 1516.
For all carriers, if the price returned by ACH is higher than the price in the Air Merchandising Fulfillment request, an error is returned in AirMerchandisingFulfillmentRsp that specifies which Optional Service has a price difference. If the price is the same, the Optional Service is fulfilled. For example: The price has changed to 59.00 for optional service SEAT 11A on flight DL 1516.
If the Fulfillment request includes a UA segment and a different carrier, the logic above applies to each carrier. However, instead of an error, if one carrier is successful and the other has a price change, a warning is returned for the price change.
The Display Additional Services or *DAS banner may display in the PNR. For example, the following is what it looks like in the PNR for all GDS's:
Q26W3S/70 XDBKR C731870 AG 55555555 24AUG
1.1ADAMS/SAM
1 BA 193L 30AUG LHRDFW HX1 1155A 345P * WE E
2 AA 50L 01SEP DFWLHR NO1 355P 655A|* FR/SA E
3 AA 78L 01SEP DFWLHR KK1 720P 1025A FR E
4 AA 80L 01SEP DFWLHR HK1 1010P 115P FR E
*** ADDITIONAL SERVICES EXIST *** >*DAS·
*** SEAT DATA EXISTS *** >9D·
FONE-DENR/3035552323
Note: The PNR in the GDS does not return the *DAS banner for United (UA) and Delta (DL) paid seats that are booked or fulfilled through Universal API.
- Universal API returns one OptionalService element for one booking traveler that may contain a Quantity greater than "1".
- When an AirMerchandisingFulfillmentReq that includes OptionalService/ @Quantity greater than “1” is sent to the ACH provider for a Low Cost Carrier (LCC), the Quantity returned is the total number of Optional Services requested, which may reference multiple air segments but always one booking traveler.
The TotalPrice of the OptionalService is returned in TotalPrice in AirCreateReservationRsp/UniversalRecord/AirReservation/OptionalService.
Note: These enhancements are only supported by Airline Content Hub for Low Cost Carriers. For all other providers, only @Quantity="1" is supported.
When Optional Services are requested for carriers returned by the Airline Content Hub (ACH) provider only, Universal API returns the amount charged for the Optional Services in the AirMerchandisingFulfillmentRsp in UniversalRecord/AirReservation/Payment @Amount.
- When Optional Services are sent in one request to one or more ACH carriers, or to ACH and ATPCO carriers, the Payment @Amount reflects the actual amount charged for the Optional Service(s), not the amount of the Optional Service(s) in the request. This applies ONLY for ACH carriers.
- Universal API returns a Payment element for each carrier. If FormOfPayment is already stored in the Universal Record (UR), Universal API returns a new Payment element with @Amount showing the total.
- If the amount returned by the carrier is zero, Universal API returns Payment @Amount in the response with 0.00.
For example, a request includes Delta (DL) and KLM (KL). The response includes Payment @Amount, but it only applies to the DL Optional Services because DL is an ACH carrier.
Note: Currently, in a single request with multiple Optional Services, ACH carriers will confirm all or none of the Optional Services.
Payment elements returned by the Air Merchandising Fulfillment response persist in the UR.
Show detailsEach time an Optional Service for an ACH carrier is added to the UR, the Fulfillment response returns ALL the previous Payments, as well as a Payment element for the Optional Service that was just added.
- The UR returns all FormOfPayment elements saved in the UR, including the one just returned by the AirMerchandisingFulfillmentRsp, if it is different than what is already in the UR.
- When the credit card used to add an Optional Service is the same as a credit card currently in the UR, then a new Payment element is returned in the AirMerchandisingFulfillmentRspand saved in the UR. Each Payment has the same @FormOfPaymentRef.
- When the credit card used to add an Optional Service is different than the credit card currently in the UR, a new FormOfPayment is returned and saved in the UR, and a new Payment element is returned and saved in the UR. Each Payment has a unique @FormOfPaymentRef that references the applicable credit card.
For suppliers that include payment in the Fulfillment request:
- Upon successful fulfillment, a Payment is created within the Universal Record. The FOP used for Merchandising is saved to the Universal Record. The credit card used to purchase Optional Services may or may not be the same form of payment used to purchase the airline tickets. This payment includes the amount charged for the Merchandising transaction.
- If there is a Currency 0.00 Payment, then all Optional Services were free, and no Payment or Form of Payment is saved to the Universal Record because nothing was charged.
- If the Universal Record is retrieved at a later time, no synchronization of the Form of Payment is made with the supplier's Form of Payment of the PNR. The credit card used to purchase the Optional Service will not be overwritten by any other credit card found in the PNR/UR.
Errors and Warnings
An error is returned from ACH and passed in the Universal API response:
- If the point of sale is anything other than US.
<Error Type="895" ShortText="Access to this adapter is restricted to point of sale locations in US" NodeList="//POS/Source/@ISOCountry">Requestor of the service is unauthorized for the requested adapter</Error>
Review specifics for Air Merchandising Fulfillment:
Optional Services may be canceled or modified, depending on the supplier and type of change.