1. Refunds and Changes
CTO OPEN API Document
English
  • English
  • 中文
  • Default module
    • Flight
      • Search and Pricing
        • Search Flights
        • Price Specified Segments
        • Get All-Cabin Prices
        • Verify a Solution
        • Get Fare and Baggage Rules
      • Orders
        • Create an Original Flight Order
        • List Flight Orders
        • Get Flight Order Details
        • Cancel a Flight Order
        • Get a Flight Order by External Order Number
        • Pay for a Flight Order
      • Refunds and Changes
        • Check Refund and Change Availability
          POST
        • Search and Price Flight Changes
          POST
        • Create a Flight Change Order
          POST
        • Query Refundable Flight Amounts
          POST
        • Create a Flight Refund Order
          POST
        • Confirm a Flight Refund Order
          POST
      • Services and Status
        • Query Through-Checked and Transit Baggage
        • Query Flight Ticket Status
        • Download an Electronic Ticket Itinerary
      • Account
        • Query Flight Account Balance
    • Train
      • Search and Booking
        • Search Trains
        • Check Seat Availability and Price
        • Get Booking Requirements
        • Create Train Order
      • Orders
        • Get Train Order
        • Get Order Refund and Change Conditions
        • Confirm Pre-sale Order
        • Pay Order
        • Cancel Order
      • Trains and Stations
        • Get Stop Stations by Order
        • Get Stop Stations by Train Number
        • Search Cities and Stations
        • Get Cities and Stations in Bulk
        • Get Exchange Rates
      • Refunds and Changes
        • Estimate Change Fees
        • Estimate Refund Fees
        • Request a Change
        • Request a Refund
        • Confirm Change
        • Confirm Refund
      • 12306
        • Get 12306 Contacts
        • Get 12306 Payment Form
        • Log in to 12306
        • Send 12306 SMS Code
        • Verify 12306 SMS Code
        • Edit 12306 Passenger
        • Perform 12306 Face Verification
        • Submit Foreign Passport Verification
        • Get Foreign Passport Verification Status
      • Partner Sync
        • Incrementally Sync Cities
        • Incrementally Sync Stations
      • Tickets
        • Download PDF Ticket
        • Get HTML Ticket
        • Get Tickets by Type
    • Schemas
      • request
        • request.FlightShoppingRequest
        • request.PayFlightOrderRequest
        • request.ChangeFlightOrderRequests
        • request.CreateFlightOriginOrderRequest
        • request.FlightChangeSearchRequest
        • request.RefundFlightOrderRequest
      • consts
        • consts.CabinClass
        • consts.RefundReason
        • consts.FlightOrderStatus
        • consts.FlightOrderType
        • consts.FlightTicketStatus
        • consts.FlightProductType
        • consts.FlightInvoiceType
        • consts.FlightTaxType
        • consts.PassengerEligibility
      • model
        • model.FlightJourneyCore
        • model.PassengerCountRequest
        • model.ChangeSegment
        • model.PassengerFlightOrder
        • model.ChangeShoppingResult
        • model.ChangeShoppingSegment
        • model.FlightSegmentInfo
        • model.BaggageRule
        • model.BaggageRuleDetail
        • model.FlightCoreSegmentCache
        • model.StopOver
        • model.OrderDetail
        • model.FareRule
        • model.FlightJourney
        • model.FlightSegmentWithCoreSegment
        • model.CoreSegmentDetail
        • model.FlightScheduleChange
        • model.FlightPassengerTickets
        • model.FlightTicket
        • model.PriceDetail
        • model.PriceInFlightOriginOrder
        • model.PriceInFlightChangeOrder
        • model.PriceInFlightRefundOrder
        • model.PriceInFlightVoidOrder
        • model.FlightSolutionResp
        • model.FlightJourneyResp
        • model.FlightPriceDetail
        • model.FlightPrice
        • model.FlightTax
        • model.FlightSolutionLimitation
        • model.FlightLimitAgePair
      • Schemas
        • consts.PassengerType
        • consts.Gender
        • consts.TrainIssueWay
        • consts.TravelDocumentType
        • consts.TrainOrderStatus
        • consts.TrainOrderTicketStatus
        • consts.TrainPassengerStatus
        • consts.TrainRefundStatus
        • dto.PaginationList-array_resp_TrainOrderResp
        • resp.TrainOrderResp
        • resp.TrainOriginTicketDetail
        • req.TrainOrderListReq
        • response.Response-dto_PaginationList-array_resp_TrainOrderResp
        • model.CreateTrainOriginOrderReq
        • response.Response-resp_TrainOrderResp
        • resp.TrainChangeDetail
        • resp.TrainChangeTicketDetail
        • resp.StationDetail
        • model.ShoppingCNTrainStationsResp
        • req.TrainShoppingReq
        • response.Response-array_model_ShoppingCNTrainStationsResp
        • resp.Seats
        • resp.StationInfo
        • response.Response-array_resp_TrainShoppingResp
        • resp.TrainShoppingResp
      • ApiResponseBase
      • ErrorResponse
      • EmptyObject
      • CabinClass
      • PassengerType
      • Gender
      • TravelDocument
      • AllianceCode
      • TransportType
      • RefundReason
      • ChangeReason
      • FlightOrderType
      • FlightOrderStatus
      • PaymentChannel
      • ConfirmationType
      • ConfirmationIata
      • PassengerInfo
      • FlightJourney
      • PassengerCount
      • AccountCode
      • ShoppingRequirements
      • ShoppingVirtualInterlineConfig
      • ShoppingConfigs
      • OpenAPIFlightShoppingReq
      • PricingReqSegment
      • FlightPricingReq
      • AllCabinPriceReq
      • SolutionValidateReq
      • FareRulesReq
      • CreateFlightOriginOrderRequest
      • PassengerForCreateOriginOrder
      • PayFlightOrderReq
      • RefundChangeAvailabilityReq
      • ChangeSearchReq
      • ChangeSearchPassenger
      • ChangeSearchJourney
      • CreateChangeOrderReq
      • ChangeSegmentItem
      • ChangeNewSegment
      • RefundMoneySearchReq
      • CreateFlightRefundOrderOpenAPIRequest
      • BaggageTransitReq
      • BaggageTransitLeg
      • BaggageTransitSegment
      • BaggageTransitStopInfo
      • TicketStatusReq
      • TicketStatusPassenger
      • DownloadAirTicketItineraryRequest
      • ConfirmationSheetPrice
      • OpenAPIShoppingResp
      • OpenAPICoreSegment
      • StopOver
      • OpenAPISolutionResp
      • OpenAPIPriceDetail
      • OpenAPILimitInfo
      • FlightLimitAgePair
      • FlightSolutionGroupInfo
      • OpenAPIPrice
      • OpenAPITax
      • OpenAPIJourneyResp
      • OpenAPISegmentInfo
      • OpenAPIBaggageRule
      • BaggageRuleDetail
      • OpenAPIBaggageRules
      • OpenAPIFareRules
      • OpenAPIFareRule
      • OpenAPIPricingResp
      • OpenAPIPricingSolutionResp
      • OpenAPIPricingPriceDetail
      • OpenAPIPricingPrice
      • OpenAPIPricingJourneyResp
      • OpenAPIPricingSegmentInfo
      • OpenAPIVerificationResp
      • OpenAPIFareRulesResp
      • OpenAPIOrderResp
      • OpenAPIOrderJourney
      • OpenAPIOrderSegment
      • OpenAPIOrderCoreSegment
      • OpenAPIOrderPassenger
      • OpenAPIOrderTicket
      • OpenAPIOrderPriceDetail
      • OpenAPIOrderPrice
      • OpenAPIOriginOrderPrice
      • OpenAPIChangeOrderPrice
      • OpenAPIRefundOrderPrice
      • OpenAPIOrderListResp
      • OpenAPIRefundChangeAvailabilityResp
      • OpenAPIRefundChangeAvailabilityPassenger
      • OpenAPIAskChangeDetail
      • OpenAPIAskRefundDetail
      • OpenAPIChangeSearchResp
      • OpenAPIChangeSolutionResp
      • OpenAPIChangePriceDetail
      • OpenAPIChangePrice
      • OpenAPIRefundMoneySearchResp
      • OpenAPIBaggageTransitLeg
      • OpenAPIBaggageTransitSegmentInfo
      • TicketStatusResp
      • TicketStatusItem
      • TicketCouponStatus
      • BalanceResp
      • TrainApiResponseBase
      • TrainErrorResponse
      • TrainConnectionRegion
      • TrainPriceBasis
      • TrainOrderStatus
      • TrainTicketStatus
      • TrainTicketType
      • TrainPassengerAttribute
      • LocalizedName
      • TrainShoppingLocation
      • TrainShoppingRequest
      • TrainStationWithDateTime
      • TrainCarrier
      • TrainShoppingFeature
      • TrainPassengerTypeInfo
      • TrainSeatInfo
      • TrainShoppingSegment
      • TrainShoppingJourney
      • TrainShoppingData
      • TrainPrice
      • TrainAvailabilityRequest
      • TrainAvailabilityData
      • TrainBookingRequirementsData
      • TrainSeatPreference
      • TrainOrderContactRequest
      • TrainOrderContact
      • TrainPassengerRequest
      • Train12306Account
      • TrainCreateOrderRequest
      • TrainCreateChangeRequest
      • TrainCreateRefundRequest
      • TrainChangeEstimateRequest
      • TrainRefundEstimateRequest
      • TrainPassenger
      • TrainOrderSegment
      • TrainOrderTicket
      • TrainOrderJourney
      • TrainOrder
      • TrainConditionFee
      • TrainCondition
      • TrainOrderConditions
      • TrainRefundEstimateItem
      • TrainRefundEstimateData
      • TrainChangeEstimateItem
      • TrainChangeEstimateData
      • TrainStopStation
      • Train12306AccountRequest
      • Train12306Contact
      • Train12306PayFormRequest
      • Train12306PayFormData
      • Train12306LoginRequest
      • Train12306PassengerInfo
      • Train12306LoginData
      • Train12306SendSmsRequest
      • Train12306SmsVerifyRequest
      • Train12306SmsSendData
      • Train12306OperationData
      • Train12306PassengerDto
      • Train12306EditPassengerRequest
      • Train12306FaceImage
      • Train12306FaceVideo
      • Train12306FaceVerifyRequest
      • Train12306ForeignPassportRequest
      • Train12306PassportProcessRequest
      • Train12306PassportCheckData
      • TrainStationInfo
      • TrainCityInfo
      • TrainStationSearchCity
      • TrainStationSearchData
      • TrainCitiesStationsData
      • TrainOrderTicketFile
      • TrainSyncRequest
      • TrainSyncCity
      • TrainSyncStation
      • TrainSyncCitiesData
      • TrainSyncStationsData
      • TrainShoppingApiResponse
      • TrainAvailabilityApiResponse
      • TrainBookingRequirementsApiResponse
      • TrainOrderApiResponse
      • TrainStopStationsApiResponse
      • TrainConditionsApiResponse
      • TrainChangeEstimateApiResponse
      • TrainRefundEstimateApiResponse
      • TrainEmptyApiResponse
      • Train12306ContactsApiResponse
      • Train12306PayFormApiResponse
      • Train12306LoginApiResponse
      • Train12306SmsSendApiResponse
      • Train12306SmsVerifyApiResponse
      • Train12306OperationApiResponse
      • Train12306PassportCheckApiResponse
      • TrainSyncCitiesApiResponse
      • TrainSyncStationsApiResponse
      • TrainTicketsApiResponse
      • TrainStationSearchApiResponse
      • TrainCitiesStationsApiResponse
      • TrainExchangeRatesApiResponse
      • ShoppingApiResponse
      • PricingApiResponse
      • VerificationApiResponse
      • FareRulesApiResponse
      • OrderApiResponse
      • OrderListApiResponse
      • RefundChangeAvailabilityApiResponse
      • ChangeSearchApiResponse
      • RefundMoneySearchApiResponse
      • BaggageTransitApiResponse
      • TicketStatusApiResponse
      • BalanceApiResponse
  • berlogic
    • authenticate
      POST
    • preparePayment
      POST
    • finishBooking
      POST
    • checkPricing
      POST
    • createReservation
      POST
    • priceBrandFamily
      POST
    • searchAeroexpressSeatInfo
      POST
    • searchExchanges
      POST
    • refundBooking
      POST
    • searchFlights
      POST
    • calculateInsurance
      POST
    • sendEmail
      POST
    • cancelReservation
      POST
    • voidTickets
      POST
    • updatePassenger
      POST
    • getBookingRefundCost
      POST
    • bookAdditionalServices
      POST
    • refundPolicy
      POST
    • changePassword
      POST
    • reversePolicy
      POST
    • searchRemarks
      POST
    • issuePolicy
      POST
    • exchangeBooking
      POST
    • searchSchedule
      POST
    • priceAdditionalServices
      POST
    • searchAeroexpressTrainInfo
      POST
  1. Refunds and Changes

