Split order
POST /json/{version}/orders/{orderId}/split moves the named passengers to a new order. Both orders keep the same itinerary; payments divide proportionally. The new order gets its own record locator.
orderId is the order ID or record locator (PNR). The NDC equivalent is an IATA_OrderChangeRQ with UpdatePax/PaxSharingPref.
Authorization
Split order requires full transaction (book) permissions on the API key.
Request
| Parameter | Location | Description |
|---|---|---|
orderId | path | Order ID or record locator (PNR). |
ownerCode | query | Optional airline owner code. Defaults to MX. |
passengerIds | body | Non-empty array of OrderView passenger reference IDs (for example ADT-2, CHD-1) to move to the new order. |
Lap infants are not listed — they follow their associated adult automatically.
Validation rules
| Rule | Error |
|---|---|
passengerIds is empty | ERR-1005 |
| A passenger reference is not found on the order | ERR-1004 |
| A lap infant ID is listed directly | ERR-1004 |
| All seated passengers would move (none stay) | ERR-1005 |
| Either resulting order would have no adult | ERR-7009 |
| Any journey has already departed | ERR-4007 |
Response
data contains two full OrderView projections:
| Field | Description |
|---|---|
order | The original order, now containing the passengers who stayed. The warnings field on the order header identifies the new order ID and record locator. |
childOrder | The new order containing the passengers that were moved. |
Both fields have the same structure as the order retrieve response.
Split order errors
| Code | HTTP status | Cause |
|---|---|---|
ERR-1002 | 404 | Unsupported version segment in the path. |
ERR-1004 | 400 | A passenger reference is unknown on this order, or a lap infant was named directly. |
ERR-1005 | 422 | passengerIds is empty, or a passenger constraint would be violated. |
ERR-4000 | 404 | Order not found. |
ERR-4007 | 400 | One or more journeys have already departed. |
ERR-7009 | 422 | The split would leave a child without an adult on either resulting order. |
ERR-8000 | 401 | Missing or invalid API key or bearer token. |
ERR-8001 | 403 | API key lacks full transaction permissions. |
ERR-8002 | 503 | Authentication store unavailable. |
ERR-9003 | 500 | Booking split failed upstream. |