Tourmind Hotel Distribution API - TMS API (2.0)
下载 OpenAPI 规范: 下载
TMS API.
总体概述
欢迎阅读 TourMind 开发者文档。本指南提供了将 TourMind 集成到您的应用程序中所需的所有信息。无论您是在寻找酒店预订流程还是 AI 驱动的解决方案,我们都能满足您的需求。
主要特点
- 酒店 API:提供一套全面的 API,旨在简化酒店预订流程。
- TourMind AI API:通过算法实现房型匹配、房型聚类和房价预测,帮助优化定价策略,提升可售房库存利用率。
技术规格
- 代理与 TourMind API 的所有通信均通过 HTTP POST 进行。
- 请求有效负载的格式基于 JSON。
- 所有请求都应接受 GZIP 编码,并且所有响应都以 GZIP 格式返回。
- 所有请求都包含一个通用请求标头,其中包含身份验证信息。
API开发流程

更新日志
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0.1 | 2023.05.01 | 接口文档初稿 |
| v2.0.1 | 2023.05.25 | 酒店接口字段调整 |
| v2.0.2 | 2026.03.19 | 新增按日期查询订单列表接口(Query Bookings);查询订单响应新增字段(HotelCode, RoomCount, CheckIn, CheckOut, PaxRooms, Contact, ContactPhone, BookingTime) |
| v2.0.3 | 2026.08.14 | 验价(Prebook)响应的 MealType 餐食表与搜价(Search)对齐;补充说明每个房间对象的第一个入住人为主入住人 |
认证
1. 公共请求字段
所有请求都需要一个名为 RequestHeader 的公共字段,其中必须提供账户信息。示例:
json
{
"AgentCode": "your agent code",
"UserName": "your username",
"Password": "your password",
"RequestTime": "2018-07-26T09:51:32.999Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}2. Http Header
请在 Http header 中添加以下两个项目:
- X-Agent-Code: your agent code
- X-Username: your username
3. 测试环境凭证
| API 测试凭证 | |
|---|---|
| AgentCode | tms_test |
| UserName | tms_test |
| Password | tms_test |
搜索 & 预订
搜索
搜索指定酒店的房间价格与可用房态,使用户能够查看详细的房间空余情况及定价信息。
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/HotelDetail |
| 请求方式 | POST |
请求字段
CheckIn: string
入住日期,格式 “2006-01-02”
CheckOut: string
退房日期,格式 “2006-01-02”
HotelCodes[]: integer
Tourmind Hotel Id,此请求中最多支持20个ID查询
IsDailyPrice: boolean
是否需要每日价格
Nationality: string
国籍
Timeout: integer
请求超时时间,单位毫秒
响应字段
json
{
"CheckIn": "2018-08-25",
"CheckOut": "2018-08-26",
"HotelCodes": [],
"Nationality": "CN",
"PaxRooms": [
{
"Adults": 4,
"Children": 5,
"ChildrenAges": [],
"RoomCount": 2
}
],
"Timeout": 6000,
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
}
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"Hotels": [
{
"CheckIn": "2018-08-25",
"CheckOut": "2018-08-26",
"HotelCode": "740650",
"RoomTypes": [
{
"Name": "Suite 3 bedrooms",
"NameCN": "三床房",
"RateInfos": [
{
"Allotment": 2,
"CancelPolicyInfos": [
{}
],
"CurrencyCode": "CNY",
"DailyPriceInfo": [
{}
],
"MealInfo": {
"MealCount": 2,
"MealType": "breakfast"
},
"Name": "SUITE THREE BEDROOMS",
"RateCode": "13800206",
"TotalPrice": 688.88
}
],
"RoomTypeCode": "4613"
}
]
}
],
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}验价
检查所选特定房价的空房情况和价格,通常在用户选择要预订的房间并提交预订时请求
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/CheckRoomRate |
| 请求方式 | POST |
请求字段
CheckIn: string
入住日期,格式 “2006-01-02”
CheckOut: string
退房日期,格式 “2006-01-02”
HotelCodes[]: integer
Tourmind Hotel Id,此请求中仅需要1个ID
Nationality: string
国籍
RateCode: string
途灵价格计划 ID
TotalPrice: number
SearchResponse中返回的总价
响应字段
json
{
"CheckIn": "2018-08-25",
"CheckOut": "2018-08-26",
"HotelCodes": [],
"Nationality": "CN",
"PaxRooms": [
{
"Adults": 4,
"Children": 5,
"ChildrenAges": [],
"RoomCount": 2
}
],
"RateCode": "13800206",
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
},
"TotalPrice": 688.88
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"Hotels": [
{
"CheckIn": "2018-08-25",
"CheckOut": "2018-08-26",
"HotelCode": "740650",
"RoomTypes": [
{
"Name": "Suite 3 bedrooms",
"NameCN": "三床房",
"RateInfos": [
{
"Allotment": 2,
"CancelPolicyInfos": [
{}
],
"CurrencyCode": "CNY",
"DailyPriceInfo": [
{}
],
"MealInfo": {
"MealCount": 2,
"MealType": "breakfast"
},
"Name": "SUITE THREE BEDROOMS",
"RateCode": "13800206",
"TotalPrice": 688.88
}
],
"RoomTypeCode": "4613"
}
]
}
],
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}创建订单
注意:如果请求超时或返回 PENDING 状态,请轮询查询订单接口以获取预订的最终状态。
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/CreateOrder |
| 请求方式 | POST |
请求字段
AgentRefID: string
唯一的代理商参考ID,用于识别预订,最长128; 注意!重复使用AgentRefID将不会创建新的订单,而是返回原始的订单
CheckIn: string
入住日期,格式 “2006-01-02”
CheckOut: string
退房日期,格式 “2006-01-02”
CurrencyCode: string
货币编码
HotelCode: integer
Tourmind Hotel Id,此请求中仅需要1个ID
RateCode: string
途灵价格计划 ID
SpecialRequest: string
客户特殊要求
TotalPrice: number
从CheckRoomRateResponse返回的预订总价
响应字段
ReservationID: string
途灵订单号
json
{
"AgentRefID": "213415",
"CheckIn": "2018-08-15",
"CheckOut": "2018-08-18",
"ContactInfo": {
"Email": "xxx@google.com",
"FirstName": "Tom",
"LastName": "Lee",
"PhoneNo": "1521777777"
},
"CurrencyCode": "CNY",
"HotelCode": 235113,
"PaxRooms": [
{
"Adults": 2,
"Children": 0,
"ChildrenAges": [],
"PaxNames": [
{
"FirstName": "Tom",
"LastName": "Lee",
"Type": "ADU"
}
],
"RoomCount": 1
}
],
"RateCode": "2132151",
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
},
"SpecialRequest": "Non-smoking room",
"TotalPrice": 88.88
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"OrderInfo": {
"OrderStatus": "CONFIRMED",
"ReservationID": "10470379"
},
"ReservationID": "10470379",
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}取消订单
发送取消订单请求以取消可退款预订和待处理的预订
注意:如果请求超时或返回错误,请轮询查询订单接口以获取预订的最终状态。
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/CancelOrder |
| 请求方式 | POST |
请求字段
AgentRefID: string
代理在CreateOrder请求中提供的代理参考ID,最长128
响应字段
json
{
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
}
}json
{
"CancelResult": {
"CancelFee": 42,
"CurrencyCode": "CNY",
"OrderStatus": "CANCELLED"
},
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}查询订单
搜索订单以检查预订过程中的订单状态
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/SearchOrder |
| 请求方式 | POST |
请求字段
AgentRefID: string
CreateOrder请求中提供的代理参考ID,最长128
响应字段
json
{
"AgentRefID": "21345555",
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
}
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"OrderInfo": {
"AgentRefID": "1365422",
"CurrencyCode": "CNY",
"HotelConfirmationNo": "10470374",
"OrderStatus": "CANCELLED",
"ReservationID": "10470374",
"TotalPrice": 888.89,
"HotelCode": 0,
"RoomCount": 0,
"CheckIn": "2020-01-01",
"CheckOut": "2020-01-02",
"PaxRooms": [
{
"Adults": 2,
"Children": 0,
"ChildrenAges": [],
"PaxNames": [
{
"FirstName": "Tom",
"LastName": "Lee",
"Type": "ADU"
}
],
"RoomCount": 1
}
],
"BookingTime": "2020-01-03 12:00:00"
},
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}查询订单列表
按日期范围分页查询订单列表。可按入住日期、退房日期或预订日期筛选订单。实际请求地址为 POST /v2/SearchOrder(与查询单个订单相同的URL,但使用不同的请求参数)。
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/SearchOrder |
| 请求方式 | POST |
请求字段
DateType: string
日期类型,可选值:CheckIn(入住日期)、CheckOut(退房日期)、Booking(预订日期)。
From: string
查询范围的开始日期,格式 YYYY-MM-DD。日期跨度(To减去From)不超过31天。
To: string
查询范围的结束日期,格式 YYYY-MM-DD。日期跨度(To减去From)不超过31天。
Page: integer
分页页码,必须 >= 1。
PageSize: integer
每页数量,范围 1-500。
响应字段
json
{
"DateType": "CheckIn",
"From": "2024-01-01",
"To": "2024-01-31",
"Page": 1,
"PageSize": 50,
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
}
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"OrderList": {
"OrderList": [
{
"AgentRefID": "1365422",
"CurrencyCode": "CNY",
"HotelConfirmationNo": "10470374",
"OrderStatus": "CANCELLED",
"ReservationID": "10470374",
"TotalPrice": 888.89,
"HotelCode": 0,
"RoomCount": 0,
"CheckIn": "2020-01-01",
"CheckOut": "2020-01-02",
"PaxRooms": [
{
"Adults": 2,
"Children": 0,
"ChildrenAges": [],
"PaxNames": [
{
"FirstName": "Tom",
"LastName": "Lee",
"Type": "ADU"
}
],
"RoomCount": 1
}
],
"BookingTime": "2020-01-03 12:00:00"
}
],
"Page": 1,
"PageSize": 50,
"Total": 100
},
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}静态数据
MealCode
餐食代码
| MealCode | Description |
|---|---|
| 1 | 不含餐 |
| 2 | 早餐 |
| 3 | 午餐 |
| 4 | 晚餐 |
| 5 | 午餐和晚餐 |
| 6 | 半膳 |
| 7 | 全膳 |
| 8 | 全包 |
| 9 | 自炊式(住宿) |
酒店列表
获取酒店静态数据
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/HotelStaticList |
| 请求方式 | POST |
请求字段
CountryCode: string
国家编码
HotelIds[]: integer
查找某些酒店
Lang: string
语言,zh-CN、en-US
响应字段
json
{
"CountryCode": "CN",
"HotelIds": [],
"Lang": "zh-CN",
"Pagination": {
"PageIndex": 1,
"PageSize": 10
},
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
}
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"HotelStaticListResult": {
"Hotels": [
{
"Address": "3007 Santa Monica Blvd, 90404",
"AmenitiesHotel": [
{
"name": "Golfing nearby"
}
],
"AmenitiesRoom": [
{
"name": "Golfing nearby"
}
],
"CityCode": "14209",
"CityName": "ShangHai",
"CityNameCN": "上海",
"CountryCode": "CN",
"Description": {
"Attractions": "Qijang Park - 1 km / 0.6 mi. Xingzhong Plaza - 1 km / 0.6 mi.",
"BusinessAmenities": "Featured amenities include a business center, limo/town car service, and express check-in.",
"Headline": "In Zhongshan (West District)",
"Location": "You'll be centrally located in Zhongshan, within a 15-minute walk of Qijang Park and Xingzhong Plaza.",
"Rooms": "Make yourself at home in one of the 362 air-conditioned rooms featuring refrigerators and LCD televisions."
},
"HotelId": "739315",
"Images": [
{
"links": {}
}
],
"Latitude": "34.03644",
"Longitude": "-118.47048",
"Name": "Days Inn Santa Monica/Los Angeles",
"Phone": "1523333333",
"StarRating": "5"
}
],
"Pagination": {
"PageCount": 1,
"TotalCount": 10
}
},
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}区域列表
获取地区列表
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/RegionList |
| 请求方式 | POST |
请求字段
CountryCode: string
国家编码
响应字段
json
{
"CountryCode": "CN",
"Pagination": {
"PageIndex": 1,
"PageSize": 10
},
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
}
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"RegionListResult": {
"Regions": [
{
"CountryCode": "231",
"Name": "ShangHai",
"NameCN": "上海",
"RegionID": "21312541",
"RegionNameLong": "Shanghai, China",
"RegionNameLongCN": "上海,中国"
}
]
},
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}酒店房型数据
获取酒店全量房型数据
接口调用信息
| 名称 | 值 |
|---|---|
| 请求地址 | http://developers.tourmind.cn/v2/RoomStaticList |
| 请求方式 | POST |
请求字段
HotelCode: integer
酒店ID
响应字段
json
{
"RequestHeader": {
"AgentCode": "tms_test",
"Password": "tms_test",
"RequestTime": "2018-07-26T09:51:32.123Z",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"UserName": "tms_test"
}
}json
{
"Error": {
"ErrorCode": "101",
"ErrorMessage": "invaild param"
},
"ResponseHeader": {
"ResponseTime": "2018-07-26 09:51:32",
"TransactionID": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
},
"RoomTypes": [
{}
]
}验收
请完成测试用例表(Test Cases)中的所有测试用例。
