1. Orders
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
        • Search and Price Flight Changes
        • Create a Flight Change Order
        • Query Refundable Flight Amounts
        • Create a Flight Refund Order
        • Confirm a Flight Refund Order
      • 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
        • Get Order Refund and Change Conditions
          GET
        • Confirm Pre-sale Order
          POST
        • Pay Order
          POST
        • Cancel Order
          POST
      • 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. Orders

Pay Order

POST
/train/openapi/v4/orders/{orderId}/payment
Pay the order using the current organization's balance. The body has no business fields and may be omitted or sent as an empty object.

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
Path Params

Body Params application/json

Example
{}

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 '/train/openapi/v4/orders/TO202607150001/payment' \
--header 'code: <api-key>' \
--header 'timestamp: <api-key>' \
--header 'signature: <api-key>' \
--header 'Content-Type: application/json' \
--data '{}'

Responses

🟢200
application/json
Payment completed successfully; returns the latest order details.
Bodyapplication/json

Example
{
    "code": 0,
    "message": "Success",
    "data": {
        "customOrderId": "EXT-TRAIN-20260715-001",
        "id": "TO202607150001",
        "passengers": [
            {
                "id": 10001,
                "givenNames": "SAN",
                "surname": "ZHANG",
                "gender": "male",
                "birthday": "1990-01-15",
                "passengerType": "adult",
                "travelDocumentType": "passport",
                "travelDocumentNumber": "110101199001011234",
                "travelDocumentExpireDate": "2030-01-15",
                "nationality": "CN"
            }
        ],
        "journey": {
            "id": "train_journey_G1_20260720",
            "departureCode": "BJP",
            "arrivalCode": "SHH",
            "tripCode": "G1",
            "tripType": "High speed G",
            "seatClassId": "erdengzuo",
            "seatClassName": "Example",
            "departureDate": "2026-07-20",
            "departureTime": "09:00",
            "days": 0,
            "arrivalDate": "2026-07-20",
            "arrivalTime": "13:28",
            "duration": "PT4H28M",
            "segments": [
                {
                    "id": "segment_0",
                    "departureCode": "BJP",
                    "arrivalCode": "SHH",
                    "tripCode": "G1",
                    "tripType": "High speed G",
                    "seatClassId": "erdengzuo",
                    "seatClassName": "Example",
                    "departureDate": "2026-07-20",
                    "departureTime": "09:00",
                    "days": 0,
                    "arrivalDate": "2026-07-20",
                    "arrivalTime": "13:28",
                    "duration": "PT4H28M"
                }
            ],
            "features": [
                {
                    "code": "WIFI",
                    "name": "Wi-Fi",
                    "description": "Example"
                }
            ],
            "tickets": {
                "10001": {
                    "carNumber": "08",
                    "seatNum": "12A",
                    "status": "issued"
                }
            }
        },
        "returnJourney": {
            "id": "train_journey_G1_20260720",
            "departureCode": "BJP",
            "arrivalCode": "SHH",
            "tripCode": "G1",
            "tripType": "High speed G",
            "seatClassId": "erdengzuo",
            "seatClassName": "Example",
            "departureDate": "2026-07-20",
            "departureTime": "09:00",
            "days": 0,
            "arrivalDate": "2026-07-20",
            "arrivalTime": "13:28",
            "duration": "PT4H28M",
            "segments": [
                {
                    "id": "segment_0",
                    "departureCode": "BJP",
                    "arrivalCode": "SHH",
                    "tripCode": "G1",
                    "tripType": "High speed G",
                    "seatClassId": "erdengzuo",
                    "seatClassName": "Example",
                    "departureDate": "2026-07-20",
                    "departureTime": "09:00",
                    "days": 0,
                    "arrivalDate": "2026-07-20",
                    "arrivalTime": "13:28",
                    "duration": "PT4H28M"
                }
            ],
            "features": [
                {
                    "code": "WIFI",
                    "name": "Wi-Fi",
                    "description": "Example"
                }
            ],
            "tickets": {
                "10001": {
                    "carNumber": "08",
                    "seatNum": "12A",
                    "status": "issued"
                }
            }
        },
        "contact": {
            "name": "ZHANG SAN",
            "gender": "male",
            "email": "contact@example.com",
            "phoneRegion": "+86",
            "phone": "13800138000",
            "zipCode": "100000",
            "city": "Beijing",
            "streetAndNumber": "No. 1 Railway Street"
        },
        "status": "pre_check",
        "marketingCarrier": {
            "code": "CNRW",
            "name": {
                "en": "Beijing South",
                "zh-Hans": "Beijing South"
            }
        },
        "currency": "CNY",
        "price": {
            "ticketPrice": 553,
            "issuedTicketPrice": 550,
            "amount": 573,
            "serviceFees": 20,
            "refundTicketPrice": 500,
            "changeRefundCost": 53,
            "refundFee": 10,
            "ticketPriceDiff": 3
        },
        "priceBasis": "passenger",
        "lastError": "Supplier reservation failed"
    }
}
🟢200TrainBusinessError
Modified at 2026-07-21 08:28:13
Previous
Confirm Pre-sale Order
Next
Cancel Order
Built with