Ancillary Purchases
Overview
An ancillary purchase is a non-ticket airline charge, such as a baggage fee, a seat upgrade, or an insurance payment. Ancillary purchases can accompany a ticket purchase, but must be captured, credited, or refunded separately from the ticket transaction.
Streamline refers to this same concept as a Miscellaneous Charge Order (MCO): an airline transaction for a non-ticket purchase that must be its own airline transaction, separate from a capture for a ticket purchase.
Many processors require a document type field to specify the purpose of an ancillary transaction. Document type code 04 identifies a Miscellaneous Charge Order (MCO) or a prepaid ticket authorization. For the full list of document type and ancillary service category code values, see Airline Data Codes.
Supported Processors
Supported processors (7)
American Express Direct, Chase Paymentech Solutions, Elavon, FDC Nashville Global, OmniPay Direct, Streamline, Visa Platform Connect
Supported processors: Chase Paymentech Solutions, FDC Nashville Global, Streamline,
Capturing an Ancillary Purchase
Endpoints
POST /pts/v2/payments/{id}/captures
POST /pts/v2/payments/{id}/captures
Processor-Specific Capture Information
This list describes processor-specific ancillary capture behavior:
American Express Direct
American Express Direct supports capturing an ancillary purchase through Simple Order only. See Simple Order Ancillary Purchases for the required fields.
Chase Paymentech Solutions
Capture requests must include all the airline-related information, with the processingInformation.industryDataType field set to airline. Ticket purchases and ancillary purchases must be sent in separate captures. Chase Paymentech Solutions uses the travelInformation.transit.airline.transactionType field to distinguish between a ticket purchase and an ancillary purchase; for an ancillary capture, this field is set to 02.
Ancillary data includes various purchases and services, such as ticket upgrades, baggage fees, merchandise purchases, food and beverage, change fees, cancellation charges, partial airline ticket refunds, and ancillary fee cancellations. To indicate the service provided, set the travelInformation.transit.airline.ancillaryInformation.service[].categoryCode field to an ancillary service category code. For possible values, see Airline Data Codes.
Chase Paymentech Solutions uses the same required fields as a standard capture. See Captures Required Fields.
Elavon
Elavon allows you to include an airline ticket purchase and any ancillary purchases in the same capture request, or to capture an ancillary purchase on its own. Elavon uses the same required fields as a standard capture. See Captures Required Fields.
FDC Nashville Global
FDC Nashville Global supports up to four ancillary purchases for each capture.
When ancillary purchases are made at the same time as the ticket purchase, recommends that you send separate capture requests for the ticket and the ancillary purchases. When ancillary purchases are not made at the same time as the ticket purchase, recommends that you send separate authorization and capture requests for the ancillary and ticket purchases. See FDC Nashville Global Required Fields.
OmniPay Direct
OmniPay Direct supports capturing an ancillary purchase through Simple Order only.
See Simple Order Ancillary Purchases for the required fields.
Streamline
Streamline refers to a non-ticket airline purchase, such as an insurance payment or an extra baggage fee, as a Miscellaneous Charge Order (MCO). An MCO must be its own airline transaction, separate from a capture for a ticket purchase. Streamline supports this transaction through Simple Order only. See Simple Order Ancillary Purchases for the required fields.
Visa Platform Connect
Captures for ancillary purchases must be made separately from captures for ticket purchases. See Visa Platform Connect Required Fields.
Processor-Specific Capture Information
This list describes processor-specific ancillary capture behavior:
Chase Paymentech Solutions
Capture requests must include all the airline-related information, with the processingInformation.industryDataType field set to airline. Ticket purchases and ancillary purchases must be sent in separate captures. Chase Paymentech Solutions uses the travelInformation.transit.airline.transactionType field to distinguish between a ticket purchase and an ancillary purchase; for an ancillary capture, this field is set to 02.
Ancillary data includes various purchases and services, such as ticket upgrades, baggage fees, merchandise purchases, food and beverage, change fees, cancellation charges, partial airline ticket refunds, and ancillary fee cancellations. To indicate the service provided, set the travelInformation.transit.airline.ancillaryInformation.service[].categoryCode field to an ancillary service category code. For possible values, see Airline Data Codes.
Chase Paymentech Solutions uses the same required fields as a standard capture. See Captures Required Fields.
FDC Nashville Global
FDC Nashville Global supports up to four ancillary purchases for each capture.
When ancillary purchases are made at the same time as the ticket purchase, recommends that you send separate capture requests for the ticket and the ancillary purchases. When ancillary purchases are not made at the same time as the ticket purchase, recommends that you send separate authorization and capture requests for the ancillary and ticket purchases. See FDC Nashville Global Required Fields.
Streamline
Streamline refers to a non-ticket airline purchase, such as an insurance payment or an extra baggage fee, as a Miscellaneous Charge Order (MCO). An MCO must be its own airline transaction, separate from a capture for a ticket purchase. Streamline supports this transaction through Simple Order only. See Simple Order Ancillary Purchases for the required fields.
Visa Platform Connect
Captures for ancillary purchases must be made separately from captures for ticket purchases. See Required Fields.
Required Fields
Chase Paymentech Solutions and Elavon use the same required fields as a standard capture, with the ancillary-specific behavior noted above. American Express Direct, OmniPay Direct, and Streamline support ancillary captures through Simple Order only; their required fields appear in Simple Order Ancillary Purchases.
Default Required Fields
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
processingInformation.industryDataType
Set the value to airline.
requires only the default fields, plus the ancillary-specific optional fields below.
Optional Fields
travelInformation.transit.airline.ancillaryInformation.connectedTicketNumber
travelInformation.transit.airline.ancillaryInformation.creditReasonIndicator
travelInformation.transit.airline.ancillaryInformation.passengerName
travelInformation.transit.airline.ancillaryInformation.service[].categoryCode
For a list of possible values, see Airline Data Codes.
travelInformation.transit.airline.ancillaryInformation.service[].subCategoryCode
travelInformation.transit.airline.ancillaryInformation.ticketNumber
FDC Nashville Global Required Fields
In addition to the default required fields, FDC Nashville Global also requires this field.
clientReferenceInformation.code
These optional ancillary airline fields can be included in the capture request, in addition to the required fields above.
travelInformation.transit.airline.ancillaryInformation.connectedTicketNumber
travelInformation.transit.airline.ancillaryInformation.passengerName
travelInformation.transit.airline.ancillaryInformation.service[].categoryCode
For a list of possible values, see Airline Data Codes.
travelInformation.transit.airline.ancillaryInformation.service[].subCategoryCode
For a list of possible values, see Airline Data Codes.
travelInformation.transit.airline.ancillaryInformation.ticketNumber
travelInformation.transit.airline.ticketChangeIndicator
Set the value to C for changing an existing ticket, or N for a new ticket.
Required Fields
Requires only the default required fields.
Example
This example, from , shows an ancillary purchase capture with the ancillary fields.
{ "clientReferenceInformation": { "code": "TC50171_3" }, "processingInformation": { "industryDataType": "airline" }, "orderInformation": { "amountDetails": { "totalAmount": "500.00", "currency": "USD" } }, "travelInformation": { "transit": { "airline": { "ancillaryInformation": { "ticketNumber": "123456789123456", "passengerName": "John Doe", "connectedTicketNumber": "654321987654321" } } } }}{ "_links": { "void": { "method": "POST", "href": "/pts/v2/captures/6823030661646093703954/voids" }, "self": { "method": "GET", "href": "/pts/v2/captures/6823030661646093703954" } }, "clientReferenceInformation": { "code": "TC50171_3" }, "id": "6823030661646093703954", "orderInformation": { "amountDetails": { "totalAmount": "500.00", "currency": "USD" } }, "reconciliationId": "67221841NGMV8WOT", "status": "PENDING", "submitTimeUtc": "2026-04-24T02:24:26Z"}Chase Paymentech Solutions, Elavon, and FDC Nashville Global also support ancillary purchase captures through REST.
{ "clientReferenceInformation": { "code": "TICKET-123" }, "processingInformation": { "industryDataType": "airline" }, "orderInformation": { "amountDetails": { "totalAmount": "225.50", "currency": "USD" } }, "travelInformation": { "agency": { "code": "AGT001", "name": "Agency/Name" }, "transit": { "airline": { "electronicTicketIndicator": "true", "carrierName": "UA", "passengerName": "Smith/Jane", "totalFeeAmount": "75.50", "ticketNumber": "2721187251", "customerCode": "TESTCUSTOMERCODE", "ticketIssueDate": "20261210", "arrivalDate": "12202026", "numberOfPassengers": "1", "ticketChangeIndicator": "N", "documentType": "45", "transactionType": "02", "invoiceNumber": "INV982", "ancillaryInformation": { "passengerName": "AncillaryPName", "connectedTicketNumber": "AncTicketNumber", "service": [ { "categoryCode": "BG" }, { "categoryCode": "FF" }, { "categoryCode": "IE" }, { "categoryCode": "ML" } ] } } } }}{ "_links": { "void": { "method": "POST", "href": "/pts/v2/captures/6811595456806928403955/voids" }, "self": { "method": "GET", "href": "/pts/v2/captures/6811595456806928403955" } }, "clientReferenceInformation": { "code": "TICKET-123" }, "id": "6811595456806928403955", "orderInformation": { "amountDetails": { "totalAmount": "225.50", "currency": "USD" } }, "reconciliationId": "658927039G5GNF51", "status": "PENDING", "submitTimeUtc": "2026-04-10T20:45:45Z"}{ "clientReferenceInformation": { "code": "TC50171_3" }, "processingInformation": { "industryDataType": "airline" }, "orderInformation": { "amountDetails": { "totalAmount": "350.00", "currency": "USD" } }, "travelInformation": { "agency": { "name": "Test Airline" }, "transit": { "airline": { "ancillaryInformation": { "ticketNumber": "123456789", "passengerName": "John Smith", "connectedTicketNumber": "987654321", "service": [ { "categoryCode": "BF" } ] } } } }}{ "_links": { "void": { "method": "POST", "href": "/pts/v2/captures/7659260363866784003812/voids" }, "self": { "method": "GET", "href": "/pts/v2/captures/7659260363866784003812" } }, "clientReferenceInformation": { "code": "TC50171_3" }, "id": "7659260363866784003812", "orderInformation": { "amountDetails": { "totalAmount": "350.00", "currency": "USD" } }, "reconciliationId": "69854049CJ7QD97N", "status": "PENDING", "submitTimeUtc": "2025-12-16T23:00:36Z"}{ "clientReferenceInformation": { "code": "TC50171_3" }, "orderInformation": { "amountDetails": { "totalAmount": "102.21", "currency": "USD" } }, "travelInformation": { "transit": { "airline": { "ancillaryInformation": { "ticketNumber": "123456789", "passengerName": "John Doe", "connectedTicketNumber": "987654321", "service": [ { "categoryCode": "65", "subCategoryCode": "75" } ] } } } }}{ "_links": { "void": { "method": "POST", "href": "/pts/v2/captures/6811595456806928403955/voids" }, "self": { "method": "GET", "href": "/pts/v2/captures/6811595456806928403955" } }, "clientReferenceInformation": { "code": "TC50171_3" }, "id": "6811595456806928403955", "orderInformation": { "amountDetails": { "totalAmount": "102.21", "currency": "USD" } }, "reconciliationId": "658927039G5GNF51", "status": "PENDING", "submitTimeUtc": "2026-04-10T20:45:45Z"}Crediting an Ancillary Purchase
Endpoints
POST /pts/v2/credits/
POST /pts/v2/credits/
Processor-Specific Credit Information
Elavon
Elavon uses the same required fields as a standard stand-alone credit. Only the example differs for an ancillary purchase.
American Express Direct
American Express Direct supports crediting an ancillary purchase through Simple Order only. See Simple Order Ancillary Purchases for the required fields.
Required Fields
Elavon uses the same required fields as a standard stand-alone credit. See Credits Required Fields. American Express Direct supports ancillary stand-alone credits through Simple Order only; its required fields appear in Simple Order Ancillary Purchases.
Example
This example, from Elavon, shows a stand-alone credit for an ancillary purchase.
{ "paymentInformation": { "card": { "number": "4111111111111111", "expirationMonth": "07", "expirationYear": "2027" } }, "orderInformation": { "amountDetails": { "totalAmount": "300.00", "currency": "USD" }, "billTo": { "firstName": "John", "lastName": "Smith", "address1": "123 Happy St", "locality": "Sunnyville", "administrativeArea": "TX", "postalCode": "55555", "country": "US", "email": "[email protected]" } }, "travelInformation": { "transit": { "airline": { "ancillaryInformation": { "ticketNumber": "1234567981234567989", "passengerName": "John Smith", "connectedTicketNumber": "987654321987654", "service": [ { "categoryCode": "1" } ] } } } }}{ "_links": { "void": { "method": "POST", "href": "/pts/v2/credits/7678040337136100204805/voids" }, "self": { "method": "GET", "href": "/pts/v2/credits/7678040337136100204805" } }, "clientReferenceInformation": { "code": "1767804033806" }, "creditAmountDetails": { "currency": "USD", "creditAmount": "300.00" }, "id": "7678040337136100204805", "orderInformation": { "amountDetails": { "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "card": { "type": "001" } }, "processorInformation": { "approvalCode": "888888", "responseCode": "100" }, "reconciliationId": "JQT0PJB4FMOB", "status": "PENDING", "submitTimeUtc": "2026-01-07T16:40:33Z"}Refunding an Ancillary Purchase
Endpoints
POST /pts/v2/payments/{id}/refunds
POST /pts/v2/payments/{id}/refunds
Processor-Specific Refund Information
Elavon
Elavon uses the same required fields as a standard refund. Only the example differs for an ancillary purchase.
Required Fields
Elavon uses the same required fields as a standard refund. See Refunds Required Fields.
Example
This example, from Elavon, shows a refund for an ancillary purchase.
{ "clientReferenceInformation": { "code": "TC50171_3" }, "orderInformation": { "amountDetails": { "totalAmount": "102.21", "currency": "USD" } }, "travelInformation": { "transit": { "airline": { "ancillaryInformation": { "ticketNumber": "123456789123456", "passengerName": "John Smith", "connectedTicketNumber": "987654321987654", "service": [ { "categoryCode": "1" } ] } } } }}{ "_links": { "void": { "method": "POST", "href": "/pts/v2/refunds/6805496388936342404953/voids" }, "self": { "method": "GET", "href": "/pts/v2/refunds/6805496388936342404953" } }, "clientReferenceInformation": { "code": "TC50171_3" }, "id": "6805496388936342404953", "orderInformation": { "amountDetails": { "currency": "USD" } }, "processorInformation": { "approvalCode": "888888", "responseCode": "100" }, "reconciliationId": "712678686G0ONA52", "refundAmountDetails": { "currency": "USD", "refundAmount": "102.21" }, "status": "PENDING", "submitTimeUtc": "2026-04-03T19:20:39Z"}Thanks for your feedback!
Last published: September 29, 2026