线下票免(12306)账号购票下单接口。
重要说明:
遇到卧铺传下铺价格、儿童票传成人票的价格,,,平台先按照最高票价预收,如果最终实际出票金额低于预收金额,平台将自动退差。
下单成功后请及时支付,新订单30分钟未支付订单将自动取消。
请商户严格按照该预订流程对接,不然会存在:无效订单占比过高(即:只下单不支付的单子),接口账户被系统自动封禁的风险。

| 参数名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appKey | string | 是 | 您申请的APPKEY |
| customerOrderNo | string | 是 | 采购商的订单号 |
| contactName | string | 是 | 订单联系人姓名 |
| contactMobile | string | 是 | 订单联系人手机号 |
| callBackUrl | string | 是 | 出票结果回调地址(出票成功/失败时,将通过此地址回调给采购商,回调详见:订单状态推送通知说明) |
| refundTicketCallbackUrl | string | 是 | 退票结果回调地址(退票成功/失败时,将通过此地址回调给采购商,回调详见:订单状态推送通知说明) |
| refundMoneyCallbackUrl | string | 是 | 退款回调地址(退款时,将通过此地址回调给采购商,回调详见:订单状态推送通知说明) |
| trainSegments | TrainSegment[] | 是 | 行程信息,支持联程(单程时该数组长度就是1,联程是就是2) |
| trainCode | string | 是 | 车次号 |
| fromStation | string | 是 | 出发站 |
| toStation | string | 是 | 到达站 |
| fromDateTime | string | 是 | 出发日期及时间,精确到分钟,格式:yyyy-MM-dd HH:mm,如:2025-01-15 06:02 |
| toDateTime | string | 是 | 到达日期及时间,精确到分钟,格式:yyyy-MM-dd HH:mm,如:2025-01-15 06:02 |
| isAcceptStanding | bool | 是 | 是否接受无座,默认不接收 |
| passengers | Passenger[] | 是 | 乘客信息 |
| name | string | 是 | 乘客姓名 |
| cardType | int | 是 | 证件类型( 身份证 = 1,护照 = 2, 港澳居民来往内地通行证 = 3 , 台湾居民来往大陆通行证 = 4 ,外国人永久居留身份证 = 8 ,港澳台居民居住证 = 9 ) |
| cardNo | string | 是 | 证件号码 |
| mobile | string | 是 | 手机号 |
| ticketType | int | 是 | 火车票票种( 成人票 = 1,儿童票 = 2, 学生票 = 3, 残军票 = 4) |
| seatType | int | 是 | 席别类型(商务座 = 1,特等座 = 2,一等座 = 3,二等座 = 4,高级软卧 = 5,软卧 = 6,动卧 = 7 ,硬卧 = 8,软座 = 9,硬座 = 10,一等卧 = 11,二等卧 = 12,高级动卧 = 13, 一等软座 = 14 , 二等软座 = 15, 特等软座 = 16, 包厢硬卧 = 17, 一人软包 = 18, 多功能座 = 19, 无座 =98,其他 = 99) |
| preTicketPrice | decimal | 是 | 预收票价( 卧铺时传最高的下铺票价,儿童/学生/参军票时传成人票价 ) |
| birthday | string | 是 | 出生日期(格式:yyyy-MM-dd , 当cardType = 2,3,4,8时必填) |
| cardValidEndDate | string | 是 | 证件有效期截止日期(格式:yyyy-MM-dd , 选填) |
| sex | int | 是 | 性别(男 = 1 , 女 = 2 , 当cardType = 2,3,4,8时必填) |
| countryCode | string | 是 | 国家/地区 代码(当cardType = 2,8时必填。可向平台索取所有国家/地区代码静态数据) |
| 参数名称 | 类型 | 说明 |
|---|---|---|
| success | bool | 下单结果(非出票结果),true:下单成功,false下单失败 |
| msg | string | 下单失败时,失败原因 |
| data | object | 业务参数(success为true时才有值,false时为null) |
| orderNo | string | 订单号 |
| totalPreTicketPriceAmount | decimal | 订单中所有乘客的预收票价(下单请求参数中preTicketPrice字段)之和(余额支付时,将按照此金额收取。如果最终实际总出票价大于此值将会被拒单出票失败,小于此值时,出票成功后将自动退还多收取的票差) |
单程下单请求示例:
{
"appKey": "您申请的APPKEY",
"customerOrderNo": "2025011022150473",
"contactName": "张三",
"contactMobile": "13912345678",
"callBackUrl": "https://xxxxxx/outTicketResultCallback",
"refundTicketCallbackUrl": "https://xxxxxx/refundTicketResultCallback",
"refundMoneyCallbackUrl": "https://xxxxxx/refundMoneyCallback",
"trainSegments": [
{
"trainCode": "K1158",
"fromStation": "合肥",
"toStation": "蚌埠",
"fromDateTime": "2025-01-15 06:02",
"toDateTime": "2025-01-15 08:15",
"isAcceptStanding": false,
"isAcceptOtherSeat": false,
"passengers": [
{
"name": "张三",
"cardType": "1",
"cardNo": "340123197209183099",
"mobile": "13912345678",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 77.5
},
{
"name": "李四",
"cardType": "1",
"cardNo": "441721198812150039",
"mobile": "13912345678",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 77.5
},
{
"name": "王二",
"cardType": "1",
"cardNo": "620821200112042422",
"mobile": "13912345670",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 77.5
}
]
}
]
}
联程下单请求示例:
{
"appKey": "您申请的APPKEY",
"customerOrderNo": "2025011022150485",
"contactName": "张三",
"contactMobile": "13912345678",
"callBackUrl": "https://xxxxxx/outTicketResultCallback",
"refundTicketCallbackUrl": "https://xxxxxx/refundTicketResultCallback",
"refundMoneyCallbackUrl": "https://xxxxxx/refundMoneyCallback",
"trainSegments": [
{
"trainCode": "K1158",
"fromStation": "合肥",
"toStation": "蚌埠",
"fromDateTime": "2025-01-15 06:02",
"toDateTime": "2025-01-15 08:15",
"isAcceptStanding": false,
"isAcceptOtherSeat": false,
"passengers": [
{
"name": "张三",
"cardType": "1",
"cardNo": "340123197209183099",
"mobile": "13912345678",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 77.5
},
{
"name": "李四",
"cardType": "1",
"cardNo": "441721198812150039",
"mobile": "13912345678",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 77.5
},
{
"name": "王二",
"cardType": "1",
"cardNo": "620821200112042422",
"mobile": "13912345670",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 77.5
}
]
},
{
"trainCode": "K1276",
"fromStation": "蚌埠",
"toStation": "呼和浩特",
"fromDateTime": "2025-01-15 16:45",
"toDateTime": "2025-01-16 19:08",
"isAcceptStanding": false,
"isAcceptOtherSeat": false,
"passengers": [
{
"name": "张三",
"cardType": "1",
"cardNo": "340123197209183099",
"mobile": "13912345678",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 343.5
},
{
"name": "李四",
"cardType": "1",
"cardNo": "441721198812150039",
"mobile": "13812345678",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 343.5
},
{
"name": "王二",
"cardType": "1",
"cardNo": "620821200112042422",
"mobile": "13812345679",
"ticketType": 1,
"seatType": 8,
"preTicketPrice": 343.5
}
]
}
]
}
下单成功示例:
{
"data": {
"orderNo": "TX25011213525343937",
"totalPreTicketPriceAmount": 232.5
},
"success": true,
"msg": "请求成功"
}
下单失败示例:
{
"data": null,
"success": false,
"msg": "火车票票款余额不足,当前账户火车票票款余额:8.51小于订单票款总金额:232.5"
}