Airline Processing Developer Guide

This section describes how to use this guide and where to find further information.
Audience and Purpose
This guide is written for application developers who want to use the
Cybersource
Simple Order API
to integrate credit card processing with airline data into their order management system.
Implementing the
Cybersource
credit card services requires software development skills. You must write code that uses the API request and reply fields to integrate the credit card services into your existing order management system.
Conventions
This special statement is used in this document:
An
Important
statement contains information essential to successfully completing a task or learning a concept.
Related Documentation
Visit the
Cybersource
documentation hub
to find additional processor-specific versions of this guide and additional technical documentation.
Customer Support
For support information about any service, visit the Support Center:

Recent Revisions to This Document

26.10.01

Added ancillary fields in Airline Ancillary Fields.

26.06.01

Chase Paymentech Solutions

26.02.01

Elavon
Added support for
Elavon
ancillary purchases. See Elavon Airline Transactions.
UATP
Added the follow-on credit service. See Refund an Airline Payment.
Added the ticket document number requirement for captures and stand-alone credits. See Capture an Airline Payment and Issue a Stand-Alone Credit.

Visa Platform Connect: Specifications and Conditions for Resellers/Partners

The following are specifications and conditions that apply to a Reseller/Partner enabling its merchants through
Cybersource for
Visa Platform Connect
(“VPC”) processing
. Failure to meet any of the specifications and conditions below is subject to the liability provisions and indemnification obligations under Reseller/Partner’s contract with Visa/Cybersource.
  1. Before boarding merchants for payment processing on a VPC acquirer’s connection, Reseller/Partner and the VPC acquirer must have a contract or other legal agreement that permits Reseller/Partner to enable its merchants to process payments with the acquirer through the dedicated VPC connection and/or traditional connection with such VPC acquirer.
  2. Reseller/Partner is responsible for boarding and enabling its merchants in accordance with the terms of the contract or other legal agreement with the relevant VPC acquirer.
  3. Reseller/Partner acknowledges and agrees that all considerations and fees associated with chargebacks, interchange downgrades, settlement issues, funding delays, and other processing related activities are strictly between Reseller and the relevant VPC acquirer.
  4. Reseller/Partner acknowledges and agrees that the relevant VPC acquirer is responsible for payment processing issues, including but not limited to, transaction declines by network/issuer, decline rates, and interchange qualification, as may be agreed to or outlined in the contract or other legal agreement between Reseller/Partner and such VPC acquirer.
DISCLAIMER: NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR ANY ERRORS OR OMISSIONS BY THE
Visa Platform Connect
ACQUIRER IN PROCESSING TRANSACTIONS. NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR RESELLER/PARTNER BOARDING MERCHANTS OR ENABLING MERCHANT PROCESSING IN VIOLATION OF THE TERMS AND CONDITIONS IMPOSED BY THE RELEVANT
Visa Platform Connect
ACQUIRER.

Introduction to Airline Processing

Airline data processing exceeds basic payment processing by enabling you to process specific travel data. To make use of this capability, you must submit additional information, such as:
  • Carrier (airline)
  • Departure date
  • Destination airport
  • Purchase date
  • Originating airport
  • Ticket class
  • Travel legs (segments)
  • Ticket Number
Before you can test or process airline payments, your merchant account must be set up for airline processing, including adding the airline merchant category code (MCC) provided by your processor. Contact your
Cybersource
account manager for help with this setup.

Confirmation Response

When you send a request with airline data,
Cybersource
does not save the airline data. Instead,
Cybersource
sends your airline data to the processor.
Cybersource
enforces only minimal field validation, which can result in a successful response that did not send the airline data to the processor.
If your airline data transactions produce batching errors when the information is sent to the processor,
Cybersource
temporarily disables your account's airline data processing capability and contacts you. If this occurs, your request is not rejected, but you receive a field in the response indicating that airline data in the request has been ignored and not sent to the processor.
These are the response fields for each request type are:
  • Authorization:
    ccAuthReply_enhancedDataEnabled
  • Capture:
    ccCaptureReply_enhancedDataEnabled
  • Credit:
    ccCreditReply_enhancedDataEnabled
These are the possible field values:
  • N
    : the airline data was
    not
    included in the request to the processor.
  • Y
    : the airline data was included in the request to the processor.

Airline Travel Legs

Some processors require travel legs in the API service request, even for direct flights. This section describes how to successfully include travel legs in an API request.

Using Travel Legs

To include travel legs in an airline transaction, include one or more
airlineData_leg_#_
fields, starting with the
airlineData_leg_0_
fields.
Direct flights only use the
airlineData_leg_0_
fields.
For multiple leg trips, the
airlineData_leg_#_
fields must start at 0, and you must use consecutive numbers for the additional legs.
If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
For example, these three travel legs are valid:
<leg id="0"> <carrierCode>XX</carrierCode> </leg> <leg id="1"> <carrierCode>XZ</carrierCode> </leg> <leg id="2"> <carrierCode>XX</carrier<code> </leg>

Travel Leg Limitations

Some processors limit the number of travel legs for each trip based on the card type.

American Express Direct
Airline Transactions

This section describes the airline payment services you can use when processing with
American Express Direct
.

Supported Card Type

This table describes the card type that
American Express Direct
supports.
American Express Direct
Supported Card Type
Supported Card Type
American Express

Authorize an Airline Ticket Payment

This section describes how to process an airline authorization with American Express Direct.

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Optional Field for an Airline Authorization

Capture an Airline Ticket Payment

This section describes how to capture an airline payment.

Leg Limitations

American Express Direct
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on processor and card type.
American Express Direct
Leg Limitations
Supported Card Type
Maxiumum Number of Travel Legs
American Express
4

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Ancillary Capture

Include these required fields to capture a payment for airline purchases that are not for tickets or exchanges.

Issue a
Stand-Alone Credit

This topic describes how to process an airline
stand-alone credit
.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Ancillary Stand-Alone Credit

Include these required fields to credit an airline purchase that is not for tickets or exchanges.

Barclays
Airline Transactions

This section describes the airline payment services you can use when processing with
Barclays
.
You cannot process a cash advance and airline data in the same transaction.

Supported Card Types

These are the card types that
Barclays
supports:
  • Maestro (International)
  • Maestro (UK Domestic)
  • Mastercard
  • Visa

Travel Legs

Maximum number of travel legs: 99
Numbering for the travel legs: 0 to 98
You must include information for at least the first leg of the trip (leg 0). You must use consecutive numbers for the legs; do not skip a number. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.

Capture an Airline Ticket Payment

This section describes how to capture an airline payment for a ticket purchase.
Before you can capture payment, you must authorize the funds by sending an authorization request. The authorization response includes a request ID in the
requestID
field. The request ID is required in the capture request. For more information about how to send an authorization request, see the Standard Payment Processing section in the
Payments Developer Guide
.

Leg Limitations

Barclays
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on card type.
Barclays
Leg Limitations
Supported Card Types
Maximum Number of Travel Legs
Maestro (International)
99
Maestro (UK Domestic)
99
Mastercard
99
Visa
99

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Ticket Capture

Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set the value to
airline
.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Vero
supports Brazilian real (BRL) currency only.

Card-Specific Field for an Airline Ticket Capture

Some card types require additional fields.

Visa

Use this field to capture an airline payment when using a Visa card.

Simple Order Example: Airline Ticket Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.23">    <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>    <airlineData>       <agentCode>98222147</agentCode>       <agentName>Cyber Vacations</agentName>       <ticketIssuerAddress>123 Main Street</ticketIssuerAddress>       <ticketNumber>02721187251</ticketNumber>       <passengerName>Johnny Smith</passengerName>       <leg id="0">          <carrierCode>AA</carrierCode>
         <originatingAirportCode>SJC</originatingAirportCode>
         <departureDate>101512</departureDate>
         <destination>SEA</destination>
         <fareBasis>HL7WNR</fareBasis>
      </leg>       <leg id="1">          <carrierCode>AA</carrierCode>
         <originatingAirportCode>SEA</originatingAirportCode>
         <departureDate>102012</departureDate>
         <destination>SJC</destination>
         <fareBasis>HL7WNR</fareBasis>
      </leg>    </airlineData> </requestMessage>
Response
<c:replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.23">    <c:merchantReferenceCode>R98TV09EN200W</c:merchantReferenceCode>    <c:requestID>0305782650000167905080</c:requestID>    <c:decision>ACCEPT</c:decision>    <c:reasonCode>100</c:reasonCode>    <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>

Issue a Stand-Alone Credit

This topic describes how to process a stand-alone credit for an airline payment. Stand-alone credits are not linked to the original payment. This service distributes funds without requiring a capture ID.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Card-Specific Field for an Airline Stand-Alone Credit

Some card types require additional fields.

Visa

Use this field to capture an airline payment when using a Visa card.

Simple Order Example: Airline Stand-Alone Credit

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantID>test-merchant</merchantID> <merchantReferenceCode>refnum-1234</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>0305782650000167905080</captureRequestID> </ccCreditService> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantReferenceCode>Postman-1701820687</merchantReferenceCode> <requestID>0305782650000167905080</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj/7wSTfHUvjqCkViFEABEg2asWjlgzb0qE+c4YxmKeQXe+aFgKeQXe+bn6QHymhcMmkmXoxZaH/wJyb46l4wXgbv0b4AAAAxnW</requestToken> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-12-05T23:58:07Z</requestDateTime> <amount>204.78</amount> <reconciliationID>65149037RPON81F1</reconciliationID> <authorizationCode>888888</authorizationCode> <processorResponse>100</processorResponse> </ccCreditReply> </replyMessage>

Elavon
Airline Transactions

This section describes the airline payment services you can use when processing with
Elavon
.

Supported Card Types

This table lists the card types that
Elavon
supports.
Elavon
Supported Card Types
Supported Card Types
Diners Club
Discover
JCB Card
Mastercard
Visa

Capture an Airline Payment

This section describes how to capture an airline payment.
You can include an airline ticket purchase and any ancillary purchases in the same capture request. Ancillary purchases are any additional services, such as baggage, meals, and paid seats, your customers can purchase.
Prerequisite
Before you can capture payment, you must authorize the funds by sending an authorization request. The authorization response includes a request ID in the
requestID
field. The request ID is required in the capture request. For more information about how to send an authorization request, see the Standard Payment Processing section in the
Payments Developer Guide
.

Leg Limitations

Elavon
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on card type.
Elavon
Leg Limitations
Supported Card Types
Maximum Number of Travel Legs
Diners Club
4
Discover
4
JCB Card
4
Mastercard
4
Visa
4

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Capture

Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Format:
MMDDYYYY
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set the value to
airline
.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.

Required Fields for an Ancillary Purchase

Include these fields, in addition to the above fields, if there is an ancillary purchase:
For a list of all possible values, see Ancillary Service Category Codes.
To send multiple category codes, you must include additional entries of this field in the leg.

Card-Specific Field for an Airline Capture

Certain card types require additional fields.

Diners Club

Use this field in addition to the required fields to capture an airline authorization when using a Diners Club card.

Optional Fields for an Airline Capture

Optional only for Diners Club and Discover card types.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Format:
MMDDYYYY
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.

Simple Order Example: Airline Ticket Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.11">    <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>    <airlineData>       <agentCode>98222147<agentCode>       <agentName>Regent Travel</agentName>       <ticketNumber>02721187251</ticketNumber>       <restrictedTicketIndicator>1</restrictedTicketIndicator>       <ticketIssuerCode>927</ticketIssuerCode>       <passengerName>John Smith</passengerName>       <leg id="0">          <carrierCode>AA</carrierCode>          <flightNumber>397</flightNumber>          <originatingAirportCode>SJC</originatingAirportCode>          <class>H</class>          <stopoverCode>1</stopoverCode>          <departureDate>06152024</departureDate>          <destination>SEA</destination>          <fareBasis>HL7WNR</fareBasis>       </leg>       <leg id="1">          <carrierCode>AA</carrierCode>          <class>H</class>          <stopoverCode>1</stopoverCode>          <departureDate>06162024</departureDate>          <destination>SJC</destination>          <fareBasis>HL7WNR</fareBasis>       </leg>    </airlineData> </requestMessage>

