code: ********************timestamp: ********************signature: ********************{
"customOrderId": "EXT-TRAIN-20260715-001",
"shoppingId": "train_shop_01J2X9D8Q1",
"journeyId": "train_journey_G1_20260720",
"returnJourneyId": "train_journey_G2_20260725",
"contact": {
"name": "ZHANG SAN",
"gender": "male",
"email": "contact@example.com",
"phoneRegion": "+86",
"phone": "13800138000",
"zipCode": "100000",
"city": "Beijing",
"streetAndNumber": "No. 1 Railway Street"
},
"passengers": [
{
"id": 0,
"givenNames": "SAN",
"surname": "ZHANG",
"gender": "male",
"birthday": "1990-01-15",
"passengerType": "adult",
"travelDocumentType": "passport",
"travelDocumentNumber": "110101199001011234",
"travelDocumentExpireDate": "2030-01-15",
"nationality": "CN"
}
],
"seatClassId": "erdengzuo",
"snapUpDeadline": 1784505600000,
"callbackUrl": "https://buyer.example.com/callbacks/train/order",
"preSaleConfirmationCallbackUrl": "https://buyer.example.com/callbacks/train/pre-sale",
"china12306Account": {
"account": "zhangsan",
"password": "ExamplePassword123"
},
"preference": {
"chooseSeats": "1A1D",
"chooseBeds": "123",
"allowStanding": false,
"carNumber": 8
},
"returnPreference": {
"chooseSeats": "1A1D",
"chooseBeds": "123",
"allowStanding": false,
"carNumber": 8
}
}curl --location '/train/openapi/v4/orders' \
--header 'code: <api-key>' \
--header 'timestamp: <api-key>' \
--header 'signature: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"customOrderId": "EXT-TRAIN-20260715-001",
"shoppingId": "train_shop_01J2X9D8Q1",
"journeyId": "train_journey_G1_20260720",
"returnJourneyId": "train_journey_G2_20260725",
"contact": {
"name": "ZHANG SAN",
"gender": "male",
"email": "contact@example.com",
"phoneRegion": "+86",
"phone": "13800138000",
"zipCode": "100000",
"city": "Beijing",
"streetAndNumber": "No. 1 Railway Street"
},
"passengers": [
{
"id": 0,
"givenNames": "SAN",
"surname": "ZHANG",
"gender": "male",
"birthday": "1990-01-15",
"passengerType": "adult",
"travelDocumentType": "passport",
"travelDocumentNumber": "110101199001011234",
"travelDocumentExpireDate": "2030-01-15",
"nationality": "CN"
}
],
"seatClassId": "erdengzuo",
"snapUpDeadline": 1784505600000,
"callbackUrl": "https://buyer.example.com/callbacks/train/order",
"preSaleConfirmationCallbackUrl": "https://buyer.example.com/callbacks/train/pre-sale",
"china12306Account": {
"account": "zhangsan",
"password": "ExamplePassword123"
},
"preference": {
"chooseSeats": "1A1D",
"chooseBeds": "123",
"allowStanding": false,
"carNumber": 8
},
"returnPreference": {
"chooseSeats": "1A1D",
"chooseBeds": "123",
"allowStanding": false,
"carNumber": 8
}
}'{
"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"
}
}