Ancillary and EMD Guide

Ancillaries are any paid optional services filed by airlines and travel providers as available for selected air segments. Available ancillaries vary by airline and segment, but can include baggage, paid seats, pet/animal transportation, unaccompanied minors, and so on.

Although paid seats are an ancillary, they use different requests and are discussed in the Seats Guide.

Related Content: JSON APIs Guide, Booking Guide, API References for Ancillary Shop , Ancillary Price, Ancillary Book, Ancillary Cancel

In this topic:

Basic Concepts

An ancillary is any paid optional service filed for a flight. Industry examples include paid baggage, carbon offsets, and non-baggage services such as pet transport and unaccompanied minors.

Key points:

  • Ancillaries are airline-specific.

  • Ancillary offers returned are specific to a traveler and to a segment.

  • An ancillary is paid for separately from the fare, and an electronic miscellaneous document (EMD) is issued for that payment.

Paid seats are a type of ancillary, and are detailed in the Seats Guide because they use different requests than detailed here for non-seat ancillaries.

Bundled Fares
If an ancillary is combined with an air offer, that offer is called a bundled fare and is returned in the Search API response. No additional price is charged for an ancillary in a bundled fare. An ancillary bundle can be a combination of ancillaries, or an ancillary and a seat assignment. At this time bundled fares are supported only for NDC in Search and AirPrice (i.e., they cannot yet be booked), and only for UA dynamic bundled fares.

Ancillary Support

The JSON APIs currently support the following ancillaries in the workflows as noted below for NDC and GDS. For seats support, see the Seats Guide.

The NDC Instant Pay workflow (book and issue ticket in the same session) and the Add Product workflow do not support ancillaries or seats. These can be added after the reservation is created.

For differences in how the JSON APIs support GDS and NDC content, see the support tables for seats, ancillaries, fare rules, and exchanges. Also see the NDC and GDS Functionality Comparison.
For carrier-specific NDC differences, see NDC capabilities by airline through JSON API in the Travelport Knowledge Base. If you need login assistance, see Knowledge Base NDC Resources.
To add ancillaries or seats to a multi-offer booking, send one book request for each offer. Supported only for an existing booking, not in the initial booking workflow. For ancillaries: Create Post-Commit Workbench > Ancillary Shop > Ancillary Book for offer 1 > Ancillary Book for offer 2 > Commit Workbench. For seats: Create Post-Commit Workbench > Seat Map > Seat Book for offer 1 > Seat Book for offer 2 > Commit Workbench. You can send the book requests in any order: first and second offer, or second and first offer. GDS only; multi-offers not supported for NDC.

Ancillary type

Ancillary Shop after AirPrice
(must repeat Shop in workbench)
Ancillary Shop and Book
initial booking workflow
Ancillary Shop and Bookexisting reservation Cancel ancillary

GDS

NDC

GDS

NDC

GDS

NDC

GDS

NDC

Paid baggage

Yes

Yes
(uses different request from GDS)

No

No

Yes

Yes

Yes

Yes

Carbon offset

Yes

No

No

No

Yes

No

No

n/a

Non-baggage paid ancillaries

(e.g., pets, meals, lounge access, wifi)

Yes

Yes

No

No

Yes

Yes

No

Yes

Ancillary Payment and EMDs

Payment for any ancillary, including paid seats (see the Seats Guide), is issued through an EMD (electronic miscellaneous document) and is separate from the payment for the flight/s. EMDs can be either EMD-A (EMD is associated to a ticket) or EMD-S (standalone EMD). The JSON APIs support only EMD-A.

For GDS ancillaries, you can pay for an ancillary only after booking that ancillary. This allows the carrier to confirm the ancillary prior to payment.

NDC carriers vary as to when they require ancillary payment. Some NDC carriers require ancillary payment in the initial booking session while others allow you to book the ancillary without payment.

For detailed NDC support by carrier, see the Knowledge Base article NDC capabilities by airline through JSON API (see Knowledge Base NDC Resources if you need login assistance).

NDC carriers issue their own EMDs. After the EMD is issued, there are some differences in EMD handling between GDS and NDC in the JSON APIs:

Workflow Summary

Ancillary Shop after Pricing Workflow

For select ancillaries as noted above in Ancillary Support, you can send an Ancillary Shop request after AirPrice without a workbench session. You'll need to repeat the Ancillary Shop request in a later workbench before you can book an ancillary.

Step #

Ancillary Workflow Step

Description and Notes

API Reference

Search for flights

Searches for flights.

Search API Reference

2

Price the itinerary

Price a selected itinerary from the Search response. Required before sending an ancillary shop request outside a booking workbench.