Simple Order Example: Ancillary Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.233"> <merchantID>merchantId</merchantID> <merchantReferenceCode>TC10001</merchantReferenceCode> <billTo> <firstName>John</firstName> <lastName>Smith</lastName> <street1>201 S. Division St.</street1> <city>Ann Arbor</city> <state>MI</state> <postalCode>48104-2201</postalCode> <country>US</country> <email>[email protected]</email> </billTo> <purchaseTotals> <currency>eur</currency> <grandTotalAmount>103.00</grandTotalAmount> </purchaseTotals> <ccCaptureService run="true"> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentCode>98222147</agentCode> <agentName>Cyber Vacations</agentName> <ticketIssuerCode>198765432101234</ticketIssuerCode> <ticketNumber>2721187251</ticketNumber> <restrictedTicketIndicator>1</restrictedTicketIndicator> <passengerName>Jane Smith</passengerName> <customerCode>TESTCUSTOMERCODE</customerCode> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>EZ123</flightNumber> <originatingAirportCode>SJC</originatingAirportCode> <class>H</class> <stopoverCode>0</stopoverCode> <departureDate>20251230</departureDate> <destination>SEA</destination> <fareBasis>HL7WNR</fareBasis> </leg> <leg id="1"> <carrierCode>A2</carrierCode> <flightNumber>JFK12</flightNumber> <originatingAirportCode>JFK</originatingAirportCode> <class>1</class> <stopoverCode>1</stopoverCode> <departureDate>20251230</departureDate> <destination>CD1</destination> <fareBasis>GH87N1</fareBasis> </leg> <creditReasonIndicator>A</creditReasonIndicator> <ticketUpdateIndicator>N</ticketUpdateIndicator> </airlineData> <ancillaryData> <ticketNumber>12345678901234</ticketNumber> <passengerName>Jane Smith</passengerName> <connectedTicketNumber>98765432109876</connectedTicketNumber> <creditReasonIndicator>A</creditReasonIndicator> <feeDescription>BagAndSeatFee</feeDescription> <service id="0"> <categoryCode>BG</categoryCode> <subcategoryCode>0AA</subcategoryCode> <feeAmount>2.00</feeAmount> <feeCode>BG</feeCode> </service> <service id="1"> <categoryCode>SA</categoryCode> <subcategoryCode>0B5</subcategoryCode> <feeAmount>1.00</feeAmount> <feeCode>SA</feeCode> </service> </ancillaryData> </requestMessage>
Response to a Successful Request
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.233"> <merchantReferenceCode>TC10001</merchantReferenceCode> <requestID>7682241889027001119198</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj//wSToHSF187gP3HeAAYs3bOGTJoxcOHLBk3YMGLFi5YuXCbWPCZNhAU2seEybD6Q6g8XfIZNtxlac9M1SgwJydA6QuvncB+47wAAWiva</requestToken> <purchaseTotals> <currency>eur</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-01-12T13:23:11Z</requestDateTime> <amount>103.00</amount> <reconciliationID>7682241889027001119198</reconciliationID> <enhancedDataEnabled>y</enhancedDataEnabled> </ccCaptureReply> <card> <cardType>001</cardType> </card> <reserved> <ics_message xmlns="urn:schemas-cybersource-com:transaction-data:ics"> <auth_auth_response>0</auth_auth_response> <ics_decision_reason_code>100</ics_decision_reason_code> <auth_rflag>SOK</auth_rflag> <bill.reason_code>100</bill.reason_code> <auth_payment_network_transaction_id>123456789012345</auth_payment_network_transaction_id> <ics_rcode>1</ics_rcode> <ics_rmsg>Request was processed successfully.</ics_rmsg> <merchant_ref_number>TC10001</merchant_ref_number> <auth_auth_avs>1</auth_auth_avs> <bill_rcode>1</bill_rcode> <request_id>7682241889027001119198</request_id> <auth_auth_time>2026-01-12T132310Z</auth_auth_time> <auth_auth_code>726124</auth_auth_code> <request_token>Axj//wSToHSF187gP3HeAAYs3bOGTJoxcOHLBk3YMGLFi5YuXCbWPCZNhAU2seEybD6Q6g8XfIZNtxlac9M1SgwJydA6QuvncB+47wAAWiva</request_token> <card_type>001</card_type> <bill_enhanced_data_enabled>y</bill_enhanced_data_enabled> <auth_return_code>1010000</auth_return_code> <auth_rmsg>(00) Authorization or successful completion of a transaction</auth_rmsg> <ics_rflag>SOK</ics_rflag> <auth_rcode>1</auth_rcode> <currency>eur</currency> <bill_trans_ref_no>7682241889027001119198</bill_trans_ref_no> <auth.reason_code>100</auth.reason_code> <auth_auth_amount>103.00</auth_auth_amount> <ics_return_code>1000000</ics_return_code> <bill_bill_amount>103.00</bill_bill_amount> <bill_rflag>SOK</bill_rflag> <bill_rmsg>Request was processed successfully.</bill_rmsg> <bill_bill_request_time>2026-01-12T132311Z</bill_bill_request_time> <bill_return_code>1260000</bill_return_code> <auth_card_reference_data>123456789012345NQ NCA</auth_card_reference_data> </ics_message> </reserved> </replyMessage>

Refund an Airline Payment

This section describes how to issue a refund, also known as a follow-on credit. A refund is follow-on request that returns the payment amount from a completed capture or sale. You must have a capture or sale transaction ID.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Refund

Set the value to the capture ID.
Set the value to
true
.
Set the value to the
merchant_ref_number
field value used in the corresponding capture request.

Required Fields for an Ancillary Purchase

Include these fields, in addition to the above fields, if there is an ancillary purchase:
For a list of all possible values, see Ancillary Service Category Codes.
To send multiple category codes, you must include additional entries of this field in the leg.

Card-Specific Field for an Airline Refund

Certain card types require additional fields.

Diners Club

Use this field in addition to the required fields to capture an airline authorization when using a Diners Club card.

Optional Fields for an Airline Refund

Optional only for Diners Club and Discover card types.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Format:
MMDDYYYY
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.

Simple Order Example: Airline Refund

Request
<requestMessage> <merchantID>merchantID</merchantID> <merchantReferenceCode>merchantRefCode</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>1.01</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>captureRequestID</captureRequestID> </ccCreditService> <airlineData> <agentCode>98222147</agentCode> <agentName>Cyber Vacations</agentName> <ticketIssuerCode>198765432101234</ticketIssuerCode> <ticketNumber>2721187251</ticketNumber> <restrictedTicketIndicator>1</restrictedTicketIndicator> <passengerName>Jane Smith</passengerName> <customerCode>TESTCUSTOMERCODE</customerCode> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>EZ123</flightNumber> <originatingAirportCode>SJC</originatingAirportCode> <class>H</class> <stopoverCode>0</stopoverCode> <departureDate>20251230</departureDate> <destination>SEA</destination> <fareBasis>HL7WNR</fareBasis> </leg> <leg id="1"> <carrierCode>A2</carrierCode> <flightNumber>JFK12</flightNumber> <originatingAirportCode>JFK</originatingAirportCode> <class>1</class> <stopoverCode>1</stopoverCode> <departureDate>20251230</departureDate> <destination>CD1</destination> <fareBasis>GH87N1</fareBasis> </leg> <creditReasonIndicator>A</creditReasonIndicator> <ticketUpdateIndicator>N</ticketUpdateIndicator> </airlineData> <ancillaryData> <ticketNumber>12345678901234</ticketNumber> <passengerName>Jane Smith</passengerName> <connectedTicketNumber>98765432109876</connectedTicketNumber> <creditReasonIndicator>A</creditReasonIndicator> <feeDescription>BagAndSeatFee</feeDescription> <service id="0"> <categoryCode>BG</categoryCode> <subcategoryCode>0AA</subcategoryCode> <feeAmount>2.00</feeAmount> <feeCode>BG</feeCode> </service> <service id="1"> <categoryCode>SA</categoryCode> <subcategoryCode>0B5</subcategoryCode> <feeAmount>1.00</feeAmount> <feeCode>SA</feeCode> </service> </ancillaryData> </requestMessage>
Response to a Successful Request
<replyMessage> <merchantReferenceCode>Postman-1666641056</merchantReferenceCode> <requestID>6666410568976150003010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2022-10-24T19:50:57Z</requestDateTime> <amount>1.01</amount> <reconciliationID>6691571329CM5P99</reconciliationID> </ccCreditReply> </replyMessage>

Simple Order Example: Ancillary Refund

Request
<requestMessage> <merchantID>merchantID</merchantID> <merchantReferenceCode>merchantRefCode</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>1.01</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>captureRequestID</captureRequestID> </ccCreditService> <airlineData> <agentCode>98222147</agentCode> <agentName>Cyber Vacations</agentName> <ticketIssuerCode>198765432101234</ticketIssuerCode> <ticketNumber>2721187251</ticketNumber> <restrictedTicketIndicator>1</restrictedTicketIndicator> <passengerName>Jane Smith</passengerName> <customerCode>TESTCUSTOMERCODE</customerCode> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>EZ123</flightNumber> <originatingAirportCode>SJC</originatingAirportCode> <class>H</class> <stopoverCode>0</stopoverCode> <departureDate>20251230</departureDate> <destination>SEA</destination> <fareBasis>HL7WNR</fareBasis> </leg> <leg id="1"> <carrierCode>A2</carrierCode> <flightNumber>JFK12</flightNumber> <originatingAirportCode>JFK</originatingAirportCode> <class>1</class> <stopoverCode>1</stopoverCode> <departureDate>20251230</departureDate> <destination>CD1</destination> <fareBasis>GH87N1</fareBasis> </leg> <creditReasonIndicator>A</creditReasonIndicator> <ticketUpdateIndicator>N</ticketUpdateIndicator> </airlineData> <ancillaryData> <ticketNumber>12345678901234</ticketNumber> <passengerName>Jane Smith</passengerName> <connectedTicketNumber>98765432109876</connectedTicketNumber> <creditReasonIndicator>A</creditReasonIndicator> <feeDescription>BagAndSeatFee</feeDescription> <service id="0"> <categoryCode>BG</categoryCode> <subcategoryCode>0AA</subcategoryCode> <feeAmount>2.00</feeAmount> <feeCode>BG</feeCode> </service> <service id="1"> <categoryCode>SA</categoryCode> <subcategoryCode>0B5</subcategoryCode> <feeAmount>1.00</feeAmount> <feeCode>SA</feeCode> </service> </ancillaryData> </requestMessage>
Response to a Successful Request
<replyMessage> <merchantReferenceCode>Postman-1666641056</merchantReferenceCode> <requestID>6666410568976150003010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2022-10-24T19:50:57Z</requestDateTime> <amount>1.01</amount> <reconciliationID>6691571329CM5P99</reconciliationID> </ccCreditReply> </replyMessage>

Issue a Stand-Alone Credit

This topic describes how to process a stand-alone credit for an airline payment. Stand-alone credits are not linked to the original payment. This service distributes funds without requiring a capture ID.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Stand-Alone Credit

Set the value to
true
. For example
ccCreditService run="true"
.
Set the value to the
merchant_ref_number
value used in corresponding capture request.
Set the value to
airline
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Format:
MMDDYYYY
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Required Fields for an Ancillary Purchase

Include these fields, in addition to the above fields, if there is an ancillary purchase:
For a list of all possible values, see Ancillary Service Category Codes.
To send multiple category codes, you must include additional entries of this field in the leg.

Card-Specific Field for an Airline Stand-Alone Credit

Certain card types require additional fields.

Diners Club

Use this field in addition to the required fields to capture an airline authorization when using a Diners Club card.

Optional Fields for an Airline Stand-Alone Credit

Optional only for Diners Club and Discover card types.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Format:
MMDDYYYY
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.
Optional for consecutive legs after the first leg.

