Form of Payment API Reference
POST |
payment/reservationworkbench/{workbenchID}/formofpayment For {workbenchID} send the workbench identifier returned in ReservationResponse/Identifer/value in the workbench create response. Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
PUT |
payment/reservationworkbench/{workbenchID}/formofpayment/{FormOfPayment_Identifier} For {workbenchID} send the workbench identifier returned in ReservationResponse/Identifer/value in the workbench create response. For {FormOfPayment_Identifier} send the id of the form of payment to update. Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Del |
payment/reservationworkbench/{workbenchID}/formofpayment/{FormOfPayment_Identifier} For {workbenchID} send the workbench identifier returned in ReservationResponse/Identifer/value in the workbench create response. For {FormOfPayment_Identifier} send the id of the form of payment to delete. Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Related Content: Booking Guide, Ticketing Guide
Add Form of Payment (FOP) adds payment details to a workbench. To send the actual payment, it must be followed with Add Payment. For GDS only, it can be stored with a booking and charged later. FOP is not stored for a held NDC booking and if sent during booking is not available for retrieval during ticketing. FOP is required during ticketing if not sent during booking.
The PUT and DEL endpoints above modify or delete either an FOP in the workbench or a stored FOP on a booking. Include the workbench identifier and the form of payment identifier in the endpoint, per the example below. The PUT request sends any of the payloads detailed here. The DEL request does not send a request payload.
PUT or DEL https://api.travelport.com/11/air/payment/reservationworkbench/cfa7a3a6-fefa-47e7-87a7-5c5cbde146cf/formofpayment/formOfPayment_1
Add Multiple Forms of Payment (GDS only)
For GDS only, you can add up to two FOP in either the booking or ticketing workflow by sending Add Form of Payment for each FOP. At ticketing you must send a separate Add Payment request for each FOP. The additional FOP can be any supported form of payment. Multiple FOP are supported only for bookings with a single passenger.
Unused Ticket as Form of Payment (NDC only)
For NDC only, the JSON APIs support using an unused ticket as form of payment (FOP) to pay for a ticket. See the Ticket as FOP API Reference. You need to send this FOP request only if the cost of the new booking exceeds the available value on the unused ticket.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body
The Add FOP offers several payloads to support the type of FOP sent.
Cash and credit card FOPs are supported for both GDS and NDC. Agent invoice and non-standard credit card FOPs are supported for GDS only.

Object |
Description |
Required/Optional |
---|---|---|
FormOfPaymentPaymentCard |
Top-level for request. Includes FormOfPaymentRef, Identifier, PaymentCard, and ExtendedPayment objects. |
Required |
|
Boolean. Used to indicate whether a card is standard.
|
Optional |
|
String. Send a custom identifier for this FOP. Supports up to 256 alphanumeric characters. |
Required |
FormOfPaymentRef |
String. Send a custom identifier for this FOP. Supports up to 256 alphanumeric characters. Must be the same value sent in FormOfPaymentPaymentCard @id in the row above.
|
Required |
Identifier |
Identifier details. Key value pairs:
|
Required |
PaymentCard |
Credit card details. Includes the CardType, CardCode, CardHolderName, CardNumber, SeriesCode, and Address objects. |
Required |
|
String. Send a custom identifier for this payment card. Supports up to 256 alphanumeric characters. |
Required |
|
Expiration date of the card in MMYY format. |
Required |
CardType |
Type of card. This value must be 'Credit'. |
Required |
CardCode |
Code for the credit card type. |
Required |
CardHolderName |
Text string for the cardholder name. Key value pair:
|
Required |
CardNumber |
Top level object for the credit card number. Send with @type CardNumber. Includes PlainText. |
Required |
PlainText |
The credit card number. | Required |
SeriesCode |
Top level object for the CVV code. |
Required |
PlainText |
The credit card three-digit CVV code. |
Required |
Address |
Billing address details. Includes Number, Street, AddressLine, City, StateProv, Country, and PostalCode objects. |
Optional |
Number |
Top level object for street number of billing address. |
Optional |
|
Street number value. |
Optional |
Street |
Top level object for street name of billing address. |
Optional |
|
Street name value. |
Optional |
AddressLine |
Extra address line. |
Optional |
City |
The city of the billing address. |
Optional |
StateProv |
Top level object. |
Optional |
|
State or province of billing address. |
Optional |
Country |
Country of billing address. |
Optional |
PostalCode |
Postal code of billing address. |
Optional |
ExtendedPayment |
Sends payment details to pay in installments with this credit card. Supported for general use and for the Brazilian business practice Pagos Parcelados. For Pagos Parcelados, this form of payment must be a credit card issued in Brazil. GDS only; not supported for NDC. Supported on bookings with a single passenger and a single fare quote.
The API does not validate whether the carrier accepts payment in installments, or if the credit card is eligible for Pagos Parcelados (credit card must be issued in Brazil). If you issue a ticket using installments that is not accepted, the airline sends a debit memo.
In the subsequent Add Payment request, send in Amount/value the total amount of the reservation, not the amount of the first installment payment.
Key value pairs:
The following key value pairs are used only for Pagos Parcelados; all are required for Pagos Parcelados:
|
Optional |
Although the JSON APIs support cash FOP for both GDS and NDC, not all NDC carriers support cash FOP.
For detailed NDC support by carrier, see the Knowledge Base article NDC capabilities by airline through JSON API (see Knowledge Base NDC Resources if you need login assistance).

