Skip to content

NDC Reshop

Request

NDC only; not supported for GDS.
The Reshop API searches for a new itinerary when modifying a held booking or exchanging a ticket for NDC.
Reshop is part of the NDC modify/exchange workflow. Create a post-commit workbench, Reshop with this API call, Reprice to confirm pricing, and commit the workbench to confirm the changes. See the NDC Exchanges and Refunds guide for more details.

Security
bearerAuth
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/jsonrequired
@typestringrequired
Example:"CatalogOfferingsQueryAirChange"
CatalogOfferingsAirChangeRequestobject(CatalogOfferingsAirChangeRequestReservation)required
curl -i -X POST \
  https://developer.travelport.com/_mock/apis/flights/air/change/catalogofferingsairchange \
  -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' \
  -d '{
    "@type": "CatalogOfferingsQueryAirChange",
    "CatalogOfferingsAirChangeRequest": {
      "@type": "CatalogOfferingsAirChangeRequestReservation",
      "returnBrandedFaresInd": true,
      "offersPerPage": 10,
      "SearchCriteriaFlight": [
        {
          "departureDate": "2026-11-28",
          "From": {
            "value": "SYD"
          },
          "To": {
            "value": "MEL"
          }
        }
      ],
      "PassengerCriteria": [
        {
          "@type": "PassengerCriteria",
          "number": 1,
          "passengerTypeCode": "ADT"
        }
      ],
      "BuildFromReservationWorkbench": {
        "@type": "BuildFromReservationWorkbench",
        "ReservationIdentifier": {
          "Identifier": {
            "authority": "QF",
            "value": "438efa7d-717b-46b1-a162-e8fac22d556f"
          }
        },
        "OfferIdentifier": {
          "Identifier": {
            "authority": "QF",
            "value": "UUYwODFSRkdPQVhBNHxQQUU4MTQ3NzYtOUI3MS00RjZGLTg5QTRwbWkxcmk0YjcybHRmLTEtMXxTdGF0dXM6VVNFRCBOVEFDfE9yZGVyaXRlbUlkOlBBRTgxNDc3Ni05QjcxLTRGNkYtODlBNHBtaTFyaTRiNzJsdGYtMS0xO1BUQzpBRFQ="
          }
        },
        "ProductIdentifier": [
          {
            "Identifier": {
              "authority": "QF",
              "value": "d9dc08a4-d673-4d8e-b2a0-5cddcdcddff5"
            }
          }
        ]
      }
    }
  }'

Responses

OK - Successful Response - 200

Bodyapplication/json
CatalogOfferingsAirChangeResponseobject(CatalogOfferingsAirChangeResponse)

The response of a Catalog offerings air change endpoint request.

Response
{ "CatalogOfferingsAirChangeResponse": { "CatalogOfferings": { "@type": "CatalogOfferings", "id": "CatalogOfferings_1", "Identifier": {}, "totalCatalogOffering": 0, "catalogOfferingPerPage": 0, "numberOfPages": 5, "CatalogOffering": [], "AncillaryOffering": [] }, "@type": "response", "transactionId": "49f58f5f-c443-43b4-9f5d-be405fd00a01", "traceId": "TraceID_123456", "correlationId": "48fb4cd3-2ef6-4479-bea1-7c92721b988c", "reservationStatus": "Success", "Result": { "@type": "Result", "status": "Complete", "Error": [], "Warning": [] }, "Identifier": { "value": "A0656EFF-FAF4-456F-B061-0161008D7C4E", "authority": "TVPT" }, "NextSteps": { "baseURI": "string", "id": "5", "NextStep": [] }, "ReferenceList": [ {} ], "CurrencyRateConversion": [ {} ], "Pagination": { "@type": "Pagination", "page": 1, "pageSize": 20, "totalPages": 5, "totalItems": 100 } } }