Change | SubmitChange
Submits a change request for an existing booking. Within a single change workflow, changeType, changeReason, and updatedSegments must remain the same. If different passengers require different changes, submit separate change requests.
For voluntary date change confirmation, if SearchDateChangeOptions is used, partners should pass searchId, routingKey, and fareKey from its response to create the change order. In this flow, pricing information and updated itinerary information are derived by the system based on the selected keys, so they do not need to be submitted again.
If SearchDateChangeOptions is not used, partners can still submit the change request directly using the original pricing / quotation workflow. In this case, updatedSegments must be provided.
Notice:
Product Scope: FareMarket and TechHub
POST
/flight/changeParameter
| Field | Mandatory | Type | Scope | Description |
|---|---|---|---|---|
| action | required |
String | SubmitChange | |
| key | required |
String | API security key applied from AeroHub. | |
| signature | required |
String | Refer to the Guidelines for generation. | |
| timestamp | required |
Int | The timestamp field should be a 10-digit Unix timestamp in seconds, used for encryption and data verification. |
|
| version | optional |
String | API version information, e.g. 3.2.0. |
|
| request | required |
Object | ||
| orderNum | required |
String | Original order number generated by the Booking API Commit operation. | |
| changeType | required |
String | Type of change request: VOLUNTARY: Voluntary change requested by the customer. INVOLUNTARY: Involuntary change caused by airline or operational reasons. INFORMATION_UPDATER: Passenger information update. OTHER: Other reason. Refer to appendix ‘Change Type List’ for details. |
|
| changeReason | optional |
String | Reason for the change request: FLIGHT_CHANGE: flight change FLIGHT_CANCEL: flight cancel OTHER: other reasons This field is required when changeType is INVOLUNTARY.Refer to appendix ‘Change Reason List’ for details. |
|
| searchId | optional |
String | Unique ID returned by SearchDateChangeOptions. Required when confirming a flight option returned by SearchDateChangeOptions. Not required for partners using the original pricing / quotation workflow. |
|
| routingKey | optional |
String | Unique key information for a routing returned by SearchDateChangeOptions. Required when confirming a flight option returned by SearchDateChangeOptions. Not required for partners using the original pricing / quotation workflow. |
|
| fareKey | optional |
String | Unique key information for a fare returned by SearchDateChangeOptions. Required when confirming a flight option returned by SearchDateChangeOptions. Not required for partners using the original pricing / quotation workflow. |
|
| passengers | required |
Object[] | Passenger information for change. | |
| originalPassengers | required |
Object | Original passenger information. | |
| firstName | required |
String | Passenger first name. If there is a middle name, connect it with a space like firstname middlename. |
|
| lastName | required |
String | Passenger last name. | |
| ageType | required |
Int | Passenger type: 0: adult 1: child 2: infant |
|
| birthday | optional |
String | Birthday, formatted as YYYYMMDD. |
|
| updatedPassengers | optional |
Object | Updated passenger information. This field is required when changeType is INFORMATION_UPDATER. |
|
| firstName | required |
String | Passenger first name. If there is a middle name, connect it with a space like firstname middlename. |
|
| lastName | required |
String | Passenger last name. | |
| ageType | required |
Int | Passenger type: 0: ADT (Adult) 1: CHD (Child) 2: INF (Infant) |
|
| birthday | optional |
String | Passenger birthday, formatted as YYYYMMDD. |
|
| gender | required |
String | Passenger gender: M: male F: female |
|
| nationality | optional |
String | Passenger nationality, 2-letter country code. | |
| cardNum | optional |
String | Passenger identity number, maximum 15 characters. | |
| cardExpired | optional |
String | Expiration date of the identity card, formatted as YYYYMMDD. |
|
| segments | optional |
Object[] | Itinerary information for change. This field is required only when partners use the original pricing / quotation workflow and do not use SearchDateChangeOptions. When searchId + routingKey + fareKey are provided, the system derives the itinerary from the selected keys, so this field should be omitted. |
|
| originalSegments | required |
Object[] | Original itinerary information. | |
| flightNumber | required |
String | Flight number, e.g. CA123. |
|
| depAirport | required |
String | Departure airport, IATA 3-letter code. | |
| arrAirport | required |
String | Arrival airport, IATA 3-letter code. | |
| updatedSegments | required |
Object[] | Updated itinerary information. Required only when partners use the original pricing / quotation workflow and do not use SearchDateChangeOptions. |
|
| flightNumber | required |
String | Flight number, e.g. CA123. |
|
| depAirport | required |
String | Departure airport, IATA 3-letter code. | |
| arrAirport | required |
String | Arrival airport, IATA 3-letter code. | |
| newDepartureDate | required |
String | New departure date, formatted as YYYYMMDD. |
|
| depTime | optional |
String | Departure date and time, formatted as YYYYMMDDHHMM. E.g. 201203100315 represents 2012/03/10 03:15. |
|
| arrTime | optional |
String | Arrival date and time, formatted as YYYYMMDDHHMM. E.g. 201203101305 represents 2012/03/10 13:05. |
|
| notificationEmail | optional |
String | Email address for receiving updates and status for change, one-time valid. If none is specified, the mailbox in the configuration file will be used. | |
| customerRemark | optional |
String | Customer remarks. | |
| attachments | optional |
Object[] | Attachment. This field is required when changeType is INFORMATION_UPDATER. Supported file types: JPG, JPEG, PNG, PDF. Maximum single file size: 10 MB. |
|
| name | required |
String | File name with extension. | |
| url | required |
String | This field uses the url returned by the UploadAttachment interface. |
Request_Example(Using SearchDateChangeOptions):
{ "action": "SubmitChange", "key": "n93mPT7WzN6cLKC2", "signature": "YhQ2EoBQOfOnf/EOnuuuK5i+K+ncydeQhjFpoXYiEMo=", "timestamp": 1685116516, "version": "3.2.0", "request": { "orderNum": "1234567890", "changeType": "VOLUNTARY", "searchId": "dc47c40c43783d1608bbf8d667486257ac", "routingKey": "17732848903794181", "fareKey": "farekey-outbound-001", "passengers": [ { "originalPassengers": { "firstName": "John", "lastName": "Doe", "ageType": 0, "birthday": "19900101" } }, { "originalPassengers": { "firstName": "Tom", "lastName": "Doe", "ageType": 1, "birthday": "20160101" } } ], "notificationEmail": "example@example.com", "customerRemark": "Please process this rescheduling as soon as possible." } }
Request_Example(Original pricing / quotation workflow):
{ "action": "SubmitChange", "key": "n93mPT7WzN6cLKC2", "signature": "YhQ2EoBQOfOnf/EOnuuuK5i+K+ncydeQhjFpoXYiEMo=", "timestamp": 1685116516, "version": "3.2.0", "request": { "orderNum": "1234567890", "changeType": "VOLUNTARY", "passengers": [ { "originalPassengers": { "firstName": "John", "lastName": "Doe", "ageType": 0, "birthday": "19900101" } } ], "segments": [ { "originalSegments": [ { "flightNumber": "AI133", "depAirport": "LHR", "arrAirport": "BOM" }, { "flightNumber": "AI2356", "depAirport": "BOM", "arrAirport": "BLR" } ], "updatedSegments": [ { "flightNumber": "AI132", "depAirport": "LHR", "arrAirport": "BOM", "newDepartureDate": "20260522", "depTime": "202605221130", "arrTime": "202605230045" }, { "flightNumber": "AI2356", "depAirport": "BOM", "arrAirport": "BLR", "newDepartureDate": "20260523", "depTime": "202605231000", "arrTime": "202605231145" } ] } ], "notificationEmail": "example@example.com", "customerRemark": "Please process this rescheduling as soon as possible." } }
Request_Example(Passenger information update):
{ "action": "SubmitChange", "key": "n93mPT7WzN6cLKC2", "signature": "YhQ2EoBQOfOnf/EOnuuuK5i+K+ncydeQhjFpoXYiEMo=", "timestamp": 1685116516, "version": "3.2.0", "request": { "orderNum": "1234567890", "changeType": "INFORMATION_UPDATER", "passengers": [ { "originalPassengers": { "firstName": "Jhon", "lastName": "Doe", "ageType": 0, "birthday": "19900101" }, "updatedPassengers": { "firstName": "John", "lastName": "Doe", "ageType": 0, "birthday": "19900101", "gender": "M", "nationality": "IN", "cardNum": "P12345678", "cardExpired": "20300101" } } ], "attachments": [ { "name": "passport.jpg", "url": "http://cdn.letsflytech.com/upload%2F2025121811%2F2025121811_0.JPG" } ], "notificationEmail": "example@example.com", "customerRemark": "Please update passenger document information." } }
Response
| Field | Type | Description |
|---|---|---|
| status | Int | 0: Succeeded Others: Failed Refer to Status Code below for details. |
| msg | String | Return message, maximum 64 characters. |
| changeNum | String | Change order number. |
Success-Response:
{ "status": 0, "msg": "Success", "changeNum": "C20241018101144760" }
Status Code
| Name | Description |
|---|---|
| 7700 | Order does not exist |
| 7701 | Passenger does not exist |
| 7702 | The rescheduling for {firstName/lastName} is already in progress. |
| 7703 | Failed to create a change |
Error-Response
{ "status": 1000, "msg": "General system error" }
Last editor:admin Update time:2026-03-19 18:20