Object |
Description |
Required/Optional |
---|---|---|
FormOfPaymentCash |
Top level object. |
Required |
|
String. Send a custom identifier for this form of payment. Supports up to 256 alphanumeric characters. |
Required |
|
AirReservation 24.11.45 and later.
Boolean. Send with a value of true to indicate the payment is non-refundable; do not send if false. If sent, the workbench commit and Reservation Retrieve responses return agentNonRefundableInd with a value of true. Can send with FreeText object below to include a text description. Not supported for ticketless carriers or NDC. |
Optional |
FormOfPaymentRef |
String. Send a custom identifier for this form of payment. Supports up to 256 alphanumeric characters. Must be the same value sent in FormOfPaymentCash/id above.
|
Required |
Identifier |
Top level object. |
Required |
|
For GDS content this value is Travelport. For NDC content this value is the issuing carrier's name. |
Required |
|
This is a placeholder value that has no use at this time. Any text can be sent. |
Required |
FreeText |
AirReservation 24.11.45 and later.
String, 35-character limit. Optional object to send any free text description for agentNonRefundableInd. If sent, returned in the workbench commit and Reservation Retrieve responses. |
Optional |

Object |
Description |
Required/Optional |
---|---|---|
FormOfPaymentInvoice |
Top level object. |
Required |
|
String. Send a custom identifier for this form of payment. Supports up to 256 alphanumeric characters. |
Required |
FormOfPaymentRef |
String. Send a custom identifier for this form of payment. Supports up to 256 alphanumeric characters. |
Required |
Identifier |
Top level object. |
Required |
|
For GDS content this value is Travelport. |
Required |
|
This is a placeholder value that has no use at this time. Any text can be sent. |
Required |
InvoiceNumber |
Agent invoice number. |
Required |

Object |
Description |
Required/Optional |
---|---|---|
FormOfPaymentCheck |
Top level object. |
Required |
FormOfPaymentRef |
String. Send a custom identifier for this form of payment. Supports up to 256 alphanumeric characters. |
Required |
|
String. Send a custom identifier for this form of payment. Supports up to 256 alphanumeric characters. |
Required |
Identifier |
Top level object. |
Required |
|
For GDS content this value is Travelport. |
Required |
|
This is a placeholder value that has no use at this time. Any text can be sent. |
Required |
When exchanging a GDS ticket, you can send the FormOfPaymentForfeit Add FOP payload to forfeit residual amounts during the exchange/reissue of a ticket. In the subsequent Add Payment request, specify whether to forfeit the total residual amount, the base amount, the total taxes, or individual taxes with a tax code.

Object |
Description |
Required/Optional |
---|---|---|
FormOfPaymentForfeit |
Top level object. Key value pairs:
|
Required |
FormOfPaymentRef |
String. Custom identifier for form of payment. |
Required |
Identifier |
Identifier for request. Key value pairs:
|
Required |
When exchanging a GDS ticket, you can send the FormOfPaymentWaiverCode Add FOP payload to waive a change fee, with or without a waiver code. Waiver FOP is applied to all travelers in a reservation.

Object |
Description |
Required/Optional |
---|---|---|
FormOfPaymentWaiverCode |
Top level object. Key value pair:
|
Required |
FormOfPaymentRef |
Send the same custom identifier sent in FormOfPaymentWaiverCode/id. |
Required |
Identifier |
Identifier for waiver code. Key value pairs:
|
|
WaiverCode |
Optional waiver code. Key value pair:
|
Optional |
Response