Simple Order Example: Airline Stand-Alone Credit

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantID>test-merchant</merchantID> <merchantReferenceCode>refnum-1234</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>0305782650000167905080</captureRequestID> </ccCreditService> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantReferenceCode>Postman-1701820687</merchantReferenceCode> <requestID>0305782650000167905080</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj/7wSTfHUvjqCkViFEABEg2asWjlgzb0qE+c4YxmKeQXe+aFgKeQXe+bn6QHymhcMmkmXoxZaH/wJyb46l4wXgbv0b4AAAAxnW</requestToken> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-12-05T23:58:07Z</requestDateTime> <amount>204.78</amount> <reconciliationID>65149037RPON81F1</reconciliationID> <authorizationCode>888888</authorizationCode> <processorResponse>100</processorResponse> </ccCreditReply> </replyMessage>

Simple Order Example: Ancillary Stand-Alone Credit

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantID>test-merchant</merchantID> <merchantReferenceCode>refnum-1234</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>0305782650000167905080</captureRequestID> </ccCreditService> <airlineData> <agentCode>98222147</agentCode> <agentName>Cyber Vacations</agentName> <ticketIssuerCode>198765432101234</ticketIssuerCode> <ticketNumber>2721187251</ticketNumber> <restrictedTicketIndicator>1</restrictedTicketIndicator> <passengerName>Jane Smith</passengerName> <customerCode>TESTCUSTOMERCODE</customerCode> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>EZ123</flightNumber> <originatingAirportCode>SJC</originatingAirportCode> <class>H</class> <stopoverCode>0</stopoverCode> <departureDate>20251230</departureDate> <destination>SEA</destination> <fareBasis>HL7WNR</fareBasis> </leg> <leg id="1"> <carrierCode>A2</carrierCode> <flightNumber>JFK12</flightNumber> <originatingAirportCode>JFK</originatingAirportCode> <class>1</class> <stopoverCode>1</stopoverCode> <departureDate>20251230</departureDate> <destination>CD1</destination> <fareBasis>GH87N1</fareBasis> </leg> <creditReasonIndicator>A</creditReasonIndicator> <ticketUpdateIndicator>N</ticketUpdateIndicator> </airlineData> <ancillaryData> <ticketNumber>12345678901234</ticketNumber> <passengerName>Jane Smith</passengerName> <connectedTicketNumber>98765432109876</connectedTicketNumber> <creditReasonIndicator>A</creditReasonIndicator> <feeDescription>BagAndSeatFee</feeDescription> <service id="0"> <categoryCode>BG</categoryCode> <subcategoryCode>0AA</subcategoryCode> <feeAmount>2.00</feeAmount> <feeCode>BG</feeCode> </service> <service id="1"> <categoryCode>SA</categoryCode> <subcategoryCode>0B5</subcategoryCode> <feeAmount>1.00</feeAmount> <feeCode>SA</feeCode> </service> </ancillaryData> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantReferenceCode>Postman-1701820687</merchantReferenceCode> <requestID>0305782650000167905080</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj/7wSTfHUvjqCkViFEABEg2asWjlgzb0qE+c4YxmKeQXe+aFgKeQXe+bn6QHymhcMmkmXoxZaH/wJyb46l4wXgbv0b4AAAAxnW</requestToken> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-12-05T23:58:07Z</requestDateTime> <amount>204.78</amount> <reconciliationID>65149037RPON81F1</reconciliationID> <authorizationCode>888888</authorizationCode> <processorResponse>100</processorResponse> </ccCreditReply> </replyMessage>

FDC Nashville Global
Airline Transactions

This section describes the airline payment services you can use when processing with
FDC Nashville Global
.

Supported Card Types

This table lists the card types
FDC Nashville Global
supports and their values. When including the
card_cardType
field, set the field to a value listed in the card type value column.
FDC Nashville Global
Supported Card Types
Supported Card Type
Card Type Value
American Express
003
Discover
004
Mastercard
002
Visa
001

Authorize an Airline Payment

This section describes how to process an airline authorization.

Authorization Restrictions

Ticket purchases that include multiple passengers may be included in a single authorization request, however,
Cybersource
recommends sending a separate capture request for each passenger.
If any ancillary purchases are made at the same time as the ticket purchase, you may include all the items in a single authorization request, however,
Cybersource
recommends separating the ancillary and ticket purchases into individual capture requests.
If any ancillary purchases are not made at the same time as the ticket purchase,
Cybersource
recommends separating the authorization and capture requests for the ancillary and ticket purchases.

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Card-Specific Fields for an Airline Authorization

This section includes card-specific information required for an airline authorization.

American Express

Include these fields in addition to the required fields when using an American Express card. American Express requires leg fields in the authorization request. For more information about leg fields, see Airline Travel Legs.
Replace the
#
character with the number
0
, and consecutive numbers for every additional leg.
Replace the
#
character with the number
0
, and consecutive numbers for every additional leg.
Replace the
#
character with the number
0
, and consecutive numbers for every additional leg.
Replace the
#
character with the number
0
, and consecutive numbers for every additional leg.
Replace the
#
character with the number
0
, and consecutive numbers for every additional leg.

Simple Order Example: Airline Authorization

Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <billTo> <firstName>John</firstName> <lastName>Smith</lastName> <street1>201 S. Division St.</street1> <city>Ann Arbor</city> <state>MI</state> <postalCode>48104-2201</postalCode> <country>US</country> <email>[email protected]</email> </billTo> <shipTo> <firstName>CPS</firstName> </shipTo> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <card> <accountNumber>3739531923510-04</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2025</expirationYear> <cardType>003</cardType> </card> <ccAuthService run="true"> <industryDatatype>airline</industryDatatype> </ccAuthService> <airlineData> <passengerName>John</passengerName> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> </leg> </airlineData>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859960691616692203007</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccAuthReply> <reasonCode>100</reasonCode> <amount>50.00</amount> <authorizationCode>888888</authorizationCode> <avsCode>X</avsCode> <avsCodeRaw>I1</avsCodeRaw> <authorizedDateTime>2026-06-05T20:14:29Z</authorizedDateTime> <processorResponse>100</processorResponse> <reconciliationID>702412146IIXPP78</reconciliationID> <accountBalance>70.00</accountBalance> </ccAuthReply> <card> <cardType>003</cardType> </card> <pos> <terminalID>111111</terminalID> </pos>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <billTo> <firstName>John</firstName> <lastName>Smith</lastName> <street1>201 S. Division St.</street1> <city>Ann Arbor</city> <state>MI</state> <postalCode>48104-2201</postalCode> <country>US</country> <email>[email protected]</email> </billTo> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <card> <accountNumber>40120000333300-26</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2025</expirationYear> <cardType>001</cardType> </card> <ccAuthService run="true"> <industryDatatype>airline</industryDatatype> </ccAuthService>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859958674966249203009</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccAuthReply> <reasonCode>100</reasonCode> <amount>50.00</amount> <authorizationCode>888888</authorizationCode> <avsCode>X</avsCode> <avsCodeRaw>I1</avsCodeRaw> <authorizedDateTime>2026-06-05T20:11:07Z</authorizedDateTime> <processorResponse>100</processorResponse> <reconciliationID>70240697CIIXNKX4</reconciliationID> <paymentNetworkTransactionID>123456789619999</paymentNetworkTransactionID> </ccAuthReply> <card> <cardType>001</cardType> </card> <pos> <terminalID>111111</terminalID> </pos>

Capture an Airline Ticket Payment

This section describes how to capture an airline ticket payment, such as when a person is purchasing a ticket on your e-commerce store.

Capture Restrictions

For a ticket purchase with multiple passengers,
Cybersource
recommends sending separate capture requests for each passenger. The original authorization may be a single request.
When ancillary purchases are made at the same time as the ticket purchase,
Cybersource
recommends sending separate capture requests for the ticket and ancillary purchases.

Airline Travel Legs

FDC Nashville Global
requires you to include travel leg fields in your requests, even for direct flights. For more information about how to format travel leg fields, see Airline Travel Legs.

Leg Limitations

FDC Nashville Global
limits the maximum number of legs for each trip based on card type. This table describes the maximum number of legs for each trip based on processor and card type.
FDC Nashville Global
Leg Limitations
Supported Card Types
Maximum Number of Travel Legs
American Express
4
Discover
4
Mastercard
99
Visa
4

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Ticket Capture

Include these required fields to capture an airline payment for tickets.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set the value to
true
.
Set the value to
airline
.
Set the value to the
merchant_ref_number
field value used in the corresponding authorization request.

Card-Specific Fields for an Airline Ticket Capture

This section includes card-specific information required to capture a payment for tickets.

Discover

Include these fields in addition to the required fields when using a Discover card.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set the value to
A
or
P
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set the value to
A
or
P
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Mastercard

Include these fields in addition to the required fields when using a Mastercard card.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Visa

Include this field in addition to the required fields when using a Visa card.
Set the value to
0
for refundable.
Set the value to
1
for nonrefundable.

Optional Fields for an Airline Ticket Capture

Choose from these optional fields to include additional information when capturing an airline payment for direct flight tickets.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set the value to
O
(capital letter "O") to indicate the leg of a trip is allowed to stopover. Default value.
Set the value to
X
to indicate the leg of a trip is not allowed to stopover.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Ticket Capture

Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6841863354646003603681</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentName>Thomascook</agentName> <ticketNumber>asd23</ticketNumber> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <planNumber>2B</planNumber> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859997862716741203010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-06-05T21:16:26Z</requestDateTime> <amount>50.00</amount> <reconciliationID>702280482IIXTJ8K</reconciliationID> </ccCaptureReply>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6917686812546643503007</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentCode>AGC12345</agentCode> <agentName>Thomascook</agentName> <ticketIssuerAddress>123 Happy St</ticketIssuerAddress> <ticketNumber>asd23</ticketNumber> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>123456789</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <flightNumber>456789123</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <flightNumber>987654321</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <ticketIssueDate>20261010</ticketIssueDate> <planNumber>2B</planNumber> <arrivalDate>20260917</arrivalDate> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>Postman-1691769389</merchantReferenceCode> <requestID>6917693897226880503009</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-08-11T15:56:29Z</requestDateTime> <amount>50.00</amount> <reconciliationID>79955177DL62B711</reconciliationID> </ccCaptureReply>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6917735883576902203011</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentName>Thomascook</agentName> <ticketNumber>asd23</ticketNumber> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>123456789</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1235</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <flightNumber>987654321</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1640</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <flightNumber>78945612</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>2245</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>2345</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <planNumber>2B</planNumber> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>Postman-1691773605</merchantReferenceCode> <requestID>6917736057356909103011</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-08-11T17:06:45Z</requestDateTime> <amount>50.00</amount> <reconciliationID>79959505DL62B7XL</reconciliationID> </ccCaptureReply>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6841863354646003603681</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentName>Thomascook</agentName> <ticketNumber>asd23</ticketNumber> <restrictedTicketIndicator>1</restrictedTicketIndicator> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <planNumber>2B</planNumber> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859975187656465603010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-06-05T20:38:39Z</requestDateTime> <amount>50.00</amount> <reconciliationID>702412146IIXPP78</reconciliationID> </ccCaptureReply>

Capture an Ancillary Purchase

Ancillary purchases are any additional services, such as baggage, meals, and paid seats, your customers can purchase. Captures for ancillary purchases must be separate for captures for ticket purchases.
FDC Nashville Global
supports up to four ancillary purchases for each capture.

Capture Restrictions

When ancillary purchases are made at the same time as the ticket purchase,
Cybersource
recommends that you send separate capture requests for the ticket and ancillary purchases.
When ancillary purchases are not made at the same time as the ticket purchase,
Cybersource
recommends that you send separate authorization and capture requests for the ancillary and ticket purchases.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Ancillary Capture

Set the value to
true
.
Set the value to the
merchant_ref_number
field value used in the corresponding authorization request.

Ancillary Airline Fields