Check Refund and Change Availability

POST
/openapi/v3/flight/orders/refund-change-availability
Determine refund, change, and void availability from the order and passenger ticket status, and return reasons when an action is unavailable.

Request

Authorization
API Key
Add parameter in header
code
Example:
code: ********************
API Key
Add parameter in header
timestamp
Example:
timestamp: ********************
API Key
Add parameter in header
signature
Example:
signature: ********************
or
Body Params application/jsonRequired

Example
{
    "orderId": "FO202607090001",
    "actionCode": "CHANGE",
    "checkTime": "2026-07-09T12:00:00+08:00"
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/openapi/v3/flight/orders/refund-change-availability' \
--header 'code: <api-key>' \
--header 'timestamp: <api-key>' \
--header 'signature: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "orderId": "FO202607090001",
    "actionCode": "CHANGE",
    "checkTime": "2026-07-09T12:00:00+08:00"
}'

Responses

🟢200
application/json
Query completed successfully.
Bodyapplication/json

Example
{
    "code": 0,
    "message": "ok",
    "realErrorMsg": "",
    "data": {
        "id": "FO202607090001",
        "orderType": "origin",
        "status": "reviewing",
        "source": "api",
        "solutionId": "sol_2f4d3c",
        "currency": "CNY",
        "validatingCarrier": "CA",
        "originOrderId": "FO202607090001",
        "parentOrderId": "",
        "externalOrderId": "EXT-20260709-0001",
        "contactName": "Zhang San",
        "contactEmail": "zhangsan@example.com",
        "contactRegion": "86",
        "contactPhone": "13800138000",
        "rejectReason": "",
        "isHolding": false,
        "incomeId": 0,
        "lastActionTime": "2026-07-09 12:00:00",
        "lastTicketingTime": "2026-07-09 13:00:00",
        "isVoidPermitted": true,
        "lastVoidTime": "2026-07-09 23:59:59",
        "createdAt": "2026-07-09 10:00:00",
        "updatedAt": "2026-07-09 10:05:00",
        "completedAt": "",
        "journeys": [
            {
                "id": 201,
                "orderId": "FO202607090001",
                "origin": "BJS",
                "destination": "BKK",
                "departureDate": "2026-08-01",
                "departureTime": "08:00",
                "departureTimeZo": "Asia/Shanghai",
                "arrivalDate": "2026-08-01",
                "arrivalTime": "15:00",
                "duration": "7h00m",
                "transferNum": 1,
                "segments": [
                    {
                        "id": 301,
                        "orderId": "FO202607090001",
                        "coreSegmentId": "PEK-SHA-20260801-CA1234",
                        "journeyIndex": 0,
                        "index": 0,
                        "cabinClass": "economy",
                        "cabinCode": "Y",
                        "subCabinCode": "Y1",
                        "fareBasisCode": "YOWCN",
                        "stayTime": "2h10m",
                        "pnr": "ABC123",
                        "airlinePnr": "CA1ABC",
                        "baggageRules": [
                            {
                                "passengerType": "adult",
                                "personal": {
                                    "pieces": 1,
                                    "weight": 23,
                                    "unit": "KG",
                                    "dimension": "158CM",
                                    "description": "1 piece, 23KG"
                                },
                                "carryOn": {
                                    "pieces": 1,
                                    "weight": 23,
                                    "unit": "KG",
                                    "dimension": "158CM",
                                    "description": "1 piece, 23KG"
                                },
                                "checked": {
                                    "pieces": 1,
                                    "weight": 23,
                                    "unit": "KG",
                                    "dimension": "158CM",
                                    "description": "1 piece, 23KG"
                                }
                            }
                        ],
                        "coreSegment": {
                            "id": "PEK-SHA-20260801-CA1234",
                            "airline": "CA",
                            "flightNo": "CA1234",
                            "isCodeShare": false,
                            "opAirline": "CA",
                            "opFlightNo": "CA1234",
                            "equipment": "738",
                            "mealType": "Meal",
                            "departure": "PEK",
                            "departureDate": "2026-08-01",
                            "departureTime": "08:00",
                            "departureTerminal": "T3",
                            "arrival": "SHA",
                            "arrivalDate": "2026-08-01",
                            "arrivalTime": "10:20",
                            "arrivalTerminal": "T2",
                            "distance": 1080,
                            "flightTime": "2h20m",
                            "stopovers": [
                                {
                                    "city": "HGH",
                                    "airport": "HGH",
                                    "duration": "1h10m",
                                    "arrivalTime": "10:00",
                                    "departureTime": "11:10"
                                }
                            ]
                        },
                        "createdAt": "string",
                        "updatedAt": "string"
                    }
                ],
                "createdAt": "string",
                "updatedAt": "string"
            }
        ],
        "passengers": [
            {
                "id": 101,
                "parentPassengerId": 0,
                "orderId": "FO202607090001",
                "type": "adult",
                "index": 0,
                "associatedIndex": 0,
                "surname": "ZHANG",
                "givenNames": "SAN",
                "gender": "male",
                "birthday": "1990-01-01",
                "nationality": "CN",
                "travelDocument": "passport",
                "travelDocumentExpireDate": "2030-01-01",
                "travelDocumentNumber": "E12345678",
                "email": "passenger@example.com",
                "region": "86",
                "phone": "13800138000",
                "airline": "CA",
                "cardNo": "CA123456",
                "tickets": [
                    {
                        "id": 401,
                        "parentTicketId": 0,
                        "passengerId": 101,
                        "segmentId": 301,
                        "ticketNo": "9991234567890",
                        "pnr": "ABC123",
                        "issueDate": "2026-07-09",
                        "expireDate": "2027-07-09",
                        "status": "issued",
                        "remark": "",
                        "voidOrderId": "",
                        "refundOrderId": "",
                        "changeOrderId": "",
                        "createdAt": "string",
                        "updatedAt": "string"
                    }
                ],
                "createdAt": "string",
                "updatedAt": "string",
                "changeable": true,
                "refundable": true,
                "voidable": false,
                "used": false,
                "nonChangeableReason": "",
                "nonRefundableReason": "",
                "nonVoidReason": "",
                "askChangeDetails": [
                    {
                        "changeType": 1,
                        "changeFlightDateFrom": "2026-08-01",
                        "changeFlightDateTo": "2026-08-31"
                    }
                ],
                "askRefundDetails": [
                    {
                        "refundType": 1,
                        "needRepricing": true,
                        "priceValidity": "",
                        "usedAmount": 0,
                        "usedTax": 0,
                        "refundFee": 300,
                        "refundAmount": 900
                    }
                ]
            }
        ],
        "priceDetail": {
            "productType": "publish",
            "priceList": [
                {
                    "passengerType": "adult",
                    "num": 1,
                    "publishPrice": 1000,
                    "tax": 200,
                    "price": 950,
                    "salePrice": 1200,
                    "currency": "CNY"
                },
                {
                    "passengerType": "adult",
                    "num": 1,
                    "priceDiff": 100,
                    "taxDiff": 20,
                    "changeFee": 30,
                    "serviceFee": 10,
                    "salePrice": 160,
                    "currency": "CNY"
                },
                {
                    "passengerType": "adult",
                    "num": 1,
                    "refundableAmount": 800,
                    "usedAmount": 0,
                    "refundFee": 50,
                    "serviceFee": 10,
                    "refundPrice": 740,
                    "currency": "CNY"
                }
            ],
            "priceTotal": 1200,
            "transactionFee": 0
        },
        "fareRules": [
            {
                "passengerType": "adult",
                "canVoid": true,
                "currency": "CNY",
                "change": {
                    ">0": 300,
                    ">4": 200,
                    "<-4": 500
                },
                "changeDescription": "Change before departure CNY 300",
                "refund": {
                    ">0": 500,
                    ">4": 300,
                    "<-4": 800
                },
                "refundDescription": "Refund before departure CNY 500",
                "originText": "Original fare rule text",
                "longestStay": "1Y",
                "shortestStay": "0D",
                "convertedCurrency": "USD",
                "convertedChange": {
                    "property1": 0,
                    "property2": 0
                },
                "convertedRefund": {
                    "property1": 0,
                    "property2": 0
                }
            }
        ]
    }
}
⚪default
Modified at 2026-07-21 08:28:13
Previous
Pay for a Flight Order
Next
Search and Price Flight Changes
Built with