Skip to content

Add Form of Payment

Request

You can send an Add Form of Payment (FOP) request in either a booking or ticketing workbench session to add payment details to a workbench. To apply the payment information to one or more offers, FOP must be followed with Payment.
FOPs of cash and credit are supported. FOPs of agent invoice and non-standard credit card are supported for GDS only. Although the TripServices APIs support cash FOP for both GDS and NDC, not all NDC carriers support cash FOP.
For GDS only, FOP can be stored with a booking and charged later; FOP is required during ticketing if not sent during booking. FOP is not stored for a held NDC booking and should be sent only at time of ticketing.
For GDS only, you can add up to two FOP in either the booking or ticketing workflow by sending a Form of Payment request 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.
The form of payment will only be added to the reservation when an itinerary exists. If no itinerary exists the form of payment will be ignored.

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.
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.

When using a flight pass to pay for an Air Canada NDC booking, send FormOfPaymentFlightPass.

Security
bearerAuth
Path
ReservationResource_Identifierstring, <= 128 charactersrequired

The Reservation Identifier you wish to add form of payment to

Example:49f58f5f-c443-43b4-9f5d-be405fd00a01
Query
authorizePaymentIndboolean

If true payment card approval will be obtained.

Headers
TraceIdstring, [ 10 .. 89 ] characters

Identifier used to correlate Air API invocations across a multi-call business flows.

Example:TraceID_123456789
XAUTH_TRAVELPORT_ACCESSGROUPstring, = 36 characters([a-zA-Z-0-9-_]*)

Identifies the Travelport access group with which the caller is associated

Example:19Y88702-C27A-4E5D-829A-89D7016688B1
travelportPlusSessionIdentifierstring, [ 0 .. 100 ] characters([a-zA-Z-0-9-_]*)

travelportPlusSessionIdentifier used to maintain an established agency session

Example:49f58f5f-c443-43b4-9f5d-be405fd00a01
TVP-PCC-Corestring^[a-zA-Z\d]{3,4}_\w{2}$

Allows user to pass PCC instead of Access Group ID

Example:DU7_1G
Bodyapplication/json

Add Form Of Payment request payload.

@typestringrequired

Discriminator classes FormOfPaymentID, FormOfPaymentBSP, FormOfPaymentCash, FormOfPaymentCheck, FormOfPaymentDocument, FormOfPaymentFlightPass, FormOfPaymentForfeit, FormOfPaymentInvoice, FormOfPaymentPaymentCard, FormOfPaymentVirtualPaymentAccount, FormOfPaymentWaiverCode

Example:"FormOfPaymentPaymentCard"
Discriminator
idstring

Form of Payment reference ID. Send a custom identifier for this FOP. Supports up to 256 alphanumeric characters.

Example:"formofpayment_1"
FormOfPaymentRefstring

Send a custom identifier for this FOP. Supports up to 256 alphanumeric characters. Must be the same value sent in FormOfPaymentPayment[ID/Cash/Card/etc].id

Example:"formofpayment_1"
Identifierobject(Identifier)

A globally unique identifier key often used to reference a given option (such as Pricing, Booking, Rules, or additional workflows) or to retrieve information (such as Hotel pagination). When used for ticket Identifer
Key value pairs:

  • value: Ticket number
  • authority: Value Travelport
reservationFOPIndboolean

If true, this form of payment is the primary form of payment stored in the Reservation and will be used as the default payment unless alternate form of payment is referenced during the payment process.

Example:true
agentNonRefundableIndboolean

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.

FreeTextstring, <= 35 characters

Optional object to send any free text description for agentNonRefundableInd. If sent, returned in the workbench commit and Reservation Retrieve responses.

miscellaneousIndboolean

If true, the form of payment type is MS, miscellaneous

activeIndbooleandeprecated

Deprecated. Will not implement.

Example:true
Commentstring, <= 35 charactersdeprecated
curl -i -X POST \
  'https://api.pp.travelport.net/11/air/payment/reservationworkbench/49f58f5f-c443-43b4-9f5d-be405fd00a01/formofpayment?authorizePaymentInd=true' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'TVP-PCC-Core: DU7_1G' \
  -H 'TraceId: TraceID_123456789' \
  -H 'XAUTH_TRAVELPORT_ACCESSGROUP: 19Y88702-C27A-4E5D-829A-89D7016688B1' \
  -H 'travelportPlusSessionIdentifier: 49f58f5f-c443-43b4-9f5d-be405fd00a01'

Responses

OK - Successful Response - 200

Bodyapplication/json
FormOfPaymentResponseobject(FormOfPaymentResponse)

The response of a Form of payment endpoint request.

Response
{ "FormOfPaymentResponse": { "FormOfPayment": { "@type": "FormOfPaymentCash", "id": "string", "FormOfPaymentRef": "string", "Identifier": { … }, "activeInd": true }, "@type": "response", "transactionId": "49f58f5f-c443-43b4-9f5d-be405fd00a01", "traceId": "TraceID_123456", "correlationId": "49f58f5f-c443-43b4-9f5d-be405fd00a01", "reservationStatus": "Success", "Result": { "@type": "Result", "status": "Complete", "Error": [ … ], "Warning": [ … ] }, "Identifier": { "value": "A0656EFF-FAF4-456F-B061-0161008D7C4E", "authority": "TVPT" }, "NextSteps": { "baseURI": "www.travelport.com", "id": "5", "NextStep": [ … ] }, "ReferenceList": [ null ], "CurrencyRateConversion": [ { … } ], "Pagination": { "@type": "Pagination", "page": 1, "pageSize": 20, "totalPages": 5, "totalItems": 100 } } }