Object |
Description |
---|---|
FormofPaymentResponse |
Top level object for response. |
Identifier |
Returns confirmation. For GDS content authority is Travelport; for NDC content authority is the issuing carrier's name. identifier. The identifier in value has no subsequent use at this time. Key value pairs:
|
Example Request
The request payload below for an NDC itinerary sends a standard credit card, which is the only FOP supported in the JSON APIs for NDC. Note that for NDC you must send the CVV code in SeriesCode.

{
"FormOfPaymentPaymentCard": {
"id": "formOfPayment_5",
"FormOfPaymentRef": "formOfPayment_5",
"Identifier": {
"authority": "Travelport",
"value": "A0656EFF-FAF4-456F-B061-0161008D6FOP"
},
"PaymentCard": {
"@type": "PaymentCardDetail",
"id": "paymentCard_4",
"expireDate": "0139",
"CardType": "Credit",
"CardCode": "VI",
"CardHolderName": "JANE DOE",
"approvalCode": "123456",
"CardNumber": {
"@type": "CardNumber",
"PlainText": "4987654321098769"
},
"SeriesCode": {
"PlainText": "123"
}
}
}
}
The example request payload below sends a cash FOP.

{
"FormOfPaymentCash": {
"id": "formOfPayment_5",
"FormOfPaymentRef": "formOfPayment_5",
"Identifier": {
"authority": "Travelport",
"value": "A0656EFF-FAF4-456F-B061-0161008D6FOP"
}
}
}

{
"FormOfPaymentCash" : {
"id" : "formOfPayment_1",
"FormOfPaymentRef" : "a111",
"agentNonRefundableInd" : true,
"Identifier" : {
"value" : "A0656EFF-FAF4-456F-B061-0161008D7C4E",
"authority" : "Travelport"
},
"FreeText" : "Test for Non-Ref"
}
}
The example request payload below sends an agent invoice as FOP. GDS only; not supported for NDC.

{
"FormOfPaymentInvoice": {
"id": "1",
"FormOfPaymentRef": "1",
"Identifier": {
"value": "A0656EFF-FAF4-456F-B061-0161008D6FOP",
"authority": "Travelport"
},
"InvoiceNumber": "34324343"
}
}
The example request payload below sends a non-standard credit card (inhibitPaymentCardAuthorizationInd is sent as true for a CardCode value of HD) as FOP. GDS only; not supported for NDC.

{
"FormOfPaymentPaymentCard": {
"inhibitPaymentCardAuthorizationInd": true,
"id": "formOfPayment_5",
"FormOfPaymentRef": "formOfPayment_5",
"PaymentCard": {
"@type": "PaymentCardDetail",
"id": "paymentCard_4",
"expireDate": "0522",
"approvalCode": "Z555444",
"CardType": "Credit",
"CardCode": "HD",
"CardHolderName": "JANE DOE",
"CardNumber": {
"PlainText": "9431330036187707"
}
}
}
}
The example request payload below sends a check FOP. GDS only; not supported for NDC.

{
"FormOfPaymentCheck": {
"FormOfPaymentRef": "formOfPayment_1",
"id": "formOfPayment_1",
"Identifier": {
"authority": "Travelport",
"value": "A0656EFF-FAF4-456F-B061-0161008D7C4E"
}
}
}
When exchanging a GDS ticket, you can choose to forfeit residual amounts. Send Add FOP with the FormOfPaymentForfeit payload below. In the subsequent Add Payment request, specify whether to forfeit the total residual amount, the base amount, the total taxes, or individual taxes.

{
"FormOfPaymentForfeit": {
"forfeitInd": true,
"id": "formOfPayment_5",
"FormOfPaymentRef": "formOfPayment_5",
"Identifier": {
"authority": "Travelport",
"value": "2e88da9b-f4c2-4044-8607-c7b74ba4c657"
}
}
}
When exchanging a GDS ticket, send the following payload to waive a change fee for all travelers.

{
"FormOfPaymentWaiverCode": {
"id": "formOfPayment_6",
"FormOfPaymentRef": "formOfPayment_6",
"Identifier": {
"value": "A0656EFF-FAF4-456F-B061-0161008D7C4E",
"authority": "Travelport"
},
"WaiverCode": {
"value": "ABC123"
}
}
}
Example Response
The response to the POST request returns a confirmation identifier. The value returned has no subsequent use in the workflow at this time.
A successful response for the DEL or PUT request returns a 204[No Content] message. There is no response message payload.

{
"FormOfPaymentResponse": {
"Identifier": {
"authority": "Travelport",
"value": "558f8744-3554-4382-a1ff-3461f02e436f"
}
}
}