Skip to main content

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 Required
orderInformation.amountDetails.totalAmount Required
processingInformation.industryDataType Required

Set the value to airline.

requires only the default fields, plus the ancillary-specific optional fields below.

Optional Fields
travelInformation.transit.airline.ancillaryInformation.connectedTicketNumber Optional
travelInformation.transit.airline.ancillaryInformation.creditReasonIndicator Optional
travelInformation.transit.airline.ancillaryInformation.passengerName Optional
travelInformation.transit.airline.ancillaryInformation.service[].categoryCode Optional

For a list of possible values, see Airline Data Codes.

travelInformation.transit.airline.ancillaryInformation.service[].subCategoryCode Optional
travelInformation.transit.airline.ancillaryInformation.ticketNumber Optional
FDC Nashville Global Required Fields

In addition to the default required fields, FDC Nashville Global also requires this field.

clientReferenceInformation.code Required

These optional ancillary airline fields can be included in the capture request, in addition to the required fields above.

travelInformation.transit.airline.ancillaryInformation.connectedTicketNumber Optional
travelInformation.transit.airline.ancillaryInformation.passengerName Optional
travelInformation.transit.airline.ancillaryInformation.service[].categoryCode Optional

For a list of possible values, see Airline Data Codes.

travelInformation.transit.airline.ancillaryInformation.service[].subCategoryCode Optional

For a list of possible values, see Airline Data Codes.

travelInformation.transit.airline.ancillaryInformation.ticketNumber Optional
travelInformation.transit.airline.ticketChangeIndicator Optional

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"}

Last published: September 29, 2026