TravelCaster API - Fulfillment - FulfillExchange

Back to Fulfillment home.


Executes the exchange for the selected offer and leg options. The booking is reissued with the new flights and new ticket numbers are issued.

This operation charges the customer. It must be preceded by a SearchExchangeAlternatives call; the RecommendationID from that response is required and validated server-side. It expires 60 minutes after the search.

Request

JSON

https://endpoint/api/version/FulfillmentService.json/FulfillExchange [POST]

request: ExchangeFulfillRequest

response: ExchangeFulfillResponse

Structure of the ExchangeFulfillRequest object

ExchangeFulfillRequest
 |
 |_ Token (string - required - access token from AuthService)
 |_ BookingNumber (string - required - record locator of the booking to exchange)
 |_ RecommendationID (string - required - from SearchExchangeAlternatives response)
 |_ LegsToExchange (ExchangeRequestLeg[] - required - one entry per leg being replaced)
 |  |
 |  |_ LegNumber (int - required - 1-based leg number)
 |  |_ ReplaceWithOptionRef (string - required - RefNumber of the chosen ExchangeOfferOption)
 |
 |_ CreditCardDetails (CreditCardDetails - required if AllowedFormsOfPayment includes CARD)
    |
    |_ NameOnCard (string)
    |_ CardNumber (string - full card number, stored masked)
    |_ SecurityCode (string - CVV)
    |_ AuthorizationCode (string - pre-authorisation code, if applicable)
    |_ ExpirationDate (string - YYYY-MM)
    |_ CardType (string - e.g. VI, CA, AX)
    |_ Installments (int - optional - number of installments)

Structure of the ExchangeFulfillResponse object

ExchangeFulfillResponse
 |
 |_ TransactionID (string)
 |_ TransactionCode (string - "0" = success)
 |_ TransactionMessage (string - non-empty on success indicates a warning; see Notes)
 |
 |_ BookingNumber (string - record locator of the updated booking)
 |_ OfficeID (string - provider office ID)
 |_ BookingDate (string - ISO 8601 YYYY-MM-DD)
 |_ BookingFare (FlightFare - updated fare after exchange)
 |  |
 |  |_ FareAmount (double)
 |  |_ TaxAmount (double)
 |  |_ TotalAmount (double)
 |  |_ Currency (string - ISO 3-letter)
 |  |_ ValidatingCarrier (string - IATA 2-letter)
 |  |_ LastTicketingDate (string - YYYY-MM-DD HH:mm:ss)
 |  |_ FareType (string)
 |  |_ Legs (FlightLeg[])
 |     |
 |     |_ LegNumber (int - 1-based)
 |     |_ Options (FlightOption[])
 |        |
 |        |_ OptionDuration (int - total duration in minutes)
 |        |_ Segments (FlightSegment[])
 |           |
 |           |_ SegmentNumber (int)
 |           |_ Airline (string - IATA 2-letter marketing carrier)
 |           |_ OperatingAirline (string - IATA 2-letter)
 |           |_ FlightNumber (int)
 |           |_ BookingClass (string - 1-letter RBD)
 |           |_ CabinClass (string - 1-letter: Y=Economy, W=Premium Economy, C=Business, F=First)
 |           |_ FareBasis (string)
 |           |_ Status (string)
 |           |_ Equipment (string - IATA aircraft type)
 |           |_ Baggage (string - e.g. 1PC, 23K)
 |           |_ Duration (int - segment duration in minutes)
 |           |_ Departure (FlightEvent)
 |           |  |_ AirportCode (string - IATA 3-letter)
 |           |  |_ Date (string - YYYY-MM-DD)
 |           |  |_ Time (string - HH:MM local time)
 |           |_ Arrival (FlightEvent)
 |              |_ AirportCode (string - IATA 3-letter)
 |              |_ Date (string - YYYY-MM-DD)
 |              |_ Time (string - HH:MM local time)
 |
 |_ Passengers (PaxInformation[])
    |
    |_ Number (int - 1-based passenger reference)
    |_ LastName (string)
    |_ FirstName (string)
    |_ DateOfBirth (string - YYYY-MM-DD)
    |_ Gender (string)
    |_ Type (string - ADT, CHD, INF)

Notes

  • The ReplaceWithOptionRef values must come from the ExchangeOfferOption.RefNumber fields of a single offer returned by SearchExchangeAlternatives. Mixing options from different offers is not valid.
  • All legs in the request must match legs present in the selected offer. Submitting a LegNumber not included in the offer results in error 3005.
  • If CreditCardDetails is omitted, cash payment is assumed. Include it only when AllowedFormsOfPayment in the search response includes CARD.
  • Card numbers are stored and logged in masked form (last 4 digits visible). The full number is only forwarded to the provider during processing and is never stored.
  • A TransactionCode of "0" with a non-empty TransactionMessage means the exchange succeeded but the backoffice notification could not be delivered. The booking change is confirmed; the warning is informational.

Back to Fulfillment home.


See change history for this file
Loading...