Choose from these optional ancillary airline fields to include in your capture request in addition to the required fields listed above.
FDC Nashville Global
supports up to four ancillary purchases for each capture.
Set the value to
C
for changing an existing ticket.
Set the value to
N
for a new ticket.
Replace the
#
character with a sequential number from
0
to
3
.
For a list of possible values, see Ancillary Service Category Codes.
Replace the
#
character with a sequential number from
0
to
3
.
For a list of possible values, see Ancillary Service Category Codes.

Simple Order Example: Ancillary Capture

Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6841863354646003603681</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <ancillaryData> <ticketNumber>Ticket15CharMax</ticketNumber> <passengerName>AncillaryNameMax20ch</passengerName> <connectedTicketNumber>CONNTICKET12345</connectedTicketNumber> <service id="0"> <categoryCode>S1</categoryCode> <subcategoryCode>SSC1</subcategoryCode> </service> <service id="1"> <categoryCode>S2</categoryCode> <subcategoryCode>SSC2</subcategoryCode> </service> <service id="2"> <categoryCode>S3</categoryCode> <subcategoryCode>SSC3</subcategoryCode> </service> </ancillaryData>
Response to a Successful Request
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.142"> <merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6860000963746172003008</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-06-05T21:21:36Z</requestDateTime> <amount>50.00</amount> <reconciliationID>702280502IIXTJA7</reconciliationID> </ccCaptureReply> </replyMessage>

Refund an Airline Payment

This section describes how to process a refund, also known as a follow-on credit. It requires you to have the transaction ID from the original airline payment.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Refund

Set the value to
true
.
Set the value to the
merchant_ref_number
field value used in the corresponding capture request.

Optional Fields for an Airline Refund

Choose from these optional fields to include additional information when processing an airline
follow-on credit
.
Set the value to one of these possible values:
  • A
    : Passenger transport ancillary fee cancellation
  • B
    : Airline ticket and passenger transport ancillary fee cancellation
  • C
    : Airline ticket cancellation
  • O
    : Other
  • P
    : Partial refund of airline ticket
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Refund

Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCreditService run="true"> <captureRequestID>6897061702136732503007</captureRequestID> <industryDatatype>airline</industryDatatype> </ccCreditService> <airlineData> <agentName>Thomascook</agentName> <ticketNumber>asd23</ticketNumber> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>100</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>20.00</fee> <tax>5.00</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>20.00</fee> <tax>5.00</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>20.00</fee> <tax>5.00</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>20.00</fee> <tax>5.00</tax> </leg> <planNumber>2B</planNumber> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>Postman-1689706432</merchantReferenceCode> <requestID>6897064319436878203011</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-07-18T18:53:52Z</requestDateTime> <amount>50.00</amount> <reconciliationID>75566045FK6J767C</reconciliationID> </ccCreditReply>

Getnet
Airline Transactions

This section describes the airline payment service you can use when processing with
Getnet
.

Supported Card Types

This table lists the card types that
Getnet
supports.
Getnet
Supported Card Types
Supported Card Types
American Express
Mastercard
Visa

Authorize an Airline Payment

This section describes how to process an airline authorization.

Supported Card Types

This table lists the card types that supported by
Getnet
.
Getnet
Supported Card Types
Supported Card Types
American Express
Mastercard
Visa

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Optional Fields for an Airline Authorization

Choose from these optional fields to include additional information when authorizing a payment.
airlineData_boardingFee
For ancillary fields, see Airline Ancillary Fields.

Lloyds-OmniPay
Airline Transactions

This section describes the airline payment services you can use when processing with
Lloyds-OmniPay
.

Supported Card Types

This table lists the card types that
Lloyds-OmniPay
supports.
Lloyds-OmniPay
Supported Card Types
Supported Card Types
Mastercard
Visa

Capture an Airline Payment

This section describes how to capture an airline payment.
Before you can capture payment, you must authorize the funds by sending an authorization request. The authorization response includes a request ID in the
requestID
field. The request ID is required in the capture request. For more information about how to send an authorization request, see the Standard Payment Processing section in the
Payments Developer Guide
.

Leg Limitations

Lloyds-OmniPay
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on card type.
Lloyds-OmniPay
Leg Limitations
Supported Card Types
Maxiumum Number of Travel Legs
Mastercard
999
Visa
4

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Capture

Include these required fields to capture an airline payment.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Vero
supports Brazilian real (BRL) currency only.
Set the value to
airline
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Optional Fields for an Airline Capture

Choose from these optional fields to include additional information when capturing an airline payment.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Ticket Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.23">    <merchantID>okgo</merchantID>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <ccCaptureService run="true">       <industryDatatype>airline</industryDatatype>       <authRequestID>0839543530000172034078</authRequestID>    </ccCaptureService>    <purchaseTotals>       <currency>USD</currency>       <grandTotalAmount>204.78</grandTotalAmount>    </purchaseTotals>    <airlineData>       <agentCode>98222147</agentCode>       <agentName>Cyber Vacations</agentName>       <passengerName>Johnny Smith</passengerName>       <ticketNumber>02721187251</ticketNumber>       <leg id="0">          <departureDate>20061215</departureDate>
         <originatingAirportCode>SJC</originatingAirportCode>
         <carrierCode>AA</carrierCode>
         <destination>SEA</destination>
         <fareBasis>HL7WNR</fareBasis>
         <class>H</class>
         <stopoverCode>O</stopoverCode>
      </leg>       <leg id="1">          <departureDate>20061220</departureDate>
         <originatingAirportCode>SEA</originatingAirportCode>
         <carrierCode>AA</carrierCode>
         <destination>SJC</destination>
         <fareBasis>HL7WNR</fareBasis>
         <class>H</class>
         <stopoverCode>O</stopoverCode>
      </leg>    </airlineData> </requestMessage>
Response
<c:replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.23">    <c:requestID>0305782650000167905080</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>

Issue a Stand-Alone Credit

This topic describes how to process an airline stand-alone credit.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Stand-Alone Credit

Include these required fields to request an airline
stand-alone credit
.
Set the value to
true
. For example
ccCreditService run="true"
.
Set the value to the
merchant_ref_number
value used in corresponding capture request.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Optional Fields for an Airline Stand-Alone Credit

Choose from these optional fields to include additional information when processing an airline
stand-alone credit
.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Stand-Alone Credit

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantID>test-merchant</merchantID> <merchantReferenceCode>refnum-1234</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>0305782650000167905080</captureRequestID> </ccCreditService> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantReferenceCode>Postman-1701820687</merchantReferenceCode> <requestID>0305782650000167905080</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj/7wSTfHUvjqCkViFEABEg2asWjlgzb0qE+c4YxmKeQXe+aFgKeQXe+bn6QHymhcMmkmXoxZaH/wJyb46l4wXgbv0b4AAAAxnW</requestToken> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-12-05T23:58:07Z</requestDateTime> <amount>204.78</amount> <reconciliationID>65149037RPON81F1</reconciliationID> <authorizationCode>888888</authorizationCode> <processorResponse>100</processorResponse> </ccCreditReply> </replyMessage>

OmniPay Direct
Airline Transactions

This section describes the airline payment services you can use when processing with
OmniPay Direct
.

Supported Acquirers and Card Types

This table describes the acquirers supported by
OmniPay Direct
and the card types supported by each acquirer.
Supported Acquirers and Card Types
Supported Acquirers
Supported Card Types
Bank of America
Mastercard
Visa
Cardnet International
Maestro (International)
Maestro (UK Domestic)
Mastercard
Visa
First Data Merchant Solutions (Europe)
Diners Club
Discover
Mastercard
Visa
Global Payments International Acquiring
Mastercard
Visa

Capture an Airline Payment

This section describes how to capture an airline payment for ticket purchases.
Before you can capture payment, you must authorize the funds by sending an authorization request. The authorization response includes a request ID in the
requestID
field. The request ID is required in the capture request. For more information about how to send an authorization request, see the Standard Payment Processing section in the
Payments Developer Guide
.
Capture requests for ticket purchases must be separate from ancillary purchases. When you include ancillary data in a request with airline data,
OmniPay Direct
ignores the ancillary data. For more information about captures for ancillary purchases, see Capture an Ancillary Purchase.

Leg Limitations

OmniPay Direct
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on card type.
OmniPay Direct
Leg Limitations
Supported Card Types
Maxiumum Number of Travel Legs
Diners Club
999
Discover
999
Maestro (International)
999
Maestro (UK Domestic)
999
Mastercard
999
Visa
4

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Ticket Capture

Include these required fields to capture an airline payment.
Set the value to
airline
.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Vero
supports Brazilian real (BRL) currency only.

Card-Specific Fields for an Airline Ticket Capture

Use this information to find additional information a card type requires.

Visa

Use this field in addition to the required fields when capturing an authorization with a Visa card.

Reduced Interchange Fields for an Airline Ticket Capture

This section includes card-specific fields for reduced interchange.

Maestro (International)

For reduced interchange, use these fields when capturing an airline payment with a Maestro (International) card.

Maestro (UK Domestic)

For reduced interchange, use these fields when capturing an airline payment with a Maestro (UK Domestic) card.

Visa

For reduced interchange, use these fields when capturing an airline payment with a Visa card.

Optional Fields for an Airline Ticket Capture

This topic includes both general optional fields and card-specific optional fields.

Diners Club

Choose from these optional fields to add additional information when using a Diners Club card.

Discover

Choose from these optional fields to add additional information when using a Discover card.

Maestro (International)

Choose from these optional fields to add additional information when using a Maestro (International) card.
Optional only for US domestic airline transactions.

Maestro (UK Domestic)

Choose from these optional fields to add additional information when using a Maestro (UK Domestic) card.
Optional only for US domestic airline transactions.

Mastercard

Choose from these optional fields to add additional information when using a Mastercard card.
Optional only for US domestic airline transactions.

Visa

Choose from these optional fields to add additional information when using a Visa card.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Ticket Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.124">    <merchantID>World Wide Travel</merchantID>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <ccCaptureService run="true">       <industryDatatype>airline</industryDatatype>       <authRequestID>0839543530000172034078</authRequestID>    </ccCaptureService>    <purchaseTotals>       <currency>EUR</currency>       <grandTotalAmount>204.78</grandTotalAmount>    </purchaseTotals>    <airlineData>       <agentCode>98222147</agentCode>       <agentName>Cyber Vacations</agentName>       <passengerName>Jane Smith</passengerName>       <restrictedTicketIndicator>0</restrictedTicketIndicator>       <ticketNumber>02721187251</ticketNumber>       <leg id="0">          <class>H</class>
         <departureDate>121516</departureDate>
         <departureTime>0931</departureTime>
         <departureTimeSegment>A</departureTimeSegment>
         <carrierCode>AA</carrierCode>
         <destination>CDG</destination>
         <fareBasis>HL7WNR</fareBasis>
      </leg>       <leg id="1">          <class>H</class>
         <departureDate>122016</departureDate>
         <departureTime>1625</departureTime>
         <departureTimeSegment>P</departureTimeSegment>
         <carrierCode>AA</carrierCode>
         <destination>LHR</destination>
         <fareBasis>HL7WNR</fareBasis>
      </leg>    </airlineData> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.124">    <requestID>0305782650000167905080</requestID>    <decision>ACCEPT</decision>    <reasonCode>100</reasonCode>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <purchaseTotals><currency>EUR</currency></purchaseTotals>    <ccCaptureReply>       <reasonCode>100</reasonCode>       <amount>204.78</amount>       <reconciliationID>1094820975023470</reconciliationID>       <enhancedDataEnabled>y</enhancedDataEnabled>    </ccCaptureReply> </replyMessage>

Capture an Ancillary Purchase

This section describes how to capture an airline payment for ancillary purchases.
Capture requests for ancillary purchases must be separate from captures for ticket purchases. When you include ancillary data in a request with airline data,
OmniPay Direct
ignores the ancillary data. For more information on captures for ticket purchases, see Capture an Airline Payment.

Ancillary Service Category Codes

When making an ancillary purchase, you must use the
ancillaryData_service_#_categoryCode
field to indicate the service provided. For all possible field values, see Ancillary Service Category Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Ancillary Capture

