Skip to main content

Change order

PATCH /json/{version}/orders/{orderId} applies changes to an existing booking. It is the JSON counterpart of the NDC IATA_OrderChangeRQ.

orderId is the order ID or record locator (PNR).

Authorization

Change order requires full transaction (book) permissions on the API key.

Requests carrying raw cardholder data outside the payment object are rejected before processing.

Request

The body must include at least one of changes, passengers, contact, or payment. Each changes[] entry is one instruction:

Instruction typeDescription
CancelUnpaidOrderCancels an unpaid (hold) booking.
CancelJourneyCancels one journey by journeyRef.
UpdatePassengerPatches one passenger (passengerId + non-empty patch of name, date of birth, gender, nationality, residence country, or travel documents).
UpdateContactReplaces the order contact.
ConfirmHoldConfirms a hold booking; combine with payment.
AcceptOfferAdds ancillary offer items (seats, services) to the order; entries carry offerId, offerItemId, optional passengerIds and seat (row + column).
AcceptReshopOfferAccepts a reshop offer quoted by quote order.

Cancel an unpaid order

PATCH /json/v0/orders/ABC123
Authorization: <bearer token from /auth/token>
Content-Type: application/json

{
"changes": [
{
"type": "CancelUnpaidOrder"
}
]
}

Confirm a hold with payment

PATCH /json/v0/orders/ABC123
Authorization: <bearer token from /auth/token>
Content-Type: application/json

{
"changes": [
{
"type": "ConfirmHold"
}
],
"payment": {
"type": "TokenizedCard",
"token": "<payment-token>",
"cardType": "VI",
"expiryDate": "1227"
}
}

Update a passenger

PATCH /json/v0/orders/ABC123
Authorization: <bearer token from /auth/token>
Content-Type: application/json

{
"changes": [
{
"type": "UpdatePassenger",
"passengerId": "PAX-eyJ2IjoxfQ",
"patch": {
"name": {
"givenName": "Jane",
"surname": "Smith"
}
}
}
]
}

Accept a reshop offer

PATCH /json/v0/orders/ABC123
Authorization: <bearer token from /auth/token>
Content-Type: application/json

{
"changes": [
{
"type": "AcceptReshopOffer",
"offerId": "OF-8c1e2f04-9d21-4b7a-b3c2-77c101f1a001",
"offerItemIds": [
"OFI-8c1e2f04-9d21-4b7a-b3c2-77c101f1a001-0"
]
}
]
}

Response

The updated OrderView projection — the same shape as order retrieve.

{
"data": {
"order": {
"orderId": "ABC123",
"recordLocator": "ABC123",
"ownerCode": "MX",
"statusCode": "CONFIRMED",
"creationDateTime": "2026-07-01T15:04:05Z",
"totalPrice": {
"total": {
"amount": 99,
"currency": "USD"
},
"base": {
"amount": 91.5,
"currency": "USD"
},
"taxes": [
{
"code": "US",
"amount": {
"amount": 7.5,
"currency": "USD"
}
}
],
"fees": []
},
"items": [
{
"itemId": "OOI-FL-eyJ2IjoxfQ",
"statusCode": "CONFIRMED",
"totalPrice": {
"total": {
"amount": 99,
"currency": "USD"
},
"base": {
"amount": 91.5,
"currency": "USD"
},
"taxes": [
{
"code": "US",
"amount": {
"amount": 7.5,
"currency": "USD"
}
}
],
"fees": []
},
"paxRefIds": [
"PAX-eyJ2IjoxfQ"
],
"segmentRefIds": [
"SEG-eyJ2IjoxfQ"
],
"fare": {
"fareBasisCode": "Y",
"cabinTypeCode": "Y",
"rbd": "Y",
"priceClassRefId": "EZU",
"bundleName": "Nice"
}
}
]
},
"services": [
{
"itemId": "SVR-eyJ2IjoxfQ",
"serviceId": "SVR-eyJ2IjoxfQ",
"code": "BAG1",
"name": "First checked bag",
"category": "baggage",
"ownerCode": "MX",
"totalPrice": {
"total": {
"amount": 35,
"currency": "USD"
},
"base": {
"amount": 35,
"currency": "USD"
},
"taxes": [],
"fees": []
},
"paxRefId": "PAX-eyJ2IjoxfQ",
"segmentRefId": "SEG-eyJ2IjoxfQ",
"attributes": {
"pieceCount": 1
}
}
],
"pax": [
{
"paxId": "PAX-eyJ2IjoxfQ",
"ptc": "ADT",
"name": {
"givenName": "Jane",
"surname": "Doe"
}
}
],
"journeys": [
{
"journeyId": "JOU-eyJ2IjoxfQ",
"origin": "SLC",
"destination": "CHS",
"departureDateTime": "2026-09-15T08:00:00",
"arrivalDateTime": "2026-09-15T12:00:00",
"duration": "PT4H",
"stops": 0,
"segments": [
{
"segmentId": "SEG-eyJ2IjoxfQ",
"marketingCarrier": "MX",
"marketingFlightNumber": "101",
"origin": "SLC",
"destination": "CHS",
"departureDateTime": "2026-09-15T08:00:00",
"arrivalDateTime": "2026-09-15T12:00:00",
"cabinTypeCode": "Y",
"rbd": "Y"
}
]
}
],
"payments": [],
"tickets": []
},
"error": null
}

Change order errors

CodeHTTP statusCause
ERR-1002404Unsupported version segment in the path.
ERR-1005422Request validation failed: empty body, empty passenger patch.
ERR-4000404Order not found.
ERR-4002400Requested change could not be applied.
ERR-4006400Referenced journey not found on the order.
ERR-6000422Payment method not supported.
ERR-6001422Card brand not supported.
ERR-6002400Payment rejected.
ERR-6005503Payment processing timed out.
ERR-8000401Missing or invalid API key or bearer token.
ERR-8001403API key lacks full transaction permissions.
ERR-8002503Authentication store unavailable.
ERR-9003500Booking change failed upstream.