{
"title": "Order Status Callback",
"description": "Callback payload for order status changes",
"type": "object",
"additionalProperties": true,
"required": [
"code",
"msg",
"data"
],
"properties": {
"code": {
"type": "integer",
"description": "Callback status code. Normal notification uses 200",
"examples": [200]
},
"msg": {
"type": "string",
"description": "Order status message",
"examples": ["Issued"]
},
"data": {
"oneOf": [
{
"$ref": "#/definitions/order"
},
{
"type": "null"
}
],
"description": "Full order details. Normally an order object; may be null in exceptional cases"
}
},
"definitions": {
"order": {
"type": "object",
"additionalProperties": true,
"required": [
"id",
"orderType",
"status",
"currency",
"externalOrderId",
"journeys",
"passengers",
"priceDetail"
],
"properties": {
"id": {
"type": "string",
"description": "Simplifly order ID",
"examples": ["FOL929GXXZ"]
},
"orderType": {
"type": "string",
"description": "Order type",
"enum": [
"origin",
"change",
"refund",
"void"
]
},
"status": {
"type": "string",
"description": "Current order status",
"enum": [
"reviewing",
"to_be_paid",
"reserved",
"proceeding",
"issued",
"failed",
"failed_reimbursing",
"failed_reimbursed",
"chg_reviewing",
"chg_rejected",
"chg_to_be_paid",
"chg_to_be_confirm",
"chg_proceeding",
"changed",
"rfd_reviewing",
"rfd_rejected",
"rfd_to_be_confirm",
"rfd_to_be_paid",
"rfd_proceeding",
"refunded_reimbursing",
"refunded_reimbursed",
"void_proceeding",
"void_rejected",
"voided_reimbursing",
"voided_reimbursed",
"closed",
"canceled"
]
},
"source": {
"type": "string",
"description": "Order source"
},
"solutionId": {
"type": "string",
"description": "Shopping solution ID"
},
"currency": {
"type": "string",
"description": "Order currency",
"examples": ["CNY"]
},
"validatingCarrier": {
"type": "string",
"description": "Validating or ticketing carrier"
},
"originOrderId": {
"type": "string",
"description": "Original order ID"
},
"parentOrderId": {
"type": "string",
"description": "Parent order ID"
},
"externalOrderId": {
"type": "string",
"description": "Distributor's external order ID"
},
"contactName": {
"type": "string",
"description": "Contact name"
},
"contactEmail": {
"type": "string",
"description": "Contact email"
},
"contactRegion": {
"type": "string",
"description": "Phone country or region code"
},
"contactPhone": {
"type": "string",
"description": "Contact phone number"
},
"rejectReason": {
"type": "string",
"description": "Failure or rejection reason"
},
"isHolding": {
"type": "boolean",
"description": "Whether the order is being held or processed"
},
"incomeId": {
"type": "integer",
"description": "Transaction or income record ID"
},
"lastActionTime": {
"type": "string",
"description": "Last action time"
},
"lastTicketingTime": {
"type": "string",
"description": "Latest ticketing deadline"
},
"isVoidPermitted": {
"type": "boolean",
"description": "Whether voiding is permitted"
},
"lastVoidTime": {
"type": "string",
"description": "Latest voiding deadline"
},
"createdAt": {
"type": "string",
"description": "Order creation time"
},
"updatedAt": {
"type": "string",
"description": "Order update time"
},
"completedAt": {
"type": "string",
"description": "Order completion time"
},
"journeys": {
"type": "array",
"description": "Order journeys",
"items": {
"$ref": "#/definitions/journey"
}
},
"passengers": {
"type": "array",
"description": "Order passengers",
"items": {
"$ref": "#/definitions/passenger"
}
},
"priceDetail": {
"$ref": "#/definitions/priceDetail",
"description": "Order price details"
},
"priceExchangeRates": {
"type": "array",
"description": "Price exchange rates",
"items": {
"$ref": "#/definitions/priceExchangeRate"
}
},
"fareRules": {
"type": ["object", "null"],
"description": "Fare rules"
}
}
},
"journey": {
"type": "object",
"additionalProperties": true,
"properties": {
"id": {
"type": "integer",
"description": "Journey database ID"
},
"orderId": {
"type": "string",
"description": "Order ID"
},
"origin": {
"type": "string",
"description": "Journey origin airport code"
},
"destination": {
"type": "string",
"description": "Journey destination airport code"
},
"departureDate": {
"type": "string",
"description": "Departure date"
},
"departureTime": {
"type": "string",
"description": "Departure time"
},
"departureTimeZo": {
"type": "string",
"description": "Departure timezone information"
},
"arrivalDate": {
"type": "string",
"description": "Arrival date"
},
"arrivalTime": {
"type": "string",
"description": "Arrival time"
},
"duration": {
"type": "string",
"description": "Total journey duration"
},
"transferNum": {
"type": "integer",
"description": "Number of transfers"
},
"segments": {
"type": "array",
"description": "Journey segments",
"items": {
"$ref": "#/definitions/segment"
}
}
}
},
"segment": {
"type": "object",
"additionalProperties": true,
"properties": {
"id": {
"type": "integer",
"description": "Segment database ID"
},
"orderId": {
"type": "string",
"description": "Order ID"
},
"coreSegmentId": {
"type": "string",
"description": "Core segment ID"
},
"journeyIndex": {
"type": "integer",
"description": "Journey index"
},
"index": {
"type": "integer",
"description": "Segment index"
},
"cabinClass": {
"type": "string",
"description": "Cabin class"
},
"cabinCode": {
"type": "string",
"description": "Cabin code"
},
"subCabinCode": {
"type": "string",
"description": "Sub-cabin code"
},
"fareBasisCode": {
"type": "string",
"description": "Fare basis code"
},
"stayTime": {
"type": "string",
"description": "Transfer stay time"
},
"pnr": {
"type": "string",
"description": "PNR"
},
"airlinePnr": {
"type": "string",
"description": "Airline PNR"
},
"baggageRules": {
"type": "array",
"description": "Baggage rules",
"items": {
"type": "object",
"additionalProperties": true
}
},
"coreSegment": {
"$ref": "#/definitions/coreSegment",
"description": "Core segment information"
}
}
},
"coreSegment": {
"type": "object",
"additionalProperties": true,
"properties": {
"id": {
"type": "string",
"description": "Core segment ID"
},
"airline": {
"type": "string",
"description": "Marketing airline"
},
"flightNo": {
"type": "string",
"description": "Flight number"
},
"isCodeShare": {
"type": "boolean",
"description": "Whether this is a codeshare flight"
},
"opAirline": {
"type": "string",
"description": "Operating airline"
},
"opFlightNo": {
"type": "string",
"description": "Operating flight number"
},
"equipment": {
"type": "string",
"description": "Aircraft equipment"
},
"departure": {
"type": "string",
"description": "Departure airport code"
},
"departureDate": {
"type": "string",
"description": "Departure date"
},
"departureTime": {
"type": "string",
"description": "Departure time"
},
"departureTerminal": {
"type": "string",
"description": "Departure terminal"
},
"arrival": {
"type": "string",
"description": "Arrival airport code"
},
"arrivalDate": {
"type": "string",
"description": "Arrival date"
},
"arrivalTime": {
"type": "string",
"description": "Arrival time"
},
"arrivalTerminal": {
"type": "string",
"description": "Arrival terminal"
},
"distance": {
"type": "number",
"description": "Segment distance"
},
"flightTime": {
"type": "string",
"description": "Flight duration"
},
"stopovers": {
"type": "array",
"description": "Stopover information",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
},
"passenger": {
"type": "object",
"additionalProperties": true,
"properties": {
"id": {
"type": "integer",
"description": "Passenger ID"
},
"parentPassengerId": {
"type": "integer",
"description": "Parent passenger ID"
},
"orderId": {
"type": "string",
"description": "Order ID"
},
"type": {
"type": "string",
"description": "Passenger type",
"enum": ["adult", "child", "infant"]
},
"index": {
"type": "integer",
"description": "Passenger index"
},
"associatedIndex": {
"type": "integer",
"description": "Associated passenger index"
},
"surname": {
"type": "string",
"description": "Passenger surname"
},
"givenNames": {
"type": "string",
"description": "Passenger given names"
},
"gender": {
"type": "string",
"description": "Passenger gender"
},
"birthday": {
"type": "string",
"description": "Date of birth"
},
"nationality": {
"type": "string",
"description": "Nationality"
},
"travelDocument": {
"type": "string",
"description": "Travel document type"
},
"travelDocumentExpireDate": {
"type": "string",
"description": "Travel document expiry date"
},
"travelDocumentNumber": {
"type": "string",
"description": "Travel document number"
},
"email": {
"type": "string",
"description": "Passenger email"
},
"region": {
"type": "string",
"description": "Phone region code"
},
"phone": {
"type": "string",
"description": "Passenger phone number"
},
"airline": {
"type": "string",
"description": "Airline membership information"
},
"cardNo": {
"type": "string",
"description": "Membership card number"
},
"tickets": {
"type": "array",
"description": "Passenger tickets",
"items": {
"$ref": "#/definitions/ticket"
}
}
}
},
"ticket": {
"type": "object",
"additionalProperties": true,
"properties": {
"id": {
"type": "integer",
"description": "Ticket record ID"
},
"parentTicketId": {
"type": "integer",
"description": "Parent ticket ID"
},
"passengerId": {
"type": "integer",
"description": "Passenger ID"
},
"segmentId": {
"type": "integer",
"description": "Segment ID"
},
"ticketNo": {
"type": "string",
"description": "Ticket number"
},
"pnr": {
"type": "string",
"description": "PNR"
},
"issueDate": {
"type": "string",
"description": "Issue date"
},
"expireDate": {
"type": "string",
"description": "Ticket expiry date"
},
"status": {
"type": "string",
"description": "Ticket status"
},
"remark": {
"type": "string",
"description": "Ticket remark"
},
"voidOrderId": {
"type": "string",
"description": "Void order ID"
},
"refundOrderId": {
"type": "string",
"description": "Refund order ID"
},
"changeOrderId": {
"type": "string",
"description": "Change order ID"
}
}
},
"priceDetail": {
"type": "object",
"additionalProperties": true,
"properties": {
"productType": {
"type": "string",
"description": "Product type"
},
"product": {
"type": "object",
"description": "Product attributes",
"additionalProperties": true
},
"priceList": {
"type": "array",
"description": "Price breakdown. The structure depends on orderType",
"items": {
"type": "object",
"additionalProperties": true
}
},
"priceTotal": {
"type": "number",
"description": "Total order price"
},
"transactionFee": {
"type": "number",
"description": "Transaction fee"
},
"ancillaries": {
"type": "array",
"description": "Ancillary services such as baggage or seat selection",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
},
"priceExchangeRate": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Exchange rate type",
"enum": ["sale", "cost"]
},
"currency": {
"type": "string",
"description": "Original currency"
},
"standardCurrency": {
"type": "string",
"description": "Standard currency"
},
"exchangeRate": {
"type": "number",
"description": "Exchange rate"
}
}
}
}
}