Include these required fields to capture an airline payment for ancillary purchases.
Set the value to
airline
.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Vero
supports Brazilian real (BRL) currency only.

Card-Specific Fields for an Ancillary Capture

For reduced interchange, use these fields when capturing an airline payment.

Visa

Required only when the purpose of the ancillary transaction is to obtain airline rates.

Reduced Interchange Fields for an Ancillary Capture

This section includes card-specific fields for reduced interchange.

Maestro (International)

For reduced interchange, use these fields when capturing an airline payment with a Maestro (International) card.

Maestro (UK Domestic)

For reduced interchange, use these fields when capturing an airline payment with a Maestro (UK Domestic) card.

Mastercard

For reduced interchange, use these fields when capturing an airline payment with a Mastercard card.

Visa

For reduced interchange, use these fields when capturing an airline payment with a Visa card.

Optional Fields for an Ancillary Capture

This topic includes both general optional fields and card-specific optional fields.

General Optional Fields for Capturing an Airline Payment

Choose from these optional fields to include additional information when capturing an airline payment for any card type.

Diners Club

Choose from these optional fields to add additional information when using a Diners Club card.
airlineData_checkDigit

Discover

Choose from these optional fields to add additional information when using a Discover card.
airlineData_checkDigit

Maestro (International)

Choose from these optional fields to add additional information when using a Maestro (International) card.
Optional only for US domestic airline transactions.

Maestro (UK Domestic)

Choose from these optional fields to add additional information when using a Maestro (UK Domestic) card.
Set the value to two letter IATA airline code.
Optional only for US domestic airline transactions.

Mastercard

Choose from these optional fields to add additional information when using a Mastercard.
Optional only for US domestic airline transactions.

Simple Order Example: Ancillary Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.124">    <merchantID>World Wide Travel</merchantID>    <merchantReferenceCode>ABCDEFG0123456</merchantReferenceCode>    <ccCaptureService run="true">       <industryDatatype>airline</industryDatatype>       <authRequestID>4685801292856003701540</authRequestID>    </ccCaptureService>    <purchaseTotals>       <currency>GBP</currency>       <grandTotalAmount>234.00</grandTotalAmount>    </purchaseTotals>    <ancillaryData>       <ticketNumber>BA123456</ticketNumber>       <service id="0">          <categoryCode>BF</categoryCode>       </service>       <passengerName>Jane Smith</passengerName>       <creditReasonIndicator>A</creditReasonIndicator>       <connectedTicketNumber>BA1234567</connectedTicketNumber>    </ancillaryData> </requestMessage>
Response
<c:replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.124">    <c:requestID>4685801292856003701540</c:requestID>    <c:decision>ACCEPT</c:decision>    <c:reasonCode>100</c:reasonCode>    <c:merchantReferenceCode>ABCDEFG0123456</c:merchantReferenceCode>    <c:purchaseTotals><c:currency>GBP</c:currency></c:purchaseTotals>    <c:ccCaptureReply>       <c:reasonCode>100</c:reasonCode>       <c:amount>234.00</c:amount>       <c:reconciliationID>5406772989</c:reconciliationID>       <c:enhancedDataEnabled>y</c:enhancedDataEnabled>    </c:ccCaptureReply> </c:replyMessage>

Issue a Stand-Alone Credit

This topic describes how to process an airline
stand-alone credit
.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Stand Alone Credit

Include these required fields to request an airline stand-alone credit.

Simple Order Example: Airline Stand-Alone Credit

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantID>test-merchant</merchantID> <merchantReferenceCode>refnum-1234</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>0305782650000167905080</captureRequestID> </ccCreditService> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantReferenceCode>Postman-1701820687</merchantReferenceCode> <requestID>0305782650000167905080</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj/7wSTfHUvjqCkViFEABEg2asWjlgzb0qE+c4YxmKeQXe+aFgKeQXe+bn6QHymhcMmkmXoxZaH/wJyb46l4wXgbv0b4AAAAxnW</requestToken> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-12-05T23:58:07Z</requestDateTime> <amount>204.78</amount> <reconciliationID>65149037RPON81F1</reconciliationID> <authorizationCode>888888</authorizationCode> <processorResponse>100</processorResponse> </ccCreditReply> </replyMessage>

Streamline
Airline Transactions

This section describes the airline payment services you can use when processing with
Streamline
.

Supported Card Types

This table lists the card types that
Streamline
supports.
Streamline
Supported Card Types
Supported Card Types
Cartes Bancaires
Dankort
Maestro (International)
Maestro (UK Domestic)
Mastercard
Visa

Capture an Airline Ticket Payment

This section describes how to capture an airline payment.
Before you can capture payment, you must authorize the funds by sending an authorization request. The authorization response includes a request ID in the
requestID
field. The request ID is required in the capture request. For more information about how to send an authorization request, see the Standard Payment Processing section in the
Payments Developer Guide
.

Leg Limitations

Streamline
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on card type.
Streamline
Leg Limitations
Supported Card Types
Maxiumum Number of Travel Legs
Cartes Bancaires
4
Dankort
4
Maestro (International)
4
Maestro (UK Domestic)
4
Mastercard
4
Visa
4

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Capture

Include these required fields to capture an airline payment.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Vero
supports Brazilian real (BRL) currency only.
Set the value to
airline
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Optional Fields for an Airline Capture

Choose from these optional fields to include additional information when capturing an airline payment.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Ticket Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.11">    <merchantID>regenttravel</merchantID>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <purchaseTotals>       <currency>GBP</currency>       <grandTotalAmount>204.78</grandTotalAmount>    </purchaseTotals>    <ccCaptureService run="true">       <authRequestID>0839543530000172034078</authRequestID>       <industryDatatype>airline</industryDatatype>    </ccCaptureService>    <airlineData>       <agentCode>98222147<agentCode>       <agentName>Regent Travel</agentName>       <ticketNumber>1234567890123450</ticketNumber>       <passengerName>John Smith</passengerName>       <leg id="0">          <carrierCode>VS</carrierCode>          <originatingAirportCode>GLA</originatingAirportCode>          <class>C</class>          <departureDate>080812</departureDate>          <destination>LGW</destination>       </leg>    </airlineData> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.124">    <requestID>0305782650000167905080</requestID>    <decision>ACCEPT</decision>    <reasonCode>100</reasonCode>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <purchaseTotals><currency>EUR</currency></purchaseTotals>    <ccCaptureReply>       <reasonCode>100</reasonCode>       <amount>204.78</amount>       <reconciliationID>1094820975023470</reconciliationID>       <enhancedDataEnabled>y</enhancedDataEnabled>    </ccCaptureReply> </replyMessage>

Capture a Miscellaneous Charge Order

This section describes how to capture a Miscellaneous Charge Order (MCO) airline authorization.
An MCO is an airline transaction for a non-ticket purchase, such as an insurance payment or an extra baggage fee. An MCO must be its own airline transaction, separate from a capture for a ticket purchase.

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Capture

Include these required fields to capture an airline MCO authorization.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Vero
supports Brazilian real (BRL) currency only.
Set the value to
airline
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set field value to
XAO
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Set field value to
XAA
.

Issue a Stand-Alone Credit

This topic describes how to process an airline stand-alone credit.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Optional Fields for an Airline Stand-Alone Credit

Choose from these optional fields to include additional information when processing an airline stand-alone credit.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Stand-Alone Credit

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantID>test-merchant</merchantID> <merchantReferenceCode>refnum-1234</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>0305782650000167905080</captureRequestID> </ccCreditService> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantReferenceCode>Postman-1701820687</merchantReferenceCode> <requestID>0305782650000167905080</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj/7wSTfHUvjqCkViFEABEg2asWjlgzb0qE+c4YxmKeQXe+aFgKeQXe+bn6QHymhcMmkmXoxZaH/wJyb46l4wXgbv0b4AAAAxnW</requestToken> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-12-05T23:58:07Z</requestDateTime> <amount>204.78</amount> <reconciliationID>65149037RPON81F1</reconciliationID> <authorizationCode>888888</authorizationCode> <processorResponse>100</processorResponse> </ccCreditReply> </replyMessage>

TSYS Acquiring Solutions
Airline Transactions

This section describes the airline payment services you can use when processing with
TSYS Acquiring Solutions
.
Cybersource
sends airline data for Mastercard and Discover to
TSYS Acquiring Solutions
, but
TSYS Acquiring Solutions
removes the airline data for these card types when sending the settlement information. Only American Express and Visa transactions qualify for the airline interchange rate.

Supported Card Types

This table lists the card types that
TSYS Acquiring Solutions
supports.
TSYS Acquiring Solutions
Supported Card Types
Supported Card Types
American Express
Visa

Authorize an Airline Ticket Payment

This sections describes how to process a successful
TSYS Acquiring Solutions
authorization.

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Capture an Airline Payment

This section describes how to capture an airline payment.

Leg Limitations

TSYS Acquiring Solutions
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on card type.
TSYS Acquiring Solutions
Leg Limitations
Supported Card Types
Maxiumum Number of Travel Legs
American Express
9
Visa
4

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Multiple Captures

TSYS Acquiring Solutions
allows you to request multiple partial captures for one authorization when using the Visa card type. You must ensure that the total amount for all captures does not exceed the authorized amount. For a list of the fields required for multiple captures, see Multiple Capture Fields for an Airline Payment.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Capture

Include these required fields to capture an airline payment.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Vero
supports Brazilian real (BRL) currency only.
Set the value to
airline
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Multiple Capture Fields for an Airline Payment

Include these fields in addition to the required fields when you are requesting multiple partial captures for a single airline payment.

Optional Fields for an Airline Capture

Simple Order Example: Airline Ticket Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.11">    <merchantID>test-merchant</merchantID>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <purchaseTotals>       <currency>USD</currency>       <grandTotalAmount>204.78</grandTotalAmount>    </purchaseTotals>    <ccCaptureService run="true">       <authRequestID>0839543530000172034078</authRequestID>       <industryDatatype>airline</industryDatatype>    </ccCaptureService>    <airlineData>       <agentCode>98222147<agentCode>       <agentName>Regent Travel</agentName>       <ticketNumber>1234567890123450</ticketNumber>       <passengerName>John Smith</passengerName>       <leg id="0">          <carrierCode>VS</carrierCode>          <originatingAirportCode>GLA</originatingAirportCode>          <class>C</class>          <departureDate>080812</departureDate>          <destination>LGW</destination>       </leg>    </airlineData> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.124">    <requestID>0305782650000167905080</requestID>    <decision>ACCEPT</decision>    <reasonCode>100</reasonCode>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <purchaseTotals><currency>USD</currency></purchaseTotals>    <ccCaptureReply>       <reasonCode>100</reasonCode>       <amount>204.78</amount>       <reconciliationID>1094820975023470</reconciliationID>       <enhancedDataEnabled>y</enhancedDataEnabled>    </ccCaptureReply> </replyMessage>

Issue a Stand-Alone Credit

This topic describes how to process an airline stand-alone credit.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Stand-Alone Credit

Set the value to
true
. For example
ccCreditService run="true"
.
Set the value to the
merchant_ref_number
value used in corresponding capture request.
Set the value to
airline
.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.
Replace the
#
character with the number
0
for the first leg and consecutive numbers for any additional legs.

Simple Order Example: Airline Stand-Alone Credit

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantID>test-merchant</merchantID> <merchantReferenceCode>refnum-1234</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>204.78</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>0305782650000167905080</captureRequestID> </ccCreditService> </requestMessage>
Response
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.213"> <merchantReferenceCode>Postman-1701820687</merchantReferenceCode> <requestID>0305782650000167905080</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <requestToken>Axj/7wSTfHUvjqCkViFEABEg2asWjlgzb0qE+c4YxmKeQXe+aFgKeQXe+bn6QHymhcMmkmXoxZaH/wJyb46l4wXgbv0b4AAAAxnW</requestToken> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2026-12-05T23:58:07Z</requestDateTime> <amount>204.78</amount> <reconciliationID>65149037RPON81F1</reconciliationID> <authorizationCode>888888</authorizationCode> <processorResponse>100</processorResponse> </ccCreditReply> </replyMessage>

