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: Chase Paymentech Solutions, FDC Nashville Global, Streamline,
Capturing an Ancillary Purchase
Endpoints
Send the request to the transaction processor endpoint with the ccCaptureService_run field set to true.
POST /commerce/1.x/transactionProcessor
POST /commerce/1.x/transactionProcessor
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 ccCaptureService_industryDatatype field set to airline. You must send ticket purchases and ancillary purchases in separate captures. To indicate the service provided, set the ancillaryData_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 Simple Order capture. See Simple Order Captures Required Fields.
FDC Nashville Global
FDC Nashville Global supports up to four ancillary purchases for each capture. 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. See Streamline Required Fields.
Visa Platform Connect
Captures for ancillary purchases must be made separately from captures for ticket purchases. See Required Fields.
Required Fields
Default Required Fields
ccCaptureService_authRequestID
ccCaptureService_run
Set the value to true.
merchantID
merchantReferenceCode
Set to the merchant_ref_number value used in the corresponding authorization request.
purchaseTotals_currency
purchaseTotals_grandTotalAmount
requires only the default fields, plus the ancillary-specific optional fields below.
Optional Fields
ancillaryData_connectedTicketNumber
ancillaryData_creditReasonIndicator
ancillaryData_passengerName
ancillaryData_service_#_categoryCode
For a list of possible values, see Airline Data Codes.
ancillaryData_service_#_subcategoryCode
ancillaryData_ticketNumber
FDC Nashville Global Required Fields
In addition to the default required fields, FDC Nashville Global also requires this field.
airlineData_ticketUpdateIndicator
Set the value to C for changing an existing ticket, or N for a new ticket.
Choose from these optional ancillary airline fields to include in the capture request, in addition to the required fields above. Replace the # character with a sequential number from 0 to 3.
ancillaryData_connectedTicketNumber
ancillaryData_passengerName
ancillaryData_service_#_categoryCode
Replace the # character with a sequential number from 0 to 3. For a list of possible values, see Airline Data Codes.
ancillaryData_service_#_subcategoryCode
Replace the # character with a sequential number from 0 to 3. For a list of possible values, see Airline Data Codes.
ancillaryData_ticketNumber
Required Fields
Streamline Required Fields
Streamline requires these fields to capture an airline MCO authorization.
ccCaptureService_authRequestID
ccCaptureService_run
merchantID
merchantReferenceCode
Set to the merchant_ref_number value used in the corresponding authorization request.
purchaseTotals_currency
purchaseTotals_grandTotalAmount
airlineData_agentCode
airlineData_agentName
airlineData_passengerName
airlineData_ticketNumber
ccCaptureService_industryDatatype
Set the value to airline.
airlineData_leg_#_destination
Replace the # character with the number 0 for the first leg and consecutive numbers for any additional legs. Set the value to XAO.
airlineData_leg_#_originatingAirportCode
Replace the # character with the number 0 for the first leg and consecutive numbers for any additional legs. Set the value to XAA.
Example
This example, from , shows an ancillary purchase capture with the ancillary fields.
<requestMessage> <merchantID>World Wide Travel</merchantID> <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCaptureService run="true"> <authRequestID>0839543530000172034078</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <ancillaryData> <ticketNumber>123456789123456</ticketNumber> <passengerName>Jane Smith</passengerName> <connectedTicketNumber>98765432112345</connectedTicketNumber> <creditReasonIndicator>A</creditReasonIndicator> <service sequenceNumber="0"> <categoryCode>MEAL</categoryCode> <subCategoryCode>SPM</subCategoryCode> </service> <service sequenceNumber="1"> <categoryCode>ENTM</categoryCode> <subCategoryCode>DTV</subCategoryCode> </service> </ancillaryData></requestMessage><c:replyMessage> <c:requestID>4250238442125000001540</c:requestID> <c:decision>ACCEPT</c:decision> <c:reasonCode>100</c:reasonCode> <c:merchantReferenceCode>R98TV09EN200W</c:merchantReferenceCode> <c:purchaseTotals> <c:currency>USD</c:currency> </c:purchaseTotals> <c:ccCaptureReply> <c:reasonCode>100</c:reasonCode> <c:amount>204.78</c:amount> <c:reconciliationID>1094820975023470</c:reconciliationID> <c:enhancedDataEnabled>y</c:enhancedDataEnabled> </c:ccCaptureReply></c:replyMessage>Thanks for your feedback!
Last published: October 28, 2026