AirPrice API Reference

3

Ancillary shop request

Shop for available ancillaries.

Ancillary Shop API Reference

Ancillary Workflow for Existing Booking

Follow these steps to add a supported ancillary to an existing booking (see Ancillary Support above). For free and paid seats, see the Seats Guide.

Step #

Ancillary Booking Workflow Step

Description and Notes

API Reference

Create workbench for existing reservation

Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench.

Create Post-Commit Workbench API Reference

Ancillary shop request

Shop for available ancillaries.

Ancillary Shop API Reference

3

Ancillary price request

Price selected ancillary.

Required for NDC. Not supported for GDS.

Ancillary Price API Reference

4

Ancillary book request

Add selected ancillary to workbench.

Ancillary Book API Reference

5

Add form of payment (FOP) for ancillary (optional, supported in same workbench only for specific NDC carriers)

For specific NDC carriers, you can choose to pay and issue the EMD for the ancillary in the same workbench in which you shop and book the ancillary.

Send the details for the form of payment (FOP) to be used to pay for the ancillary. The response returns a system-generated identifier for the FOP that must be sent in the Add Payment request next.

Payments and EMDs for Seats and Ancillaries
Sending payment and issuing an EMD in the same workbench as shopping and booking is supported only for specific NDC carriers. For other NDC carriers and all GDS carriers, you must commit the booking workbench to confirm the booking, and then send payment and issue the EMD in a separate workbench. For ancillary payment requirements by NDC carrier, see NDC capabilities by airline through JSON API in the Travelport Knowledge Base. (If you need login assistance, see Knowledge Base NDC Resources.)

Add Form of Payment API Reference

6

Add payment for ancillary (optional, supported in same workbench only for specific NDC carriers)

If you sent FOP per the preceding step, send the IDs for the offer/s to pay for and the FOP to use.

Add Payment API Reference

7

Commit the workbench

Final step in the workflow.

Depending on payment, one of the following occurs:

  • If no payment was sent, the commit updates the held booking with the ancillary.

  • If FOP and payment for the ancillary were sent, the commit updates the held booking with the ancillary and issues an EMD for the ancillary.

  • If FOP and payment for the ancillary and the air offer were sent, the commit issues the ticket and an EMD for the ancillary.

Commit Workbench API Reference

 

Workflow Diagrams

Paying for an ancillary and issuing an EMD in the same workbench as shopping and booking the ancillary is supported only for NDC. For GDS, you must first commit the workbench to confirm the paid seats before you can pay for the ancillary and issue the EMD in a separate workbench.

FOP and Payment requirements for NDC vary by carrier per Ancillary Support above.

Each box in the diagram represents one API call in the workflow.

Add FOP and Payment (optional)

As part of the workflow, you can send form of payment (if not already in the reservation) and payment for the ancillary offer. If you are also ready to ticket the booking, send payment for both the ancillary offer and the air offer. Reference both the offer and the FOP in the request. See the Add Payment API Reference for endpoint and payload details.

The following example adds payment for both an offer ("id": "offer_1",) and an ancillary ("id": "an_o1").

Commit

As the last step in the flow, commit the workbench.

For an initial booking, the commit creates a reservation with the ancillary details. If FOP and payment for the ancillary were also sent, an EMD for the ancillary is issued.

For an existing reservation, the commit causes one of the following:

  • If no payment was sent, the commit updates the held booking with the ancillary.

  • If FOP and payment for the ancillary were sent, the commit updates the held booking with the ancillary and issues an EMD for the ancillary.

  • If FOP and payment for the ancillary and the air offer were sent, the commit issues the ticket and an EMD for the ancillary.

The commit response returns the following ancillary-specific details in these objects:

  • Product: Product and ancillary identifiers, and the seat assignment if the ancillary is a paid seat.
  • Document: The Document object includes both the ticket number and the EMD number, if issued.

Canceling Ancillaries

Use the Ancillary Cancel request to cancel paid baggage and/or seats for both GDS and NDC, and canceling non-baggage paid ancillaries for NDC. Canceling non-baggage paid ancillaries for GDS is not supported.

paid baggage from an existing reservation. Baggage cannot be canceled in the initial booking workflow. GDS only, not supported for NDC. This is the same request used to cancel seats.

Request and Response Layout Diagrams

The following overview diagrams illustrates the basic structure of the requests and responses for ancillary shop and price. These diagrams don't include every object that might be returned, and diagrams may not reflect minor updates.

Ancillary Shop

The following diagram illustrates the general structure of the Ancillary Shop request and response, including most high-level objects.

Ancillary Price

The following diagram illustrates the general structure of the Ancillary Price request and response, including most high-level objects.