UATP
Airline Transactions

This section describes the airline payment services you can use when processing with
UATP
.

Supported Card Type

This table describes the card type that
UATP
supports.
UATP
Supported Card Type
Supported Card Type
UATP

Capture an Airline Payment

This topic describes how to capture an airline payment.
Before you can capture payment, you must authorize the funds by sending an authorization request. The authorization response includes a request ID in the
requestID
field. The request ID is required in the capture request. For more information about how to send an authorization request, see the Standard Payment Processing section in the
Payments Developer Guide
.

Leg Limitations

UATP
limits the maximum number of legs for each trip based on card type.
You must include information for the first leg of the trip (leg 0), and you must use consecutive numbers for any additional legs. To do so, replace the
#
character in the field name with a sequential number starting with
0
. For example, for a trip with two legs, set the
airlineData_leg_#
field as
airlineData_leg_0
and
airlineData_leg_1
, for the first and second legs, respectively. If you skip a number,
Cybersource
ignores the legs that follow the skipped number.
This table describes the maximum number of legs for each trip based on card type.
UATP
Leg Limitations
Supported Card Types
Maxiumum Number of Travel Legs
UATP
4

Document Type

When capturing an airline payment, you must use the
airlineData_documentType
field to specify the purpose of the transaction. For all possible values, see Airline Document Type Codes.

Invoice Date

Cybersource
creates an invoice number (INVN) for
UATP
transactions.
You can set the invoice date by inputting it in the value of the optional
airlineData_invoiceDate
field. If you do not use the invoice date field in your request,
Cybersource
uses the date the batch file was generated.
This table describes the different values of the fourteen-digit invoice number.
Invoice Number
Three characters
Two characters
Three characters
Four characters
Two characters
Airline code
Year
Example: 06 for 2006
Day
Example: 000 for January 1
Acquirer: the left-most Four digits of the card number
Spaces

Ticket Document Number

You must include a valid ticket document number in one of these fields:
  • airlineData_ticketNumber
    : Set the value to the ticket number, which can be up to 12 digits.
    Cybersource
    will append this value with your 3-digit IATA merchant code to send a 15-digit ticket document number to
    UATP
    .
  • ccCaptureService_reconciliationID
    : Set this value to your 3-digit IATA merchant code followed by the ticket number, which can be up to 12 digits, for a total of 15 digits.
If you include both fields in the request, and you use the reconciliation ID for your own reconciliation rather than the ticket document number, you must set the value for the
airlineData_ticketNumber
as described above and ensure that the first three digits of the reconciliation ID do not include your IATA code.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Capture

See the service description for the value and usage requirements.
See the service description for the value and usage requirements.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.

Optional Fields for an Airline Capture

Simple Order Example: Airline Ticket Capture

Request
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.23">    <merchantID>okgo</merchantID>    <merchantReferenceCode>R98TV09EN200W</merchantReferenceCode>    <ccCaptureService run="true">       <authRequestID>0839543530000172034078</authRequestID>       <reconciliationID>98R33X7</reconciliationID>    </ccCaptureService>    <purchaseTotals>       <currency>USD</currency>       <grandTotalAmount>204.78</grandTotalAmount>    </purchaseTotals>    <airlineData>       <passengerName>Johnny Smith</passengerName>       <leg id="0">          <carrierCode>AA</carrierCode>          <departureDate>20061215</departureDate>          <originatingAirportCode>SJC</originatingAirportCode>          <destination>SEA</destination>       </leg>       <leg id="1">          <carrierCode>AA</carrierCode>          <destination>SJC</destination>       </leg>    </airlineData> </requestMessage>
Response
<c:replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.23">    <c:requestID>0305782650000167905080</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>

Refund an Airline Payment

This topic describes how to process a refund, also known as a follow-on credit. It is linked to a capture or sale. You must request a refund within 180 days of the original capture or sale.

Ticket Document Number

You must include a valid ticket document number in one of these fields:
  • airlineData_ticketNumber
    : Set the value to the ticket number, which can be up to 12 digits.
    Cybersource
    will append this value with your 3-digit IATA merchant code to send a 15-digit ticket document number to
    UATP
    .
  • ccCreditService_reconciliationID
    : Set this value to your 3-digit IATA merchant code followed by the ticket number, which can be up to 12 digits, for a total of 15 digits.
If you include both fields in the request, and you use the reconciliation ID for your own reconciliation rather than the ticket document number, you must set the value for the
airlineData_ticketNumber
as described above and ensure that the first three digits of the reconciliation ID do not include your IATA code.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Refund

See the service description for the value and usage requirements.
ccCreditService_reconciliationID
See the service description for the value and usage requirements.
Set the value to
true
.
Set the value
merchantReferenceCode
value used in the corresponding capture or sale request.

Simple Order Example: Airline Refund

Request
This example includes the
airlineData_ticketNumber
field.
<requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.86"> <merchantID>merchantID</merchantID> <merchantReferenceCode>merchantRefCode</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>149.00</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>captureRequestID</captureRequestID> </ccCreditService> <airlineData> <ticketNumber>987612345678</ticketNumber> <passengerName>John Doe</passengerName> </airlineData> </requestMessage>
Response to a Successful Request
<c:replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.86"> <c:merchantReferenceCode>Postman-1666641056</c:merchantReferenceCode> <c:requestID>6666410568976150003010</c:requestID> <c:decision>ACCEPT</c:decision> <c:reasonCode>100</c:reasonCode> <c:purchaseTotals> <c:currency>USD</c:currency> </c:purchaseTotals> <c:ccCreditReply> <c:reasonCode>100</c:reasonCode> <c:requestDateTime>2026-10-24T19:50:57Z</c:requestDateTime> <c:amount>149.00</c:amount> <c:reconciliationID>6691571329CM5P99</c:reconciliationID> <c:authorizationCode>831111</c:authorizationCode> <c:processorResponse>00</c:processorResponse> <c:paymentNetworkTransactionID>222222222222222</c:paymentNetwork> </c:ccCreditReply> </c:replyMessage>

Issue a Stand-Alone Credit

This topic describes how to process an airline stand-alone credit.
All fields used in the original transaction must be included in your request.

Ticket Document Number

You must include a valid ticket document number in one of these fields:
  • airlineData_ticketNumber
    : Set the value to the ticket number, which can be up to 12 digits.
    Cybersource
    will append this value with your 3-digit IATA merchant code to send a 15-digit ticket document number to
    UATP
    .
  • ccCreditService_reconciliationID
    : Set this value to your 3-digit IATA merchant code followed by the ticket number, which can be up to 12 digits, for a total of 15 digits.
If you include both fields in the request, and you use the reconciliation ID for your own reconciliation rather than the ticket document number, you must set the value for the
airlineData_ticketNumber
as described above and ensure that the first three digits of the reconciliation ID do not include your IATA code.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Stand-Alone Credit

Simple Order Example: Airline Stand-Alone Credit

Request
<requestMessage> <billTo> <firstName>John</firstName> <lastName>Doe</lastName> <street1>1295 Charleston Road</street1> <city>Mountain View</city> <state>CA</state> <postalCode>94043</postalCode> <country>US</country> <email></email> </billTo> <card> <accountNumber>CARD_NUMBER</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2026</expirationYear> </card> <merchantID>lrsebctest</merchantID> <merchantReferenceCode>Postman-1666381004</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>150.00</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <reconciliationID>987654321987</reconcilationID> </ccCreditService> <airlineData> <passengerName>John Doe</passengerName> </airlineData> </requestMessage>
Response
<c:replyMessge> <c:merchantReferenceCode>Postman-1666374834</c:merchantReferenceCode> <c:requestID>6663748348516429203007</c:requestID> <c:decision>ACCEPT</c:decision> <c:reasonCode>100</c:reasonCode> <c:purchaseTotals> <c:currency>USD</c:currency> </c:purchaseTotals> <c:ccAuthReply> <c:reasonCode>100</c:reasonCode> <c:amount>150.00</c:amount> <c:authorizationCode>888888</c:authorizationCode> <c:avsCode>X</c:avsCode> <c:avsCodeRaw>I1</c:avsCodeRaw> <c:authorizedDateTime>2026-10-21T17:53:54Z</c:authorizedDateTime> <c:processorResponse>100</c:processorResponse> <c:reconciliationID>66737280B9CGUCCP</c:reconciliationID> <c:paymentNetworkTransactionID>123456789619999</c:paymentNetworkTransactionID> </c:ccAuthReply> <c:card> <c:cardType>001</c:cardType> </c:card> </c:replyMessge>

Visa Platform Connect
Airline Transactions

This section describes how to process airline payments using
Visa Platform Connect
.

Requirement

When you are ready to go live with airline data processing, contact
Cybersource
Customer Support to have your account configured to process airline data. If your account is not enabled, and you try to send airline transactions, you will receive an error for invalid data.

Related Information

See Airline Data Reference Information for a list and description of the different document type and ancillary service category codes that are used when processing payments that include airline data.

Authorize an Airline Payment

This section describes how to process an airline authorization.

Authorization Restrictions

Ticket purchases that include multiple passengers may be included in a single authorization request, but you must make separate capture requests for every passenger.
If any ancillary purchases are made at the same time as the ticket purchase, you may include all items in a single authorization request, but you must separate the ancillary and ticket purchases into their own capture requests.
If any ancillary purchases are made not at the same time as the ticket purchase, you must send separate authorization and capture requests for the ancillary and ticket purchases.

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Simple Order Example: Airline Authorization

Request
<requestMessage> <merchantID>merchantID</merchantID> <merchantReferenceCode>TC42703-1</merchantReferenceCode> <billTo> <firstName>John</firstName> <lastName>Doe</lastName> <street1>1295 Charleston Road</street1> <city>Mountain View</city> <state>CA</state> <postalCode>94043</postalCode> <country>US</country> <email></email> </billTo> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>1.02</grandTotalAmount> </purchaseTotals> <card> <accountNumber>4111111111111111</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2026</expirationYear> <cardType>001</cardType> </card> <ccAuthService run="true"> <industryDatatype>airline</industryDatatype> </ccAuthService> <requestMessage>
Response to a Successful Request
<c:replyMessage> <c:merchantReferenceCode>TC42703-1</c:merchantReferenceCode> <c:requestID>6823465362086241603012</c:requestID> <c:decision>ACCEPT</c:decision> <c:reasonCode>100</c:reasonCode> <c:purchaseTotals> <c:currency>USD</c:currency> </c:purchaseTotals> <c:ccAuthReply> <c:reasonCode>100</c:reasonCode> <c:amount>1.02</c:amount> <c:authorizationCode>888888</c:authorizationCode> <c:avsCode>X</c:avsCode> <c:avsCodeRaw>I1</c:avsCodeRaw> <c:authorizedDateTime>2026-04-24T14:28:56Z</c:authorizedDateTime> <c:processorResponse>100</c:processorResponse> <c:reconciliationID>74375324VGM5S0S6</c:reconciliationID> <c:paymentNetworkTransactionID>123456789619999</c:paymentNetworkTransactionID> </c:ccAuthReply> <c:card> <c:cardType>001</c:cardType> </c:card> <c:pos> <c:terminalID>111111</c:terminalID> </c:pos> </c:replyMessage>

Capture an Airline Ticket Payment

This section describes how to capture an airline payment for ticket purchases.
Captures for ticket purchases must be made separately from captures for ancillary purchases. For more information about how to capture an ancillary purchase, see Capture an Ancillary Purchase.

Travel Legs

You can use travel leg fields for trips that have multiple legs. For more information on how to use travel leg fields, see Airline Travel Legs.

Leg Limitations

Visa Platform Connect
limits the maximum number of legs for each trip based on card type. This table describes the maximum number of legs for each trip based on card type.
Visa Platform Connect
Leg Limitations
Supported Card Types
Maximum Number of Travel Legs
American Express
4
Discover
4
Mastercard
4
Visa
4

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Ticket Capture

Set the value to the
merchant_ref_number
value used in corresponding authorization request.
Set the value to
airline
.

Card-Specific Field to Capture an Airline Payment

This section includes card-specific information.

Mastercard

Use this card-specific field in addition to the required fields when capturing an authorization with a Mastercard.

Optional Fields for an Airline Ticket Capture

You can use these optional fields to include additional information when capturing an airline payment.
For a list of possible values, see Airline Document Type Codes.
airlineData_ticketRestrictionText
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Ticket Capture

Request
<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> <airlineData> <agentCode>98222147</agentCode> <agentName>Cyber Vacations</agentName> <ticketNumber>02721187251</ticketNumber> <restrictedTicketIndicator>0</restrictedTicketIndicator> <passengerName>Johnny Smith</passengerName> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>SJC</originatingAirportCode> <departureDate>121511</departureDate> <destination>SEA</destination> <fareBasis>HL7WNR</fareBasis> <couponNumber>1</couponNumber> <departureTime>0931</departureTime> <departureTimeSegment>A</departureTimeSegment> <arrivalTime>1131</arrivalTime> <arrivalTimeSegment>A</arrivalTimeSegment> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <originatingAirportCode>SEA</originatingAirportCode> <departureDate>122011</departureDate> <destination>SJC</destination> <fareBasis>HL7WNR</fareBasis> <couponNumber>2</couponNumber> <departureTime>1625</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>1837</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> </leg> </airlineData> </requestMessage>
Response to a Successful Request
<c:replyMessage> <c:merchantReferenceCode>R98TV09EN200W</c:merchantReferenceCode> <c:requestID>0305782650000167905080</c:requestID> <c:decision>ACCEPT</c:decision> <c:reasonCode>100</c:reasonCode> <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> </replyMessage>

Capture an Ancillary Purchase

This section describes how to capture an airline payment for ancillary purchases.
Ancillary purchases are any additional services, such as baggage, meals, and paid seats, that your customers can purchase. Captures for ancillary purchases must be made separately from captures for ticket purchases.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Ancillary Capture

Include these required fields to capture an airline payment for ancillary purchases.
Set the value to
airline
.
Set the value to
true
.
Set the value to the
merchant_ref_number
value used in corresponding authorization request.

Simple Order Example: Ancillary Capture

Use this example as a reference for capturing an authorization for ancillary purchases.
Request
<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>
Response to a Successful Request
<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>

Refund an Airline Payment

This section describes how to process a refund, also known as a follow-on credit. This service returns funds from the initial capture and requires the original capture ID.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Optional Fields for an Airline Refund

This section includes these types of optional fields for an airline refund:

General Optional Fields

You can use these optional fields to include additional information in any airline purchase.

Ancillary Optional Fields

You can use these optional fields to include additional information when requesting an airline
stand-alone credit
for an ancillary purchase.

Simple Order Example: Airline Refund

Request
<requestMessage> <merchantID>merchantID</merchantID> <merchantReferenceCode>merchantRefCode</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>1.01</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>captureRequestID</captureRequestID> </ccCreditService> </requestMessage>
Response to a Successful Request
<replyMessage> <merchantReferenceCode>Postman-1666641056</merchantReferenceCode> <requestID>6666410568976150003010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2022-10-24T19:50:57Z</requestDateTime> <amount>1.01</amount> <reconciliationID>6691571329CM5P99</reconciliationID> </ccCreditReply> </replyMessage>

Issue a Stand-Alone Credit

This topic describes how to process a stand-alone credit for an airline payment. Stand-alone credits are not linked to the original payment. This service distributes funds without requiring a capture ID.
All fields used in the original transaction must be included in your request.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Stand-Alone Credit

Optional Fields for an Airline Stand-Alone Credit

This section includes these types of optional fields for an airline stand-alone credit:

General Optional Fields

You can use these optional fields to include additional information in any airline purchase.

Ancillary Optional Fields

You can use these optional fields to include additional information when requesting an airline
stand-alone credit
for an ancillary purchase.

Simple Order Example: Airline Stand-Alone Credit

Request
<billTo> <firstName>John</firstName> <lastName>Doe</lastName> <street1>1295 Charleston Road</street1> <city>Mountain View</city> <state>CA</state> <postalCode>94043</postalCode> <country>US</country> <email></email> </billTo> <card> <accountNumber>4111111111111111</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2026</expirationYear> </card> <merchantID>lrsebctest</merchantID> <merchantReferenceCode>Postman-1666381004</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>1.01</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>6663700818566565103010</captureRequestID> </ccCreditService>
Response to a Successful Request
<merchantReferenceCode>Postman-1666374834</merchantReferenceCode> <requestID>6663748348516429203007</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccAuthReply> <reasonCode>100</reasonCode> <amount>1.01</amount> <authorizationCode>888888</authorizationCode> <avsCode>X</avsCode><avsCodeRaw>I1</avsCodeRaw> <authorizedDateTime>2022-10-21T17:53:54Z</authorizedDateTime> <processorResponse>100</processorResponse> <reconciliationID>66737280B9CGUCCP</reconciliationID> <paymentNetworkTransactionID>123456789619999</paymentNetworkTransactionID> </ccAuthReply> <card> <cardType>001</cardType> </card> <pos> <terminalID>111111</terminalID> </pos>

Airline Data Reference Information

This section contains reference information that is useful when using Airline Data.

Airline Document Type Codes

To indicate the purpose of a purchase, set the
airlineData_documentType
field to a value listed in the Code column.
Airline Document Type Codes
Code
Description
01
Passenger ticket
02
Additional collection
03
Excess baggage
04
Miscellaneous charge order (MCO) or prepaid ticket authorization
05
Special service ticket
06
Supported refund
07
Unsupported refund
08
Lost ticket application
09
Tour order voucher
10
Ticket by mail
11
Undercharge adjustment
12
Group ticket
13
Exchange adjustment
14
SPD or air freight
15
In-flight adjustment
16
Agency passenger ticket
17
Agency tour order or voucher
18
Agency miscellaneous charge order (MCO)
19
Agency exchange order
20
Agency group ticket
21
Debit adjustment for duplicate refund or use
22
In-flight merchandise order
23
Catalogue merchandise order
24
In-flight phone charges
25
Frequent flyer fee or purchase
26
Kennel charge
27
Animal transportation charge
28
Firearms case
29
Upgrade charge
30
Credit for unused transportation
31
Credit for class of service adjustment
32
Credit for denied boarding
33
Credit for miscellaneous refund
34
Credit for lost ticket refund
35
Credit for exchange refund
36
Credit for overcharge adjustment
37
Credit for multiple Unused tickets
38
Exchange order
39
Self-service ticket
41
In-flight duty-free purchase
42
Senior citizen discount booklets
43
Club membership fee
44
Coupon book
45
In-flight charges
46
Tour deposit
47
Frequent flyer overnight delivery charge
48
Frequent flyer fulfillment
49
Small package delivery
50
Vendor sale
51
Miscellaneous taxes or fees
52
Travel agency fee
60
Vendor refund or credit
64
Duty free sale
65
Preferred seat upgrade
66
Cabin upgrade
67
Lounge or club access or day pass
68
Agent assisted reservation or ticketing fee
69
Ticket change or cancel fee
70
Trip insurance
71
Unaccompanied minor
72
Standby fee
73
Curbside baggage
74
In-flight medical equipment
75
Ticket or pass print fee
76
Checked sporting or special equipment
77
Dry ice fee
78
Mail or postage fee
79
Club membership fee or temporary trial
80
Frequent flyer activation or reinstatement
81
Gift certificate
82
Onboard or in-flight prepaid voucher
83
Optional services fee
84
Advance purchase for excess baggage
85
Advance purchase for preferred seat upgrade
86
Advance purchase for cabin upgrade
87
Advance purchase for optional services
88
Wi-Fi
89
Packages
90
In-flight entertainment or internet access
91
Overweight bag fee
92
Sleep sets
93
Special purchase fee

Ancillary Service Category Codes

To indicate the service provided in an ancillary purchase, set the
ancillaryData_service_#_categoryCode
and
ancillaryData_service_#_subcategoryCode
fields to a value listed in the Ancillary Service Category Code column.
Ancillary Service Category Codes
Ancillary Service Category Codes
Description
BF
Bundled service
BG
Baggage fee
CF
Change fee
CG
Cargo
CO
Carbon offset
FF
Frequent flyer
GF
Gift card
GT
Ground transport
IE
In-flight entertainment
LG
Lounge
MD
Medical
ML
Meal or beverage
OT
Other
PA
Passenger assist fee
PT
Pets
SA
Seat fees
SB
Standby
SF
Service fee
ST
Store
TS
Travel service
UN
Unaccompanied travel
UP
Upgrades
WI
Wi-Fi

Airline Data

Airline data processing goes beyond basic payment transactions by allowing you to process specific travel data. This requires you to submit additional information, such as:
  • Carrier
  • Departure Date
  • Destination Airport
  • Purchase Date
  • Originating Airport
  • Ticket Class
  • Trip Legs

Supported Processor

Requirement

When you are ready to go live with airline data processing, contact
Cybersource
Customer Support to have your account configured to process airline data. If your account is not enabled, and you try to send airline transactions, you will receive an error for invalid data.

Related Information

Relaxed Requirements for Address Data and Expiration Date in Payment Transactions

With relaxed requirements for address data and the expiration date, not all standard payment request fields are required. It is your responsibility to determine whether your account is enabled to use this feature and which fields are required.

Airline Data Processing

This section describes how to process airline payments.

Requirement

When you are ready to go live with airline data processing, contact
Cybersource
Customer Support to have your account configured to process airline data. If your account is not enabled, and you try to send airline transactions, you will receive an error for invalid data.

Related Information

  • See Airline Data for information about and requirements for processing payments that include airline data.
  • See Airline Data Reference Information for a list and description of the different document type and ancillary service category codes that are used when processing payments that include airline data.

Chase Paymentech Solutions
Airline Transactions

This section describes the airline payment services you can use when processing with
Chase Paymentech Solutions
.

Supported Card Types and Travel Legs

Chase Paymentech Solutions
limits the maximum number of legs for each trip based on card type. This table describes the maximum number of legs for each trip based on processor and card type.
Supported Card Types and Travel Legs
Supported Card Type
Maximum Number of Travel Legs
American Express
4
Discover
99
Diners
99
JCB
99
Mastercard
99
Visa
4

Airline Processing Rules

For airline authorization requests, you can combine multiple ticket and ancillary purchase amounts in one request.
For airline capture requests, each ticket deposit or payment must be captured separately. You cannot capture multiple deposits or ticket purchases in one capture. Ancillary captures must be separate from ticket captures.
For airline captures and refunds, you must include the
ccCaptureService_industryDatatype ccCreditService_industryDatatype
and
ccCaptureService_industryDatatype
fields with the value Set the value to
airline
.
For the best possible interchange rate on Visa card purchases, include the
airlineData_clearingSequence
and
airlineData_clearingCount
fields in each capture request.
The value of the
purchaseTotals_grandTotalAmount
field should equal the value of the ticket, including all fares, fees, and taxes. If more than one ticket is authorized with a single authorization, then the value of the amount field of the deposit may not always equal the amount of the original authorization.

Authorize an Airline Payment

Airline data is not required for authorizations. A single authorization request can cover multiple tickets, with the authorized amount in the
purchaseTotals_grandTotalAmount
field equal to the total of all fares, fees, and taxes.
You can include multiple passenger tickets in a single authorization request. However, you must submit a separate capture request with airline data for each passenger ticket.
When the customer makes ancillary purchases at the same time as the ticket purchase, you can include the ticket and the ancillary purchase in a single authorization request. However, you must submit separate captures for each ticket purchase and ancillary purchase.

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Simple Order Example: Airline Authorization

Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <billTo> <firstName>John</firstName> <lastName>Smith</lastName> <street1>201 S. Division St.</street1> <city>Ann Arbor</city> <state>MI</state> <postalCode>48104-2201</postalCode> <country>US</country> <email>[email protected]</email> </billTo> <shipTo> <firstName>CPS</firstName> </shipTo> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <card> <accountNumber>3739531923510-04</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2025</expirationYear> <cardType>003</cardType> </card> <ccAuthService run="true"> <industryDatatype>airline</industryDatatype> </ccAuthService> <airlineData> <passengerName>John</passengerName> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> </leg> </airlineData>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859960691616692203007</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccAuthReply> <reasonCode>100</reasonCode> <amount>50.00</amount> <authorizationCode>888888</authorizationCode> <avsCode>X</avsCode> <avsCodeRaw>I1</avsCodeRaw> <authorizedDateTime>2026-06-05T20:14:29Z</authorizedDateTime> <processorResponse>100</processorResponse> <reconciliationID>702412146IIXPP78</reconciliationID> <accountBalance>70.00</accountBalance> </ccAuthReply> <card> <cardType>003</cardType> </card> <pos> <terminalID>111111</terminalID> </pos>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <billTo> <firstName>John</firstName> <lastName>Smith</lastName> <street1>201 S. Division St.</street1> <city>Ann Arbor</city> <state>MI</state> <postalCode>48104-2201</postalCode> <country>US</country> <email>[email protected]</email> </billTo> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <card> <accountNumber>40120000333300-26</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2025</expirationYear> <cardType>001</cardType> </card> <ccAuthService run="true"> <industryDatatype>airline</industryDatatype> </ccAuthService>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859958674966249203009</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccAuthReply> <reasonCode>100</reasonCode> <amount>50.00</amount> <authorizationCode>888888</authorizationCode> <avsCode>X</avsCode> <avsCodeRaw>I1</avsCodeRaw> <authorizedDateTime>2026-06-05T20:11:07Z</authorizedDateTime> <processorResponse>100</processorResponse> <reconciliationID>70240697CIIXNKX4</reconciliationID> <paymentNetworkTransactionID>123456789619999</paymentNetworkTransactionID> </ccAuthReply> <card> <cardType>001</cardType> </card> <pos> <terminalID>111111</terminalID> </pos>

Capture an Airline Payment

This section describes how to capture airline ticket and ancillary purchases when a customer is purchasing a ticket and related services on your e-commerce site.

Capture Restrictions

For a ticket purchase with multiple passengers, you can send a single authorization, but you must send a separate capture for each passenger.
Capture requests must include all the airline related information and the field set to
airline
. You must send ticket purchases and ancillary purchases in separate captures.

Document Type

You must send the field for American Express capture requests. It will be ignored for other card types. For possible values, see Airline Document Type Codes.

Ancillary Data

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 in an ancillary purchase, set the field to an ancillary service category code. For possible values, see Ancillary Service Category Codes.

Endpoint

Set the
ccCaptureService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Card-Specific Field for an Airline Capture

This section includes card-specific information.

American Express

Use this card-specific field in addition to the required fields when capturing an authorization with a American Express card.

Optional Fields for an Airline Capture

Choose from these optional fields to include additional information when capturing an airline payment for tickets and ancillary purchases.
For possible values, see Ancillary Service Category Codes.
Include this field and the clearing sequence field for the best exchange rate on Visa.
Include this field and the clearing count field for the best exchange rate on Visa.
For possible values, see Airline Document Type Codes.
Available for Visa only.
Available for Visa only.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Capture a Ticket Payment

Request
This example includes optional fields.
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6841863354646003603681</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentName>Thomascook</agentName> <ticketNumber>asd23</ticketNumber> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <planNumber>2B</planNumber> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859997862716741203010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-06-05T21:16:26Z</requestDateTime> <amount>50.00</amount> <reconciliationID>702280482IIXTJ8K</reconciliationID> </ccCaptureReply>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6917686812546643503007</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentCode>AGC12345</agentCode> <agentName>Thomascook</agentName> <ticketIssuerAddress>123 Happy St</ticketIssuerAddress> <ticketNumber>asd23</ticketNumber> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>123456789</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <flightNumber>456789123</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <flightNumber>987654321</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>AB1234</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1720</departureTime> <departureTimeSegment>P</departureTimeSegment> <arrivalTime>2220</arrivalTime> <arrivalTimeSegment>P</arrivalTimeSegment> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fare>100000000</fare> <fee>999.99</fee> <tax>99</tax> </leg> <ticketIssueDate>20261010</ticketIssueDate> <planNumber>2B</planNumber> <arrivalDate>20260917</arrivalDate> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>Postman-1691769389</merchantReferenceCode> <requestID>6917693897226880503009</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-08-11T15:56:29Z</requestDateTime> <amount>50.00</amount> <reconciliationID>79955177DL62B711</reconciliationID> </ccCaptureReply>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6917735883576902203011</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentName>Thomascook</agentName> <ticketNumber>asd23</ticketNumber> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>123456789</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1235</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <flightNumber>987654321</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>1640</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <flightNumber>78945612</flightNumber> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>2245</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <fareBasis>1</fareBasis> <exchangeTicket>tickeT12</exchangeTicket> <departureTime>2345</departureTime> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <planNumber>2B</planNumber> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>Postman-1691773605</merchantReferenceCode> <requestID>6917736057356909103011</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-08-11T17:06:45Z</requestDateTime> <amount>50.00</amount> <reconciliationID>79959505DL62B7XL</reconciliationID> </ccCaptureReply>
Request
<merchantID>fdiglobal_cert_no_cbps</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6841863354646003603681</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <airlineData> <agentName>Thomascook</agentName> <ticketNumber>asd23</ticketNumber> <restrictedTicketIndicator>1</restrictedTicketIndicator> <passengerName>John</passengerName> <customerCode>LDTYOU789</customerCode> <totalFee>200</totalFee> <leg id="0"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="1"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="2"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <leg id="3"> <carrierCode>AA</carrierCode> <originatingAirportCode>PDX</originatingAirportCode> <class>1</class> <stopoverCode>O</stopoverCode> <departureDate>20261010</departureDate> <destination>SJ</destination> <exchangeTicket>tickeT12</exchangeTicket> <endorsementsRestrictions>Endorsement123456789</endorsementsRestrictions> <fee>999.99</fee> <tax>99</tax> </leg> <planNumber>2B</planNumber> <exchangeTicketAmount>87654</exchangeTicketAmount> <exchangeTicketFee>32345</exchangeTicketFee> </airlineData>
Response to a Successful Request
<merchantReferenceCode>gZZE9w03mnzQef4ePI1CnJeu7e+d0lTRmBZOSpG6gheF3JyRat</merchantReferenceCode> <requestID>6859975187656465603010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2026-06-05T20:38:39Z</requestDateTime> <amount>50.00</amount> <reconciliationID>702412146IIXPP78</reconciliationID> </ccCaptureReply>

Simple Order Example: Capture an Ancillary Payment

Request
This example includes optional fields.
<merchantID>mid123456</merchantID> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <taxAmount>3</taxAmount> <grandTotalAmount>50.00</grandTotalAmount> </purchaseTotals> <otherTax> <externalTaxAmount>20</externalTaxAmount> </otherTax> <ccCaptureService run="true"> <authRequestID>6841863354646003603681</authRequestID> <industryDatatype>airline</industryDatatype> </ccCaptureService> <ancillaryData> <ticketNumber>Ticket15CharMax</ticketNumber> <passengerName>AncillaryNameMax20ch</passengerName> <connectedTicketNumber>CONNTICKET12345</connectedTicketNumber> <service id="0"> <categoryCode>SF</categoryCode> </service> <service id="1"> <categoryCode>SA</categoryCode> </service> <service id="2"> <categoryCode>SB</categoryCode> </service> </ancillaryData>
Response to a Successful Request
<replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.142"> <merchantReferenceCode>TLPANI6-28-1</merchantReferenceCode> <requestID>6860000963746172003008</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCaptureReply> <reasonCode>100</reasonCode> <requestDateTime>2023-06-05T21:21:36Z</requestDateTime> <amount>50.00</amount> <reconciliationID>702280502IIXTJA7</reconciliationID> </ccCaptureReply> </replyMessage>

Refund an Airline Payment

This section describes how to issue a refund, which is also known as a follow-on credit. It returns the payment amount from a completed capture or sale. You must include the original capture or sale transaction ID.

Endpoint

Set the
ccCreditService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for an Airline Refund

Set the value to the capture ID.
Set the value to
true
.
Set the value to the
merchantReferenceCode
field value used in the corresponding capture request.

Optional Fields for an Airline Refund

Set the value to one of these possible values:
  • A
    : Passenger transport ancillary fee cancellation
  • B
    : Airline ticket and passenger transport ancillary fee cancellation
  • C
    : Airline ticket cancellation
  • O
    : Other
  • P
    : Partial refund of airline ticket
For a list of all possible values, see Ancillary Service Category Codes.
For a list of all possible values, see Ancillary Service Category Codes.
For possible values, see Airline Document Type Codes.
Value format:
lastname/firstname
Available for Visa only.
Set the value to one of these possible values:
  • 01
    : Payment is for an airline ticket.
  • 02
    : Payment is for an ancillary purchase.
For ancillary fields, see Airline Ancillary Fields.

Simple Order Example: Airline Refund

Request
<requestMessage> <merchantID>merchantID</merchantID> <merchantReferenceCode>merchantRefCode</merchantReferenceCode> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>1.01</grandTotalAmount> </purchaseTotals> <ccCreditService run="true"> <captureRequestID>captureRequestID</captureRequestID> </ccCreditService> <airlineData> <agentCode>98222147</agentCode> <agentName>Cyber Vacations</agentName> <ticketIssuerCode>198765432101234</ticketIssuerCode> <ticketNumber>2721187251</ticketNumber> <restrictedTicketIndicator>1</restrictedTicketIndicator> <passengerName>Jane Smith</passengerName> <customerCode>TESTCUSTOMERCODE</customerCode> <leg id="0"> <carrierCode>AA</carrierCode> <flightNumber>EZ123</flightNumber> <originatingAirportCode>SJC</originatingAirportCode> <class>H</class> <stopoverCode>0</stopoverCode> <departureDate>20251230</departureDate> <destination>SEA</destination> <fareBasis>HL7WNR</fareBasis> </leg> <leg id="1"> <carrierCode>A2</carrierCode> <flightNumber>JFK12</flightNumber> <originatingAirportCode>JFK</originatingAirportCode> <class>1</class> <stopoverCode>1</stopoverCode> <departureDate>20251230</departureDate> <destination>CD1</destination> <fareBasis>GH87N1</fareBasis> </leg> <creditReasonIndicator>A</creditReasonIndicator> <ticketUpdateIndicator>N</ticketUpdateIndicator> </airlineData> <ancillaryData> <ticketNumber>12345678901234</ticketNumber> <passengerName>Jane Smith</passengerName> <connectedTicketNumber>98765432109876</connectedTicketNumber> <creditReasonIndicator>A</creditReasonIndicator> <feeDescription>BagAndSeatFee</feeDescription> <service id="0"> <categoryCode>BG</categoryCode> <subcategoryCode>0AA</subcategoryCode> <feeAmount>2.00</feeAmount> <feeCode>BG</feeCode> </service> <service id="1"> <categoryCode>SA</categoryCode> <subcategoryCode>0B5</subcategoryCode> <feeAmount>1.00</feeAmount> <feeCode>SA</feeCode> </service> </ancillaryData> </requestMessage>
Response to a Successful Request
<replyMessage> <merchantReferenceCode>Postman-1666641056</merchantReferenceCode> <requestID>6666410568976150003010</requestID> <decision>ACCEPT</decision> <reasonCode>100</reasonCode> <purchaseTotals> <currency>USD</currency> </purchaseTotals> <ccCreditReply> <reasonCode>100</reasonCode> <requestDateTime>2022-10-24T19:50:57Z</requestDateTime> <amount>1.01</amount> <reconciliationID>6691571329CM5P99</reconciliationID> </ccCreditReply> </replyMessage>