为了提高供应商在携程网的政策投放效率,满足其业务需求,由携程机票研发部门开发了一套供应商运价维护API,
从模块维度分为公布运价、私有单程运价、私有往返运价和低价看板4个模块,从功能维度分为新增、修改、删除、查询和调 价5个接口。
生产环境已有手工投放政策权限的帐号可直接使用,无需额外申请。 测试环境需要通知对口业务联系携程供应商支持组申请帐号。
- 支持http或https访问,其中https协议,访问前需要预装CA证书或在调用端的程序中设置信任任何证书,否则无法正常访问。
- 接口URL拼接规则:各环境服务URL+接口名
例:测试环境服务公布运价新增接口URL:https://intlresource-exchdata.fat.ctripqa.com/api/pubFareAdd 其中 https://intlresource-exchdata.fat.ctripqa.com/api/ 为对应环境服务URL, pubFareAdd为对应接口名
- 测试环境: https://intlresource-exchdata.fat.ctripqa.com/api/
- 生产环境: https://intlresource-exchdata.ctrip.com/api/
| 接口中文名 | 接口URL |
| 新增 | pubFareAdd |
| 删除 | pubFareDelete |
| 修改 | pubFareUpdate |
| 查询 | pubFareQuery |
| 调价 | pubFareChangePrice |
| 接口中文名 | 接口URL |
| 新增 | owFareAdd |
| 删除 | owFareDelete |
| 修改 | owFareUpdate |
| 查询 | owFareQuery |
| 调价 | owFareChangePrice |
| 接口中文名 | 接口URL |
| 新增 | rtFareAdd |
| 删除 | rtFareDelete |
| 修改 | rtFareUpdate |
| 查询 | rtFareQuery |
| 调价 | rtFareChangePrice |
| 接口中文名 | 接口URL |
| 低价看板查询 | lowPriceSearch |
服务的调用方(供应商)和提供方(携程)在服务过程中,需要遵循如下约定:
-
请求、响应报文字符编码为UTF-8
-
请求、响应报文的序列化方式为Json+Gzip
-
调用方负责请求报文压缩和响应报文解压缩,并确保Http Request Header中包含如下信息
-
Content-Type=application/json;charset=UTF-8
-
Content-Transfer-Encoding=gzip
-
Transfer-Encoding=chunked
-
Accept-Encoding=gzip
-
提供方负责请求报文解压缩和响应报文压缩,并确保Http Response Header中包含如下信息
-
Content-Type=application/json;charset=UTF-8
-
Content-Encoding=gzip
-
Transfer-Encoding=chunked
!avatar
- 客户端构建请求报文
- gzip 压缩请求
- 发送请求
- 服务端接收请求并 gzip 解压缩请求
- 处理请求构建响应报文
- gzip 压缩响应
- 返回至客户端
- 客户端接收并解压缩响应
示例使用Apache Http Client作为Http访问组件,需要引入相关lib。
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
</dependencies>
{
"requestHeader": {
"requestID": "c444550d-cd07-4dbb-b4fd-17f4c705ae8e",
"loginName": "your login name",
"password": "your password",
"language": "zh_CN"
},
"records": [
{
"seq": 1,
"tripType": "RT",
"owner": "CA",
"interlineApplicable": true,
"salesDate": "2019-08-13>2025-06-01",
"commition": "20.50",
"profit": 20,
"commissionCalculation": 1,
"fareType": "Amadeus",
"invoiceType": 0,
"forSmallGroup": 2,
"publicToPrivate": false,
"forFilePrvOwFare": 2,
"applicableFareSource": 2,
"transferApplication": 2,
"allowOpenJaw": 2,
"cSApplicableNew": 2,
"fareID": 1,
"externalID": "d0a9e4d1-a75c-43fe-813e-b4b2b0c6f296",
"policyID": "d0a9e4d1-a75c-43fe-813e-b4b2b0c6f296",
"combinablePolicyID": "d0a9e4d1-a75c-43fe-813e-b4b2b0c6f296",
"depCity": "BJS",
"arrCity": "LAX",
"depCityExcept": "",
"arrCityExcept": "",
"seatClass": "Y/S",
"interlineAirlineCode": "CZ",
"interlineAirlineCodeExcept": "MH/MU",
"outboundTravelDate": "2019-08-13>2025-06-01",
"fCInboundTravelDate": "2019-08-13>2025-06-01",
"ticketingDeadline": "",
"transferPoint": "SHA",
"ticketingRemark": "",
"workingTime": "",
"nationality": "",
"excludeNationality": "",
"penalties": 0,
"ticketingCity": "BJS",
"saleMarket": "CN",
"brandName": "SmartFare",
"priceRange": "10-20/20-30",
"excludeSaleMarket": "MK/HK",
"fareBasis": "",
"officeNo": "SHA888"
},
{
"seq": 2,
"tripType": "RT",
"owner": "CA",
"interlineApplicable": true,
"salesDate": "2019-08-13>2025-06-01",
"commition": "20.50",
"profit": 20,
"commissionCalculation": 1,
"fareType": "Amadeus",
"invoiceType": 0,
"forSmallGroup": 2,
"publicToPrivate": false,
"forFilePrvOwFare": 2,
"applicableFareSource": 2,
"transferApplication": 2,
"allowOpenJaw": 2,
"cSApplicableNew": 2,
"fareID": 2,
"externalID": "5c2c235f-09c8-48db-bd45-042464a32fec",
"policyID": "5c2c235f-09c8-48db-bd45-042464a32fec",
"combinablePolicyID": "5c2c235f-09c8-48db-bd45-042464a32fec",
"depCity": "BJS",
"arrCity": "LAX",
"depCityExcept": "",
"arrCityExcept": "",
"seatClass": "Y/S",
"interlineAirlineCode": "CZ",
"interlineAirlineCodeExcept": "MH/MU",
"outboundTravelDate": "2019-08-13>2025-06-01",
"fCInboundTravelDate": "2019-08-13>2025-06-01",
"ticketingDeadline": "",
"transferPoint": "SHA",
"ticketingRemark": "",
"workingTime": "",
"nationality": "",
"excludeNationality": "",
"penalties": 0,
"ticketingCity": "BJS",
"saleMarket": "CN",
"brandName": "SmartFare",
"priceRange": "10-20/20-30",
"excludeSaleMarket": "MK/HK",
"fareBasis": "",
"officeNo": "SHA888"
}
]
}
package com.ctrip.flight.intl.trade.openapi.example; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.ParseException; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.GzipCompressingEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicHeader; import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.util.EntityUtils; import javax.net.ssl.SSLContext; import java.io.IOException; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; public class OpenAPIExample {
private final Log log = LogFactory.getLog(getClass());
// Connection establishment timeout time 3 seconds unit milliseconds private static final int CONNECT_TIMEOUT = 3000;
// Socket timeout 25 seconds unit milliseconds private static final int SOCKET_TIMEOUT = 25000;
/*
- * CloseableHttpClient Thread safe
- * reference httpComponents-client-ga/tutorial 1.2.1. HttpClient thread safety
- * HttpClient implementations are expected to be thread safe. It is recommended that the same instance
- * of this class is reused for multiple request executions.
- */
private CloseableHttpClient httpClient; private CloseableHttpClient getHttpClient() throws KeyStoreException, NoSuchAlgorithmException,
KeyManagementException { if (null != httpClient) {
return httpClient;
} RequestConfig reqConfig = RequestConfig.custom()
.setConnectTimeout(CONNECT_TIMEOUT)
.setSocketTimeout(SOCKET_TIMEOUT) /*
- * ContentCompressionEnabled set true , http Request add header Accept-Encoding:gzip,deflate
- */
.setContentCompressionEnabled(true).build(); SSLContext sslCtx = SSLContextBuilder.create().loadTrustMaterial(null, (x, s) -> {
return true; }).build(); SSLConnectionSocketFactory factory = new SSLConnectionSocketFactory(sslCtx, NoopHostnameVerifier.INSTANCE); List<Header> defaultHeaderList = new ArrayList<>(); // default request header defaultHeaderList.add(new BasicHeader("Content-Type", "application/json;charset=UTF-8"));
HttpClientBuilder builder = HttpClients.custom()
.setDefaultRequestConfig(reqConfig)
.setDefaultHeaders(defaultHeaderList)
.setSSLSocketFactory(factory); synchronized (OpenAPIExample.class) {
if (httpClient == null) {
httpClient = builder.build(); }
} return httpClient;
} public void publicFareAdd() throws Exception {
CloseableHttpClient httpClient = getHttpClient(); HttpPost httpPost = new HttpPost("Interface Url"); StringEntity requestEntity = new StringEntity("jsonData","UTF-8"); /*
- * using GzipCompressingEntity
- */
httpPost.setEntity(new GzipCompressingEntity(requestEntity)); try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
HttpEntity responseEntity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == HttpStatus.SC_OK) {
log.info("request success response content:" + EntityUtils.toString(responseEntity)); } else {
log.info("request fail response content:" + EntityUtils.toString(responseEntity)); }
} catch (ParseException | IOException e) {
log.error("request execute occur exception", e); } finally {
releaseClient(); }
} private void releaseClient() {
try {
httpClient.close(); } catch (Exception ignore) { }
} }
其它接口调用与示例类似,差异在于接口URL、请求报文,以及对响应报文的处理。
公布运价、私有单程运价和私有往返运价3个模块各接口(新增/修改/删除/查询/调价)的处理逻辑和限制是一致,因此下文在介绍 时没有区分模块。部分接口的请求/响应报文模块间会有差异,下文会分别介绍。
低价看板查询可直接接生产环境,数据更准确
-
同一账号每天新增运价数量上限为50W(可以找业务申请放大每天新增数据数量)
-
每次请求间隔不低于20秒,高于这个频率,携程OPS可能会认为是恶意攻击,封锁IP,导致API无法正常使用
-
新增/修改/删除/调价接口
-
请求报文中的Seq字段必填,起始值从1开始,不能重复
-
请求中运价数量上限为5W,超出上限时,接口调用会失败,给予错误提示
-
查询接口返回运价数量上限为1W,超出时将截取1W条返回
-
低价看板查询为单条可并发请求,每分钟限制210条
分为请求头(RequestHeader)和请求体(RequestBody)两部分,请求头各接口相同,请求体各接口不同,具体见各接口说明。
{
"requestHeader": {
"requestID": "b833fae2-8a52-4c35-9fb0-18f0c8c8e604",
"loginName": "your login name",
"password": "your password",
"language": "zh_CN"
},
"requestBody": " ..."
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestID | string | 是 | 请求ID:用于跟踪排查问题,调用方 保证其唯一性 |
| 2 | loginName | string | 是 | 登录用户名:供应商(主账户/子账户) |
| 3 | password | string | 是 | 登录密码 |
| 4 | language | string | 否 | 语言选项:默认zh_CN,单选(en_US/ zh_CN),消息会按照所选语言进行 切换 |
分为响应状态(ResponseStatus)、响应头(ResponseHeader)和响应体(ResponseBody)三部分,响应状态、响应头各接口相 同,响应体新增/修改/删除/调价是相同的具体见章节2.4,查询接口公布和私有有差异,具体见接口说明。
{
"ResponseStatus": {
"Timestamp": "2019-08-28T18:01:38.617+08:00",
"Ack": "Success",
"Errors": []
},
"responseHeader": {
"requestID": "b833fae2-8a52-4c35-9fb0-18f0c8c8e604",
"transactionID": "52e7e967-c41a-4471-ac19-0276103fabb8",
"replyStatus": "SUCCESS",
"message": "Success"
},
"responseBody": " ..."
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | Timestamp | string | 是 | 响应时间 |
| 2 | Ack | string | 是 | Success成功,其它均为接口调用失 败 |
| 3 | Errors | string | 是 | 当状态不为Success时,会输出错 误原因 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestID | string | 是 | 请求ID:回填入参时RequestID |
| 2 | transactionID | string | 是 | API事务ID |
| 3 | replyStatus | string | 是 | 响应状态:SUCCESS成功;NO_RE SULT无结果;ERROR错误 |
| 4 | message | string | 是 | 响应消息:消息提示 |
{
"ResponseStatus": " ",
"responseHeader": " ",
"totalCount": 4,
"successCount": 1,
"warnSuccessCount": 0,
"failCount": 3,
"successList": [
{
"externalID": "315010c9-b20d-46f0-a296-ab50ff6aa534",
"fareID": 892777945,
"seq": 1
}
],
"warnList": [],
"failList": [
{
"messageRefNum": 1,
"seq": 2
},
{
"messageRefNum": 1,
"seq": 3
},
{
"messageRefNum": 2,
"seq": 4
}
],
"messageList": [
{
"content": "OutboundReBookingFee: ",
"refNum": 1
},
{
"content": " 58e798db-58df-442c-8e5a-a31e0513991b",
"refNum": 2
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |
| 3 | totalCount | int | 是 | 总记录数 |
| 4 | successCount | int | 是 | 成功记录数 |
| 5 | warnCount | int | 是 | 警告记录数 |
| 6 | failCount | int | 是 | 失败记录数 |
| 7 | successList | list | 是 | 成功记录明细:每个元素是操作结果 (ResultInfo) |
| 8 | warnList | list | 是 | 警告记录明细:操作成功,但有提示 信息,每个元素是批量操作结果(Re sultInfo) |
| 9 | failList | list | 是 | 失败记录明细:每个元素是批量操作 结果(ResultInfo) |
| 10 | messageList | list | 是 | 消息列表:每个元素是消息提示(Me ssage) |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | seq | int | 是 | 序号:从1开始,请求内唯一不可重复 ,批量操作结果回填此字段,根据S eq值关联对应结果 |
| 2 | fareID | int | 是 | 新增成功时返回OpenAPI生成ID编 号;修改/删除/调价时回填入参fareI D;失败时:不返回 |
| 3 | externalID | int | 是 | 回填入参ExternalID;失败时:不返回 |
| 4 | owner | int | 是 | 仅删除操作时可用:回填删除条件( DeleteCondition)owner字段 |
| 5 | policyID | int | 是 | 仅删除操作时可用:回填除条件(Del eteCondition)policy字段 |
| 6 | messageRefNum | int | 是 | 消息索引编号,从1开始, 例:Messag eRefNum=1,对应BatchOperationR esponse->MessageList->RefNum =1的消息记录,null成功记录没有消 息 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | refNum | int | 是 | 消息索引编号,批量操作结果(Resul tInfo)的messageRefNum与该字段 值关联获取对应文本消息 |
| 2 | content | int | 是 | 文本消息 |
{
"requestHeader": {
"requestID": "19f38700-d1fa-49d5-ade8-fdad9c05f1f1",
"loginName": "your login name",
"password": "your password"
},
"records": [
{
"seq": 1,
"tripType": "RT",
"owner": "CA",
"interlineApplicable": true,
"salesDate": "2019-08-13>2025-06-01",
"commition": "20.50",
"profit": 20,
"commissionCalculation": 1,
"fareType": "Amadeus",
"invoiceType": 0,
"forSmallGroup": 2,
"publicToPrivate": false,
"forFilePrvOwFare": 2,
"applicableFareSource": 2,
"transferApplication": 2,
"allowOpenJaw": 2,
"cSApplicableNew": 2,
"fareID": null,
"externalID": "742c125f-11f7-4b1c-b4d9-a8abd49dbd27",
"policyID": "742c125f-11f7-4b1c-b4d9-a8abd49dbd27",
"combinablePolicyID": "742c125f-11f7-4b1c-b4d9-a8abd49dbd27",
"depCity": "BJS",
"arrCity": "LAX",
"depCityExcept": "",
"arrCityExcept": "",
"seatClass": "Y/S",
"interlineAirlineCode": "CZ",
"interlineAirlineCodeExcept": "MH/MU",
"outboundTravelDate": "2019-08-13>2025-06-01",
"fCInboundTravelDate": "2019-08-13>2025-06-01",
"ticketingDeadline": "",
"transferPoint": "SHA",
"ticketingRemark": "",
"workingTime": "",
"nationality": "",
"excludeNationality": "",
"penalties": 0,
"ticketingCity": "BJS",
"isPenaltiesAdvantage": 0,
"shareAirlineCode": "LH",
"shareAirlineCodeExcept": "",
"routingExcept": "SEL-TYO/CN-TYO",
"saleMarket": "CN",
"brandName": "SmartFare",
"priceRange": "10-20/20-30",
"excludeSaleMarket": "MK/HK",
"fareBasis": "",
"officeNo": "SHA888"
},
{
"seq": 2,
"tripType": "RT",
"owner": "CA",
"interlineApplicable": true,
"salesDate": "2019-08-13>2025-06-01",
"commition": "20.50",
"profit": 20,
"commissionCalculation": 1,
"fareType": "Amadeus",
"invoiceType": 0,
"forSmallGroup": 2,
"publicToPrivate": false,
"forFilePrvOwFare": 2,
"applicableFareSource": 2,
"transferApplication": 2,
"allowOpenJaw": 2,
"cSApplicableNew": 2,
"fareID": null,
"externalID": "66bca9bb-1d23-4f54-893e-b739d55b9ec7",
"policyID": "66bca9bb-1d23-4f54-893e-b739d55b9ec7",
"combinablePolicyID": "66bca9bb-1d23-4f54-893e-b739d55b9ec7",
"depCity": "BJS",
"arrCity": "LAX",
"depCityExcept": "",
"arrCityExcept": "",
"seatClass": "Y/S",
"interlineAirlineCode": "CZ",
"interlineAirlineCodeExcept": "MH/MU",
"outboundTravelDate": "2019-08-13>2025-06-01",
"fCInboundTravelDate": "2019-08-13>2025-06-01",
"ticketingDeadline": "",
"transferPoint": "SHA",
"ticketingRemark": "",
"workingTime": "",
"nationality": "",
"excludeNationality": "",
"penalties": 0,
"ticketingCity": "BJS",
"shareAirlineCode": "LH",
"shareAirlineCodeExcept": "",
"routingExcept": "SEL-TYO/CN-TYO",
"saleMarket": "CN",
"brandName": "SmartFare",
"priceRange": "10-20/20-30",
"excludeSaleMarket": "MK/HK",
"fareBasis": "",
"officeNo": "SHA888"
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | records | list | 是 | 新增记录列表:每个元素为2.4.1.3 公布运价记录(PubFareRecord)字 段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | seq | int | 是 | 序号:从1开始,请求内唯一不可重复 ,批量操作结果回填此字段,根据S eq值关联对应结果 |
| 2 | tripType | string | 是 | 行程类型:(OW=单程;RT=往返;BO TH=全部) |
| 3 | owner | string | 是 | 开票航司:航司二字代码,只允许录 入一家,要做航司是否存在check |
| 4 | interlineApplicable | boolean | 是 | 是否适用于联运:true=是;false=否 |
| 5 | salesDate | string | 是 | 销售日期:2014-11-01>2015-06-01 ,只允许录入一个,做日期check |
| 6 | commition | string | 是 | 返点:整数,最多允许保留两位小数, 当返点大于30时会进入异常运价, 需要手动解挂 |
| 7 | profit | int | 是 | 结算留钱:只支持正负整数输入;-20 表示返20元,20代表留20元,当留钱 小于-1000时提示警告,但是可以继 续保存 |
| 8 | commissionCalculation | int | 是 | 1/2RT佣金计算方式:单选 (1=取严;2=各取各) |
| 9 | fareType | string | 是 | 运价类型:单选(BSP;Amadeu;Web Site(航司官网);Abacus;Galileo),请 录入字母 |
| 10 | invoiceType | int | 是 | 报销凭证:0=旅游发票;1=行程单;2= 电子发票 |
| 11 | forSmallGroup | int | 是 | 是否适用小团价:单选(0=否;1=是;2
=不限) |
| 12 | publicToPrivate | boolean | 是 | 是否公布转私有:true=是;false=否 |
| 13 | forFilePrvOwFare | int | 是 | 是否适用文件私有Ow运价:单选(0= 否;1=是;2=不限) |
| 14 | applicableFareSource | int | 是 | 可适用运价来源:(1=ATPCO 公布 运价;2=ATPCO私有运价;3=不限) |
| 15 | transferApplication | int | 是 | 是否适用于中转:(0=否,表示仅适用 直飞; 1=是,表示仅适用中转;2=不限) |
| 16 | allowOpenJaw | int | 是 | 是否允许缺口:(0=否,表示不允许缺 口;1=是,表示仅适用缺口;2=不限) |
| 17 | cSApplicableNew | int | 是 | 是否适用代码共享航班:(0=否,表示 仅适用实际承运;1=是,表示仅适用 代码共享;2=不限) |
| 18 | fareID | long | 否 | 运价ID:由API生成新增时无需输入 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 19 | externalID | string | 否 | 外部编号:自由录入格式,如SHA570 0FF500 不可重复,最大长度50(中 文占2个长度) |
| 20 | policyID | string | 否 | 文件编号:自由录入格式,如SHA570 0FF500,最大长度50(中文占2个长 度) |
| 21 | combinablePolicyID | string | 否 | 可组文件编号:自由录入格式,如SH A5700FF500,当文件编号有值时, 可组文件编号也必须要有值,最大长 度50(中文占2个长度) |
| 22 | depCity | string | 否 | 出发地:城市三代 如SHA/NYC/SEL 国家二代 如CN/US/KR 大区四代 如SEAS/JPKR/NAME TC区代码 如TC1/TC2/TC 为空表示不限制 允 许混合录入,可录入多个用/隔开表 示多个最多允许录入100个,要做是 否存在check |
| 23 | arrCity | string | 否 | 目的地:同上 |
| 24 | depCityExcept | string | 否 | 出发地除外:同上 |
| 25 | arrCityExcept | string | 否 | 目的地除外:同上 |
| 26 | seatClass | string | 否 | 适用舱位:舱位代码,可录入多个用/ 隔开表示多个;为空表示不限制 |
| 27 | interlineAirlineCode | string | 否 | 适用联运航司:航司二字代码,允许 录入多个用/隔开表示或的关系,最 多允许录入20家航司,可为空表示 不限制,要做航司是否存在check |
| 28 | interlineAirlineCodeExcept | string | 否 | 除外联运航司:同上 |
| 29 | outboundTravelDate | string | 否 | 去程旅行日期:2014-11-01>2015-0 6-01,允许录入多个用/隔开表示或 的关系,可为空表示不限制,做日期c heck |
| 30 | fCInboundTravelDate | string | 否 | 回程旅行日期:同上 |
| 31 | passengerType | string | 否 | 乘客类型:三种乘客类型:成人/成人 陪伴儿童/无座婴儿(0/1/2),可录入 多个用/隔开表示或的关系,可以为 空默认全部,请输入数字 |
| 32 | eligibility | string | 否 | 旅客资质:两种旅客资质:普通/留学 生 (0/1),可以为空默认全部,请输入 数字 |
| 33 | ticketingDeadline | string | 否 | 出票时限:举例0-365,7,3表示至少 于预订后7天内出票或起飞前3天前 出票 |
| 34 | transferPoint | string | 否 | 指定转机点:支持城市三代/国家二 代/大区四代 ,多个用“/”隔开;为空不限制 |
| 35 | ticketingRemark | string | 否 | 出票备注:QTE需使用特使指令QT E:/XXXX |
| 36 | workingTime | string | 否 | 工作时间:09:00-18:00表示每一天 的早上9点到下午6点;09:00MON-1 8:00FRI表示周一到周五的每天早 上9点到下午6点,可为空,表示不限 制 |
| 37 | nationality | string | 否 | 国籍:国家二字代码,可录入多个用/ 隔开表示或的关系,为空表示不限制 |
| 38 | excludeNationality | string | 否 | 除外国籍:同上 |
| 39 | penalties | int | 否 | 退费费用:当“是否公布转私有“为“ 是“时,“退改费用“为必填值,1至2位 的正整数.该字段为百分比 |
| 40 | ticketingCity | string | 否 | 出票城市:录入一个城市三代; 当运 价类型为amadeus时必填,改回B SP时记得去除 |
| 41 | isPenaltiesAdvantage | short | 否 | 是否退改公转优:0:否,1:是 默认否 ,已废弃,只能传否 |
| 42 | shareAirlineCode | string | 否 | 适用共享航司:航司二字代码,允许 录入多个用/隔开表示或的关系,空 表示不限;与除外共享航司互斥二 选一 |
| 43 | shareAirlineCodeExcept | string | 否 | 除外共享航司:航司二字代码,允许 录入多个用/隔开表示或的关系,空 表示不限;与适用共享航司互斥二 选一 |
| 44 | routingExcept | string | 否 | 除外航线:支持大区四代、国家二代 ,城市三代;多个用/隔开;格式: SEL-TYO/CN-TYO |
| 45 | saleMarket | string | 否 | 销售市场,可多个,多个用/隔开 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 46 | brandName | string | 否 | 品牌运价,航司brandname,多个 用/隔开 |
| 47 | priceRange | string | 否 | 票价区间,格式0-200/201-301, 多个用/隔开。为空表示不限 |
| 48 | interlineApplicableNew | int | 否 | 是否适用于联运(新) 0.不适用联运 1.不限 2.仅适用联运 ;需要和携程 确认权限已经开通,若已经开通, 可以为interlineApplicableNew赋值 |
| 49 | excludeSaleMarket | string | 否 | 除外销售市场,可多个,多个用/隔 开 |
| 50 | fareBasis | string | 否 | FareBasis(票价基础),可录入 多个用/隔开表示多个;为空表示不 限制 |
| 51 | IsStandardPenaltiesPrivate | boolean | 否 | IsStandardPenaltiesPrivate 综合特惠 |
| 52 | IsAllowStopoverOutbound | int | 否 | 是否允许去程中转停留 0=不限;1=仅适用停留;2=否 |
| 53 | IsAllowStopoverInbound | int | 否 | 是否允许回程中转停留 0=不限;1=仅适用停留;2=否 |
| 54 | ExcludeSeatClass | string | 否 | 除外舱位 舱位代码,可录入多个用/ 隔开表示多个;为空表示不限制;修 改时NONE表示置空 |
| 55 | OfficeNo | string | 是 | 订位officeNo,运价类型(fareType 字段)=website时,officeno允许 为空;其他情况下必传 |
| 56 | flightNos | string | 否 | 指定航班号,多个用/隔开;修改时 NONE表示置空 |
| 57 | excludeFlightNos | string | 否 | 除外航班号,多个用/隔开;修改时 NONE表示置空 |
| 58 | excludeFareBasis | string | 否 | 除外FareBasis,可录入多个用/隔 开;修改时NONE表示置空 |
| 59 | isStopSales | short | 否 | 提前1小时关闭销售,0=是,1=否 |
{
"requestHeader": {
"requestID": "705f42a1-84bd-4408-8c0f-55f2eabf56ab",
"loginName": "your login name",
"password": "your password"
},
"records": [
{
"seq": 1,
"productType": 1,
"owner": "CA",
"airport": false,
"departCity": "SHA",
"arriveCity": "VII",
"routing": "SHA-CA-VII",
"routingClass": "Y",
"allowStopoverOutbound": false,
"outboundDayTime": "1234567",
"outboundDayTimeIndicator": 0,
"fCOutboundTravelDate": "2015-07-10>2020-10-31",
"fCOutboundTravelDateIndicator": 1,
"salesDate": "2015-07-10>2020-12-31",
"eligibility": 0,
"minPax": 1,
"maxPax": 9,
"fareType": "BSP",
"ticketType": 1,
"salesPrice": 2000,
"currency": "CNY",
"commition": "12.12",
"profit": -21,
"ticketingDeadline": "20-365,7,3/0-19,0,0",
"needPnr": false,
"invoiceType": 1,
"outboundChangeable": true,
"refundable": false,
"noshowReValidation": false,
"noshowRefund": true,
"saleType": 0,
"outboundBaggage": "20 ",
"fareID": null,
"externalID": "066cb028-ca84-4a91-800c-41eeef65fc26",
"policyID": "",
"fareBasis": "",
"forbiddenFlight": "",
"flight": "",
"outboundTravelDateExcept": "",
"chdDiscountRate": "",
"infantRate": "",
"nationality": "",
"excludeNationality": "",
"age": "",
"outboundReBookingFee": "200",
"outboundReBookingCurrency": "CNY",
"cancellationFee": "",
"cancellationCurrency": "",
"revNoshowCondition": "",
"revNoshowOutFee": "",
"revNoshowOutCurrency": "",
"refNoshowCondition": "0H",
"refNoshowFee": "151",
"refNoshowCurrency": "CNY",
"yourOfficeNO": "",
"ticketingRemark": "",
"workingTime": "",
"infOutboundBaggage": "",
"notificationID": 0,
"saleMarket": "DE/TW",
"excludeSaleMarket": "",
"brandName": "",
"officeNo": "SHA888"
},
{
"seq": 2,
"productType": 1,
"owner": "CA",
"airport": false,
"departCity": "SHA",
"arriveCity": "VII",
"routing": "SHA-CA-VII",
"routingClass": "Y",
"allowStopoverOutbound": false,
"outboundDayTime": "1234567",
"outboundDayTimeIndicator": 0,
"fCOutboundTravelDate": "2015-07-10>2020-10-31",
"fCOutboundTravelDateIndicator": 1,
"salesDate": "2015-07-10>2020-12-31",
"eligibility": 0,
"minPax": 1,
"maxPax": 9,
"fareType": "BSP",
"ticketType": 1,
"salesPrice": 2000,
"currency": "CNY",
"commition": "12.12",
"profit": -21,
"ticketingDeadline": "20-365,7,3/0-19,0,0",
"needPnr": false,
"invoiceType": 1,
"outboundChangeable": true,
"refundable": false,
"noshowReValidation": false,
"noshowRefund": true,
"saleType": 0,
"outboundBaggage": "20 ",
"fareID": null,
"externalID": "266986e6-fb0b-40d8-bdd2-b267c2cea032",
"policyID": "",
"fareBasis": "",
"forbiddenFlight": "",
"flight": "",
"outboundTravelDateExcept": "",
"chdDiscountRate": "",
"infantRate": "",
"nationality": "",
"excludeNationality": "",
"age": "",
"outboundReBookingFee": "200",
"outboundReBookingCurrency": "CNY",
"cancellationFee": "",
"cancellationCurrency": "",
"revNoshowCondition": "",
"revNoshowOutFee": "",
"revNoshowOutCurrency": "",
"refNoshowCondition": "0H",
"refNoshowFee": "151",
"refNoshowCurrency": "CNY",
"yourOfficeNO": "",
"ticketingRemark": "",
"workingTime": "",
"infOutboundBaggage": "",
"notificationID": 0,
"saleMarket": "",
"excludeSaleMarket": "DE/TW",
"brandName": "",
"officeNo": "SHA888"
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | records | list | 是 | 新增记录列表:每个元素为2.4.2.3 私有单程运价记录(PrvOwFareRec ord)字段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | seq | int | 是 | 序号:从1开始,请求内唯一不可重复 ,批量操作结果回填此字段,根据S eq值关联对应结果 |
| 2 | productType | int | 是 | 产品类型:(1=申请;7=特价) |
| 3 | owner | string | 是 | 开票航空公司:航空公司二字代码 |
| 4 | airport | boolean | 是 | 是否为机场码:(false=城市码 true=机场码) |
| 5 | departCity | string | 是 | 出发城市:城市三字代码/机场三字 码,允许录入多个可用/隔开表示或 的关系 |
| 6 | arriveCity | string | 是 | 到达城市:同上 |
| 7 | routing | string | 是 | 航路:(格式1=城市代码-销售航司城市代码;格式2=城市代码-销售航 司-城市代码-销售航司-城市代码), 航路的首尾必须和出发到达城市一 致,PS:无需录入完整航路,如果航路 录入选择格式1则录入机场码 |
| 8 | routingClass | string | 是 | 舱位代码:直飞航路只允许录入一个 舱位;转机航路当每段的预订舱位不 同时用-隔开,如Y-B;当两段的舱位 一致时只需录入一个,如Y-Y只需录 入Y即可;舱位之间不可用/隔开 |
| 9 | allowStopoverOutbound | boolean | 是 | 是否允许中途停留:(false=否 true=是) |
| 10 | outboundDayTime | string | 是 | 去程班期:1234567 作用在航段上,1 2:00-14:00表示每天的12点到14点; 12:00FRI-12:00SAT 表示周五的中 午12点至周六的中午12点 |
| 11 | outboundDayTimeIndicator | int | 是 | 去程班期作用点:单选(0=第一国际 段;1=始发航段;2=主航段) 输入0,1,2中一个 |
| 12 | fCOutboundTravelDate | string | 是 | 去程旅行日期:2014-05-01>2014-0 6-01 要做日期check |
| 13 | fCOutboundTravelDateIndicator | int | 是 | 去程旅行日期作用点:单选(0=第一 国际段;1=始发航段;2=主航段) 输入0,1,2中一个 |
| 14 | salesDate | string | 是 | 销售日期:2014-05-01>2014-06-01 要做日期check |
| 15 | eligibility | int | 是 | 旅客资质:单选(0=普通成人;1=留学 生) |
| 16 | minPax | int | 是 | 最小出行人数 |
| 17 | maxPax | int | 是 | 最大出行人数 |
| 18 | fareType | string | 是 | 运价类型 单选(B2B、B2C、BSP 、Amadeus、Abacus、Galileo、 Sabre、WorldSpan),请录入字母 |
| 19 | ticketType | int | 是 | 票种:单选(1=BSP电子票;2=航空公 司本票电子客票),请录入1或2 |
| 20 | currency | string | 是 | 币种:币种三字码,比如:CNY 与出发 地国家币种不符判断为异常运价,状 态为挂起需要手动解挂 |
| 21 | commition | string | 是 | 返点:整数或两位小数,当返点大于2 0时不可以保存 |
| 22 | profit | int | 是 | 留钱:只支持正负整数输入;-20表示 返20元,20代表留20元 当留钱小于1000或者小于票面的-15%时不可 以保存 |
| 23 | ticketingDeadline | string | 是 | 出票时限:举例:20-365,7,3/0-19,0,0 表示起飞前20天以前的预订,至少 于预订后7天内出票或起飞前3天前 出票/起飞前20天内的预订,预定后 立即出票(航班起飞日期,预订后多 久出票,航班起飞前多久出票) |
| 24 | needPnr | boolean | 是 | 是否创建PNR |
| 25 | invoiceType | int | 是 | 报销凭证:单选(0=旅行发票;1=行程 单;2=电子发票,廉航才可以选) |
| 26 | outboundChangeable | boolean | 是 | 去程可否更改 |
| 27 | refundable | boolean | 是 | 全部未使用可否退票 |
| 28 | noshowReValidation | boolean | 是 | 是否允许NOSHOW改期 |
| 29 | noshowRefund | boolean | 是 | 是否允许NOSHOW退票 |
| 30 | saleType | int | 是 | 销售类型:(0=普通;1=多票) |
| 31 | outboundBaggage | string | 是 | 去程行李额:只允许录入两种格式: 1.XX公斤 2.X件,每件XX公斤 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 32 | fareID | long | 否 | 运价ID:由API生成 |
| 33 | externalID | string | 否 | 外部编号 自由录入格式,如SHA570 0FF500:不可重复,最大长度50(中 文占2个长度) |
| 34 | policyID | string | 否 | 文件编号:自由录入格式,如SHA570 0FF500,最大长度50(中文占2个长 度) |
| 35 | fareBasis | string | 产品类型为综合特惠(8)时必填 | 运票价基础价类型:只允许录入一个 , |
| 36 | forbiddenFlight | string | 否 | 禁售航班:航班限制表达格式(1 CA001-999,CA3000-3999 表示CA 001至999以及3000至3999之间航 班号的航班;2 MU 表示所有MU开头的航班;3 CA(LH\AZ) 表示CA开头的实际承 运人为LH或AZ的航班;4 CA(*) 表 示CA代码共享航班/CA开头的实际 承运人为其他航空公司的航班;5 CA(CA) 表示CA自营航班/CA实际 承运航班;6 CA(OZ)001-999 表示C A开头航班号为001-999之间且实 际承运人为OZ的航班;7 为空表示无限制,多程用/分割) |
| 37 | flight | string | 否 | 可售航班:同上 |
| 38 | outboundTravelDateExcept | string | 否 | 去程除外旅行日期:格式2014-07-1 0>2014-10-31/2014-11-02>201412-31,要做日期check |
| 39 | chdDiscountRate | string | 否 | 儿童价:百分比或整数金额,只允许 录入一种 |
| 40 | infantRate | string | 否 | 无座婴儿价:百分比或整数金额,只 允许录入一种 |
| 41 | nationality | string | 否 | 适用乘客国籍:国家二字代码,可录 入多个用/隔开表示或的关系,为空 表示不限制 要做是否存在check |
| 42 | excludeNationality | string | 否 | 除外乘客国籍:同上 |
| 43 | age | string | 否 | 年龄:数字,可录入范围 如21-25表示21周岁至25周岁, 最 小年龄>70岁会进入异常运价,状 态为挂起需要手动解挂 |
| 44 | outboundReBookingFee | string | 否 | 去程改期费:固定金额或百分比只可 录入一种;当要录入百分比时币种必 须为空默认是CNY 当可更改时必填 |
| 45 | outboundReBookingCurrency | string | 否 | 去程改期币种:币种三字码,比如:CN Y 当费用为固定金额时必填 |
| 46 | cancellationFee | string | 否 | 全部未使用退票费用:固定金额或百 分比只可录入一种;当要录入百分比 时币种必须为空默认是CNY 当可退票时为必填 |
| 47 | cancellationCurrency | string | 否 | 全部未使用退票币种:币种三字码, 比如:CNY 当费用为固定金额时必填 |
| 48 | RevNoshowCondition | string | 否 | 改期时航班起飞前多久算NOSHO W:24H,表示24小时 当NOSHOW可改时必填 |
| 49 | RevNoshowOutFee | string | 否 | 去程NOSHOW改期费用:固定金额 或百分比只可录入一种;当要录入百 分比时币种必须为空默认是CNY 当NOSHOW可改时必填 |
| 50 | RevNoshowOutCurrency | string | 否 | 去程NOSHOW改期币种:币种三字 码,比如:CNY 当NOSHOW当费用 为固定金额时必填 |
| 51 | RefNoshowCondition | string | 否 | 退票时航班起飞前多久段NOSHO W:24H:表示24小时 当NOSHOW可退时必填 |
| 52 | RefNoshowFee | string | 否 | NOSHOW退票费用:固定金额或百 分比只可录入一种;当要录入百分比 时币种必须为空默认是CNY 当NOSHOW可退时必填 |
| 53 | RefNoshowCurrency | string | 否 | NOSHOW退票币种:币种三字码,比 如:CNY 当费用为固定金额时必填 |
| 54 | YourOfficeNO | string | 否 | 授权OFFICE号 |
| 55 | TicketingRemark | string | 否 | 出票备注:QTE需使用特使指令QT E:/XXXX |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 56 | WorkingTime | string | 否 | 工作时间:09:00-18:00表示每一天 的早上9点到下午6点 09:00MON-1 8:00FRI表示周一到周五的每天早 上9点到下午6点,可以为空,表示不 限制 |
| 57 | InfOutboundBaggage | string | 否 | 婴儿去程行李额:只允许录入两种格 式:1.XX公斤 2.X件,每件XX公斤 有婴儿价时必填 |
| 58 | NotificationID | string | 否 | 特殊备注ID:整数 |
| 59 | TariffCode | string | 产品类型为综合特惠(8)时必填 | 运价类型枚举:PUB、PRI |
| 60 | SaleMarket | string | 否 | 适用市场,可多个,多个用/隔开I |
| 61 | ExcludeSaleMarket | string | 否 | 除外市场市场,可多个,多个用/隔 开I |
| 62 | SalesPrice | int | 是 | 销售票面价 正整数 必填 |
| 63 | BrandName | string | 否 | 品牌名 |
| 64 | OfficeNo | string | 是 | 订位officeNo |
{
"requestHeader": {
"requestID": "9fa212d5-654d-4f67-8baa-c76e5e50f2c4",
"loginName": "your login name",
"password": "your password"
},
"records": [
{
"seq": 1,
"productType": 1,
"owner": "CA",
"airport": false,
"departCity": "SHA",
"arriveCity": "VII",
"routing": "SHA-CA-VII",
"routingClass": "Y",
"allowStopoverOutbound": false,
"outboundDayTime": "1234567",
"outboundDayTimeIndicator": 0,
"fCOutboundTravelDate": "2015-07-10>2020-10-31",
"fCOutboundTravelDateIndicator": 1,
"salesDate": "2015-07-10>2020-12-31",
"eligibility": 0,
"minPax": 1,
"maxPax": 9,
"fareType": "BSP",
"ticketType": 1,
"salesPrice": 2000,
"currency": "CNY",
"commition": "12.12",
"profit": -21,
"ticketingDeadline": "20-365,7,3/0-19,0,0",
"needPnr": false,
"invoiceType": 1,
"outboundChangeable": true,
"refundable": false,
"noshowReValidation": false,
"noshowRefund": false,
"saleType": 0,
"outboundBaggage": "20 ",
"fareID": null,
"externalID": "bd29d0ef-4f81-4b5f-83e0-c343923889e8",
"policyID": "",
"fareBasis": "",
"forbiddenFlight": "",
"flight": "",
"outboundTravelDateExcept": "",
"chdDiscountRate": "",
"infantRate": "",
"nationality": "",
"excludeNationality": "",
"age": "",
"outboundReBookingFee": "200",
"outboundReBookingCurrency": "CNY",
"cancellationFee": "",
"cancellationCurrency": "",
"revNoshowCondition": "",
"revNoshowOutFee": "",
"revNoshowOutCurrency": "",
"refNoshowCondition": "0H",
"refNoshowFee": "",
"yourOfficeNO": "",
"ticketingRemark": "",
"workingTime": "",
"infOutboundBaggage": "",
"notificationID": 0,
"allowCombination": false,
"allowOpenJaw": false,
"allowStopoverInbound": false,
"minStay": "1D",
"maxStay": "12M",
"partlyUsedRefundable": false,
"fCInboundTravelDate": "2015-07-10>2020-10-31",
"fCInboundTravelDateIndicator": 0,
"inboundDayTime": "1234567",
"inboundDayTimeIndicator": 0,
"inboundBaggage": "20 ",
"inboundChangeable": false,
"CommissionCalculation": 2,
"other": false,
"saleMarket": "DE/TW",
"excludeSaleMarket": "",
"brandName": "",
"officeNo": "SHA888"
},
{
"seq": 2,
"productType": 1,
"owner": "CA",
"airport": false,
"departCity": "SHA",
"arriveCity": "VII",
"routing": "SHA-CA-VII",
"routingClass": "Y",
"allowStopoverOutbound": false,
"outboundDayTime": "1234567",
"outboundDayTimeIndicator": 0,
"fCOutboundTravelDate": "2015-07-10>2020-10-31",
"fCOutboundTravelDateIndicator": 1,
"salesDate": "2015-07-10>2020-12-31",
"eligibility": 0,
"minPax": 1,
"maxPax": 9,
"fareType": "BSP",
"ticketType": 1,
"salesPrice": 2000,
"currency": "CNY",
"commition": "12.12",
"profit": -21,
"ticketingDeadline": "20-365,7,3/0-19,0,0",
"needPnr": false,
"invoiceType": 1,
"outboundChangeable": true,
"refundable": false,
"noshowReValidation": false,
"noshowRefund": false,
"saleType": 0,
"outboundBaggage": "20 ",
"fareID": 2,
"externalID": "31f9baf4-78c0-4df2-b335-f8f427f7b951",
"policyID": "",
"fareBasis": "",
"forbiddenFlight": "",
"flight": "",
"outboundTravelDateExcept": "",
"chdDiscountRate": "",
"infantRate": "",
"nationality": "",
"excludeNationality": "",
"age": "",
"outboundReBookingFee": "200",
"outboundReBookingCurrency": "CNY",
"cancellationFee": "",
"cancellationCurrency": "",
"revNoshowCondition": "",
"revNoshowOutFee": "",
"revNoshowOutCurrency": "",
"refNoshowCondition": "0H",
"refNoshowFee": "",
"yourOfficeNO": "",
"ticketingRemark": "",
"workingTime": "",
"infOutboundBaggage": "",
"notificationID": 0,
"allowCombination": false,
"allowOpenJaw": false,
"allowStopoverInbound": false,
"minStay": "1D",
"maxStay": "12M",
"partlyUsedRefundable": false,
"fCInboundTravelDate": "2015-07-10>2020-10-31",
"fCInboundTravelDateIndicator": 0,
"inboundDayTime": "1234567",
"inboundDayTimeIndicator": 0,
"inboundBaggage": "20 ",
"inboundChangeable": false,
"CommissionCalculation": 1,
"other": false,
"saleMarket": "",
"excludeSaleMarket": "DE/TW",
"brandName": "",
"officeNo": "SHA888"
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 2 | records | list | 是 | 新增记录列表:每个元素为2.4.3.3 私有往返运价记录(PrvRtFareReco rd)字段说明 |
私有往返运价包含2.4.2.3私有单程运价记录(PrvOwFareRecord)字段说明所有字段,下面表格仅描述在私有单程运价记录基础 上增加的字段:
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | allowCombination | boolean | 是 | 是否允许1/2RT组合主键:必填 |
| 2 | allowOpenJaw | boolean | 是 | 是否允许缺口:必填 |
| 3 | allowStopoverInbound | boolean | 是 | 是否允许回程中途停留:必填 |
| 4 | minStay | string | 是 | 最短停留期:3D表示3天; 4M表示4个月 SAT表示周六; 3D/SAT表示3天或者周六 必填 |
| 5 | maxStay | string | 是 | 最长停留期:同上 |
| 6 | partlyUsedRefundable | boolean | 是 | 部分未使用可否退票:(false:否;true: 是),必填 |
| 7 | fCInboundTravelDate | string | 是 | 回程旅行日期:2014-05-01>2014-0 6-01 要做日期check 必填 |
| 8 | fCInboundTravelDateIndicator | int | 是 | 回程旅行日期作用点:单选(0=第一 国际段;1=始发航段;2=主航段) 输入0,1,2中一个 必填 |
| 9 | InboundDayTime | string | 是 | 是否允许中途停留:(false=否 true=是) |
| 10 | InboundDayTimeIndicator | int | 是 | 回程班期作用点:单选(0=第一国际 段;1=始发航段;2=主航段),请传入0, 1,2中一个 必填 |
| 11 | InboundBaggage | string | 是 | 回程行李额:只允许录入两种格式:1
.XX公斤 2.X件,每件XX公斤 必填 |
| 12 | CombinablePolicyID | string | 否 | 可组文件编号:自由录入格式,如SH A5700FF500 当允许1/2RT时为必填 |
| 13 | OpenJawType | int | 否 | 缺口类型:单选(0:空,1:双缺、2:单 缺、3:始发缺、4:目的地缺),请输入 数字 允许缺口时必填 |
| 14 | CombinableOJPolicyNumber | string | 否 | 可组缺口文件编号:可为空,也可输 入文件编号 |
| 15 | PUOutboundTravelDate | string | 否 | 取严旅行日期:可为空,2014-07-10> 2014-10-31/2014-11-02>2014-1231 不为空时要做日期check |
| 16 | PUOutboundTravelDateIndicator | int | 否 | 取严旅行日期作用点:单选(0=第一 国际段;1=始发航段;2=主航段),请 传入0,1,2中一个 取严日期有值时必填 |
| 17 | InfInboundBaggage | string | 否 | 婴儿回程行李额:只允许录入两种格 式:1.XX公斤 2.X件,每件XX公斤 有婴儿价时必填 |
| 18 | InboundChangeable | boolean | 否 | 程可否更改:单选(false=否 true=是) 允许改期时必填 |
| 19 | InboundReBookingFee | string | 否 | 回程改期费:固定金额或百分比只可 录入一种;当要录入百分比时币种必 须为空默认是CNY 当可更改时为必填 |
| 20 | InboundReBookingCurrency | string | 否 | 回程改期币种:币种三字码,比如:CN Y 当费用为固定金额时必填 当费用为固定金额时必填 |
| 21 | PartlyUsedRefundFee | string | 否 | 部分未使用退票金额 固定金额或百 分比只可录入一种;当要录入百分比 时币种必须为空默认是CNY 当费用为固定金额时必填 |
| 22 | PartlyUsedRefundCurrency | string | 否 | 部分未使用退票币种 币种三字码,比如:CNY 允许退票时必填 |
| 23 | CommissionCalculation | int | 否 | 1/2RT佣金计算方式 单选(1=取严 2=各取各),请录入1或2 允许1/2RT时必填 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 24 | Other | boolean | 否 | 是否特殊运价 单选(false=否、true=是) 1)“是否允 许1/2RT组合“为“否”;2)“可组文件编 号”:不可填;3)“1/2RT佣金计算方式” :默认取严;4)航路:包含出发/到达城 市,首尾城市需一致;最大允许来回 程一程中转,即航路最大四段,例如S HA-KA-HKG-CX-BKK-CX-HKG-K A-SHA;5)舱位:航路有几段,舱位就 有几段;每段只能录入一个舱,用“-“ 隔开,例如Y-M-N-Y |
| 25 | InboundTravelDateExcept | string | 否 | 回程除外旅行日期 可为空,2014-07
-10>2014-10-31/2014-11-02>201 4-12-31 不为空时要做日期check |
| 26 | RevNoshowInFee | string | 否 | 回程NOSHOW改期费用 固定金额 或百分比只可录入一种;当要录入百 分比时币种必须为空默认是CNY 当NOSHOW可改时必填 |
| 27 | RevNoshowInCurrency | string | 否 | 回程NOSHOW改期币种 币种三字 码,比如:CNY当费用为固定金额时 必填 |
| 28 | RefNoshowPartlyFee | string | 否 | NOSHOW部分退票费用 固定金额 或百分比只可录入一种;当要录入百 分比时币种必须为空默认是CNY 当NOSHOW可退时必填 |
| 29 | RefNoshowPartlyCurrency | string | 否 | NOSHOW部分退票币种 币种三字码,比如:CNY 当费用为固定金额时必填 |
详见 2.3.4 新增/修改/删除/调价批量操作响应(BatchOperationResponse)
公布运价、私有单程运价,私有往返运价处理逻辑相同:
- 删除接口按指定条件删除匹配运价记录,支持fareIDList/externalIDList/deleteFareConditionList/deleteAllType作为条件,
其中fareIDList/externalIDList/deleteFareConditionList为单选,同时指定多个条件时接口将调用失败,并给予错误提示, deleteAllType支持与另外3个条件的其中1个进行组合
- 当条件字段是fareIDList或externalIDList时,list长度上限为5W,超出将调用失败,给予错误提示
- 当条件字段是deleteFareConditionList时,owner与policyID为and关系,list长度上限为5,超出将调用失败,给予错误提示
- deleteAllType为true时表示删除手工录入,Excel导入以及API创建的数据,默认为false仅删除API创建的数据
- fareIDList/externalIDList/deleteFareConditionList三种条件至少指定一个
删除上限为1W条,超出限制时接口将调用失败,并给予错误提示
{
"requestHeader": {
"requestID": "19f38700-d1fa-49d5-ade8-fdad9c05f1f1",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [
{
"seq": 1,
"fareID": 1588745
},
{
"seq": 2,
"fareID": 1590118
}
],
"externalIDList": [],
"deleteFareConditionList": [],
"deleteAllType": false
}
{
"requestHeader": {
"requestID": "8fe64a02-d8ec-4801-a3ce-1de7f2ec6589",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [],
"externalIDList": [
{
"seq": 1,
"externalID": "742c125f-11f7-4b1c-b4d9-a8abd49dbd27"
},
{
"seq": 2,
"externalID": "66bca9bb-1d23-4f54-893e-b739d55b9ec7"
}
],
"deleteFareConditionList": [],
"deleteAllType": false
}
{
"requestHeader": {
"requestID": "6def0fdb-6403-4512-a3d1-951e2b26d33f",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [],
"externalIDList": [],
"deleteFareConditionList": [
{
"seq": 1,
"owner": "CZ",
"policyID": "f059f1b1-3f3c-40d6-bd1e-b49c8be2e1ba"
},
{
"seq": 2,
"owner": "CA",
"policyID": "150e6381-25ce-4fa3-a7e9-42c1ee2e670a"
}
],
"deleteAllType": false
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | fareIDList | list | 否 | 运价ID列表:每个元素为运价ID:Far eID类型 |
| 3 | externalIDList | list | 否 | 外部编号列表:每个元素为外部编号 :ExternalID类型 |
| 4 | deleteFareConditionList | list | 否 | 删除条件列表:每个元素为删除条件 |
| 5 | deleteAllType | boolean | 是 | 是否删除全部类型:true 表示能删除 手工录入/Excel导入/API录入三部 分数据, false 仅删除API录入数据 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | seq | int | 是 | 序号 从1开始,请求内唯一不可重复 ,批量操作结果回填此字段,根据S eq值关联对应结果 |
| 2 | fareID | long | 否 | 原始运价ID |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | seq | int | 是 | 序号 从1开始,请求内唯一不可重复 ,批量操作结果回填此字段,根据S eq值关联对应结果 |
| 2 | externalID | long | 否 | 外部编号 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | seq | int | 是 | 序号 从1开始,请求内唯一不可重复 ,批量操作结果回填此字段,根据S eq值关联对应结果 |
| 2 | owner | long | 否 | 开票航司:与policyID字段至少有一 个字段不为空,支持两个字段同时输 入 |
| 3 | policyID | long | 否 | 文件编号:与owner字段至少有一个 字段不为空,支持两个字段同时输入 |
详见 2.3.4 新增/修改/删除/调价批量操作响应(BatchOperationResponse)
- fareID和externalID字段至少其中一个有值,否则将被忽略,给予错误提示
- fareID和externalID同时有值,优先用fareID,并更新externalID
- fareID和externalID验证合法性,有效的保留在更新列表中,无效的将被忽略,给予错误提示
- 当某个字段为null值时,默认是不对其进行处理(即不更新此值),对需要更新的字段,需要赋予合法有效的值,在验证通过后 才予以更新,否则会有不合法提示,对于要赋予空值(“”)的字段,string类型需要赋值为“NONE“,int类型需要赋值为214748364 7 如(depCityExcept=“NONE”,表明depCityExcept将被更新为““;penalties=2147483647,表明penalties将被更新为null)
修改接口的请求和响应与新增相同,详见 2.4 新增
- fareIDList/externalIDList/queryCondition作为条件,其中fareIDList/externalIDList/queryCondition为单选,
同时指定多个条件时,按优先级高的条件将生效,低优先级的条件将被忽略,条件优先级 fareIDList > externalIDList > queryCondition
- fareIDList精确匹配
- externalIDList精确匹配
- queryCondition内字段为组合条件,多个字段为and关系
- queryCondition字段匹配性:(SeatClass、RoutingClass、DepCity、ArrCity为模糊匹配,其它条件为等值完全匹配)
- 当字段无值或为空时,将不作为条件字段
- IsActivated,如果没有传值,默认为true
{
"requestHeader": {
"requestID": "fe97c07c-74bb-4530-8707-587c4ae11080",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [
1588745,
1590118
],
"externalIDList": [],
"queryCondition": {},
"encryptedFareIDList": []
}
{
"requestHeader": {
"requestID": "19d535c0-2bf2-4a5f-a4a8-f3a3d35cea66",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [],
"externalIDList": [
"742c125f-11f7-4b1c-b4d9-a8abd49dbd27",
"66bca9bb-1d23-4f54-893e-b739d55b9ec7"
],
"queryCondition": {},
"encryptedFareIDList": []
}
{
"requestHeader": {
"requestID": "05e0e480-1cf2-4bf3-92b8-502a162d5136",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [],
"externalIDList": [],
"queryCondition": {
"policyID": "742c125f-11f7-4b1c-b4d9-a8abd49dbd27",
"tripType": "OW",
"publicToPrivate": true,
"fareStatus": 1,
"owner": "CA",
"depCity": "SHA",
"arrCity": "LAX",
"seatClass": "Y",
"createUser": "your user name",
"activated": true,
"isPenaltiesAdvantage": 0
}
}
{
"requestHeader": {
"requestID": "0ebf7573-6f97-4fbb-b1c7-25f7335ac436",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [],
"externalIDList": [],
"queryCondition": {
"policyID": "742c125f-11f7-4b1c-b4d9-a8abd49dbd27",
"depCity": "BJS",
"arrCity": "LAX",
"fareStatus": 1,
"owner": "CZ",
"routingClass": "Y",
"productType": 1,
"nfFareId": "123456",
"createUser": "your user name",
"activated": true
}
}
{
"requestHeader": {
"requestID": "f9bde484-fcd4-4549-b708-32bdf42eded6",
"loginName": "your login name",
"password": "your password"
},
"fareIDList": [],
"externalIDList": [],
"queryCondition": {}
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | fareIDList | list | 否 | 运价ID列表:每个元素为运价ID:lon g类型 |
| 3 | externalIDList | list | 否 | 外部编号列表:每个元素为外部编号 :string类型 |
| 4 | queryCondition | QueryCondition | 否 | 删除条件列表:每个元素为删除条件 |
| 5 | encryptedFareIDList | list | 否 | 加密后运价ID列表, 与fareIDList互 斥:每个元素为加密后的外部编号:s tring类型 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | policyID | string | 否 | 文件编号列表 |
| 2 | tripType | string | 否 | 行程类型(OW:单程,RT:往返,BOTH :全部) |
| 3 | publicToPrivate | string | 否 | 是否公布转私有 (true=是 false=否) |
| 4 | fareStatus | boolean | 否 | 运价状态 (1=有效 2=挂起 3=异常 4=停用) |
| 5 | owner | string | 否 | 出发地 CTU/BJS/CN/AFRI/TC1 |
| 6 | depCity | string | 否 | 出发地 CTU/BJS/CN/AFRI/TC1 |
| 7 | arrCity | string | 否 | 目的地 同出发地 |
| 8 | seatClass | string | 否 | 适用舱位 |
| 9 | createUser | string | 否 | 创建人 |
| 10 | activated | string | 否 | 是否有效:true=有效;false=无效 |
| 11 | isPenaltiesAdvantage | short | 否 | 是否退改公转优:0:否,1:是 |
私有单程、往返运价查询条件相同
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | policyIDList | list | 否 | 文件编号列表 |
| 2 | depCity | string | 否 | 出发地 CTU/BJS/CN/AFRI/TC1 |
| 3 | arrCity | string | 否 | 目的地 同出发地 |
| 4 | fareStatus | string | 否 | 运价状态 (1=有效 2=挂起 3=异常 4=停用) |
| 5 | owner | string | 否 | 开票航司 |
| 6 | routingClass | string | 否 | 适用舱位 |
| 7 | productType | string | 否 | 产品类型 |
| 8 | nfFareId | string | 否 | 原始政策拆分后进单时对应的政策I D,即tooking进单政策编号 |
| 9 | createUser | string | 否 | 创建人 |
| 20 | activated | string | 否 | 是否有效:true=有效;false=无效 |
{
"ResponseStatus": {
"Timestamp": 1567415921367,
"Ack": "Success",
"Errors": [],
"Extension": []
},
"responseHeader": {
"requestID": "da84b2dc-adf6-4c0f-a87f-7227380f3466",
"transactionID": "daad6b19-41d1-4e86-8c85-e64bc976332f",
"replyStatus": "SUCCESS",
"message": " 1 "
},
"records": [
{
"fareID": 892777945,
"externalID": "315010c9-b20d-46f0-a296-ab50ff6aa534",
"tripType": "RT",
"owner": "CA",
"depCity": "BJS",
"arrCity": "LAX",
"commition": "20.50",
"profit": 20,
"transferApplication": 2,
"transferPoint": "SHA",
"interlineApplicable": true,
"allowOpenJaw": 2,
"publicToPrivate": false,
"policyID": "315010c9-b20d-46f0-a296-ab50ff6aa526",
"combinablePolicyID": "315010c9-b20d-46f0-a296-ab50ff6aa526",
"penalties": 0,
"activated": true,
"createUser": "your user name@API",
"createTime": "2019-09-02 10:49:04",
"updateUser": "your user name@API",
"updateLastTime": "2019-09-02 10:49:04",
"ticketingRemark": "^ ; 24 ;"
}
]
}
{
"ResponseStatus": {
"Timestamp": 1567416547857,
"Ack": "Success",
"Errors": [],
"Extension": []
},
"responseHeader": {
"requestID": "01d7c1a3-02f9-40cb-b79c-f904e9f3a8e9",
"transactionID": "d6a33053-ed14-4ba6-a98d-a23f485cfd56",
"replyStatus": "SUCCESS",
"message": " 1 "
},
"records": [
{
"fareID": 1475973164,
"owner": "CA",
"depCity": "SHA",
"arrCity": "LAX",
"routingClass": "Y",
"fCOutboundTravelDate": "2015-07-10>2020-10-31",
"salesPrice": 2000,
"currency": "CNY",
"commition": "12.12",
"profit": -21,
"externalID": "8012fc57-b7f7-4c80-80b6-ee6239ae4601",
"activated": true,
"createUser": "your user name@API",
"createTime": "2019-09-02 17:27:59",
"updateUser": "your user name@API",
"updateLastTime": "2019-09-02 17:27:59",
"ticketingRemark": "^ ; 24 ;"
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 2.3.2 响应状态(ResponseStatus) 字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 2.3.3 响应状态(ResponseStatus) 字段说明 |
| 3 | records | list | 是 | 匹配运价记录列表 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | fareID | long | 否 | 运价ID |
| 2 | externalID | string | 否 | 外部编号 |
| 3 | tripType | string | 是 | 行程类型(OW:单程 RT:往返 BOTH:全部 ) |
| 4 | owner | string | 是 | 开票航司 |
| 5 | depCity | string | 是 | 出发地 CTU/BJS/CN/AFRI/TC1 |
| 6 | arrCity | string | 是 | 同上 |
| 7 | seatClass | string | 是 | 适用舱位 |
| 8 | commition | string | 是 | 返点 |
| 9 | profit | short | 是 | 留钱 |
| 10 | transferApplication | short | 是 | 是否适用于中转 0:否,1:是,2:不限 |
| 11 | transferPoint | string | 是 | 指定转机点 |
| 12 | interlineApplicable | boolean | 是 | 是否适用于联运 true是,false否 |
| 13 | allowOpenJaw | short | 是 | 是否允许缺口 true 是 false 否 |
| 14 | publicToPrivate | string | 是 | 是否公布转私有 true 是 false 否 |
| 15 | policyID | string | 是 | 文件编号 |
| 16 | combinablePolicyID | string | 是 | 可组文件编号:单程运价无值,往返 运价有值 |
| 17 | penalties | string | 是 | 退改费用百分比 |
| 18 | activated | string | 是 | 是否有效 true 是,false 否 |
| 19 | createUser | string | 否 | 创建者 |
| 20 | createTime | string | 否 | 创建时间 |
| 21 | updateUser | string | 否 | 修改者 |
| 22 | updateLastTime | string | 否 | 修改时间 |
| 23 | ticketingRemark | string | 否 | 出票备注 |
| 24 | isPenaltiesAdvantage | short | 是 | 是否退改公转优 0:否,1:是 ,已废弃,只能传否 |
| 25 | shareAirlineCode | string | 否 | 适用共享航司 |
| 26 | shareAirlineCodeExcept | string | 否 | 除外共享航司 |
| 27 | routingExcept | string | 否 | 除外航线 |
| 28 | SaleMarket | string | 否 | 销售市场,可多个 |
| 29 | BrandName | string | 否 | 品牌运价,航司brandname,可多 个,多个用/隔开 |
| 30 | PriceRange | string | 否 | 票价区间,可多个,多个用/隔开。 为空表示不限 |
| 31 | InterlineApplicableNew | short | 否 | 是否适用于联运(新) 0.不适用联运1.仅适用联运 2.不限 |
| 32 | ExcludeSaleMarket | string | 否 | 除外销售市场,可多个,多个用/隔 开 |
| 33 | fareBasis | string | 否 | 票价基础 |
| 34 | isStandardPenaltiesPrivate | boolean | 否 | 是否综合特惠产品 |
| 35 | IsAllowStopoverOutbound | int | 否 | 是否允许去程中转停留 0=不限;1=仅适用停留;2=否 |
| 36 | IsAllowStopoverInbound | int | 否 | 是否允许回程中转停留 0=不限;1=仅适用停留;2=否 |
| 37 | ExcludeSeatClass | string | 否 | 除外舱位 |
| 38 | EncryptedFareID | string | 否 | 加密后运价ID |
| 39 | DepCityExcept | string | 否 | 出发地除外 |
| 40 | ArrCityExcept | string | 否 | 目的地除外 |
| 41 | InterlineAirlineCode | string | 否 | 适用联运航司 |
| 42 | InterlineAirlineCodeExcept | string | 否 | 除外联运航司 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 43 | OutboundTravelDate | string | 否 | 去程旅行日期 |
| 44 | FCInboundTravelDate | string | 否 | 回程旅行日期 |
| 45 | SalesDate | string | 否 | 销售日期 |
| 46 | PassengerType | string | 否 | 乘客类型 |
| 47 | Eligibility | string | 否 | 旅客资质 |
| 48 | CommissionCalculation | short | 否 | 1/2RT佣金计算方式 |
| 49 | FareType | short | 否 | 运价类型 |
| 50 | Nationality | string | 否 | 适用乘客国籍 |
| 51 | ExcludeNationality | string | 否 | 除外乘客国籍 |
| 52 | TicketingDeadline | string | 否 | 出票时限 |
| 53 | IsCSApplicableNew | short | 否 | 是否适用于代码共享航班 |
| 54 | IsForSmallGroup | short | 否 | 是否适用小团价 |
| 55 | IsForFilePubFare | short | 否 | 是否适用文件公布运价 |
| 56 | InvoiceType | short | 否 | 报销凭证 |
| 57 | TicketingCity | string | 否 | 出票城市 |
| 58 | ApplicableFareSource | short | 否 | 可适用运价来源 |
| 59 | FlightNos | string | 否 | 指定航班号 |
| 60 | ExcludeFlightNos | string | 否 | 除外航班号 |
| 61 | ExcludeFareBasis | string | 否 | 除外FareBasis |
| 62 | IsStopSales | short | 否 | 提前1小时关闭销售,0=是,1=否 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | fareID | long | 是 | 运价ID |
| 2 | externalID | string | 是 | 外部编号 |
| 3 | owner | string | 是 | 开票航司 |
| 4 | depCity | string | 是 | 出发地 CTU/BJS/CN/AFRI/TC1 |
| 5 | arrCity | string | 是 | 同上 |
| 6 | routingClass | string | 是 | 适用舱位 |
| 7 | fCOutboundTravelDate | string | 是 | 去程旅行日期 |
| 8 | fCInboundTravelDate | string | 是 | 回程旅行日期:单程运价无值,往返 运价有值 |
| 9 | salesPrice | int | 是 | 是否适用于中转 0:否,1:是,2:不限 |
| 10 | currency | string | 是 | 币种 |
| 11 | commition | string | 是 | 返点 |
| 12 | profit | short | 是 | 留钱 |
| 13 | policyID | string | 是 | 文件编号 |
| 14 | combinablePolicyID | string | 是 | 可组文件编号:单程运价无值,往返 运价有值 |
| 15 | activated | boolean | 是 | 是否有效 true 是,false 否 |
| 16 | createUser | string | 是 | 创建者 |
| 17 | createTime | string | 是 | 创建时间 |
| 18 | updateUser | string | 是 | 修改者 |
| 19 | updateLastTime | string | 是 | 修改时间 |
| 20 | ticketingRemark | string | 否 | 出票备注 |
| 21 | EncryptedFareID | string | 否 | 加密后运价ID |
| 22 | ProductType | short | 否 | 产品类型 |
| 23 | SaleType | short | 否 | 销售类型 |
| 24 | Routing | string | 否 | 航路 |
| 25 | ForbiddenFlight | string | 否 | 禁售航班 |
| 26 | Flight | string | 否 | 可售航班 |
| 27 | IsAllowStopoverOutbound | boolean | 否 | 允许去程中途停留 |
| 28 | FCOutboundTravelDateIndicator | short | 否 | 去程旅行日期作用点 |
| 29 | SalesDate | string | 否 | 销售日期 |
| 30 | OutboundDayTime | string | 否 | 去程班期 |
| 31 | Eligibility | short | 否 | 旅客资质 |
| 32 | MinPax | short | 否 | 最小出行人数 |
| 33 | MaxPax | short | 否 | 最大出行人数 |
| 34 | FareType | short | 否 | 运价类型 |
| 35 | TicketType | short | 否 | 票种 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 36 | FareBasis | string | 否 | 票价基础(farebasis) |
| 37 | ChdDiscoundRate | string | 否 | 儿童价 |
| 38 | TicketingDeadline | string | 否 | 出票时限 |
| 39 | IsNeedPnr | boolean | 否 | 创建PNR |
| 40 | Nationality | string | 否 | 适用乘客国籍 |
| 41 | ExcludeNationality | string | 否 | 除外乘客国籍 |
| 42 | Age | string | 否 | 乘客年龄 |
| 43 | OutboundBaggage | string | 否 | 成人去程行李额 |
| 44 | InfOutboundBaggage | string | 否 | 婴儿去程行李额 |
| 45 | YourOfficeNO | string | 否 | 授权OFFICE号 |
| 46 | InfantRate | string | 否 | 无座婴儿价 |
| 47 | IsOutboundChangeable | boolean | 否 | 去程可否更改 |
| 48 | OutboundRebooingFee | string | 否 | 去程改期费用 |
| 49 | OutboundRebookingCurrency | string | 否 | 去程改期币种 |
| 50 | IsRefundable | boolean | 否 | 全部未使用可否退票 |
| 51 | CancellationFee | string | 否 | 全部未使用退票费用 |
| 52 | CancellationCurrency | string | 否 | 全部未使用退票币种 |
| 53 | OutboundDayTimeIndicator | short | 否 | 去程班期作用点 |
| 54 | InvoiceType | short | 否 | 报销凭证 |
| 55 | IsAirport | boolean | 否 | 录入方式 |
| 56 | OutboundTravelDateExcept | string | 否 | 去程除外旅行日期 |
| 57 | IsNoshowRevalidation | boolean | 否 | 是否允许NOSHOW改期 |
| 58 | RevNoshowCondition | string | 否 | NOSHOW改期条件 |
| 59 | IsNoshowRefund | boolean | 否 | 是否允许NOSHOW退票 |
| 60 | RefNoshowCondition | string | 否 | NOSHOW退票条件 |
| 61 | RefNoshowFee | string | 否 | NOSHOW全部未使用退票费用 |
| 62 | RefNoshowCurrency | string | 否 | NOSHOW全部未使用退票币种 |
| 63 | RevNoshowOutFee | string | 否 | 去程NOSHOW改期费用 |
| 64 | RevNoshowOutCurrency | string | 否 | 去程NOSHOW改期币种 |
| 65 | NotificationID | int | 否 | 特殊提示 |
| 66 | TariffCode | string | 否 | 运价属性 |
| 67 | SaleMarket | string | 否 | 适用市场 |
| 68 | ExcludeSaleMarket | string | 否 | 除外市场 |
| 69 | BrandName | string | 否 | 品牌名 |
| 70 | IsAllowCombination | boolean | 否 | 允许1/2RT组合 |
| 71 | IsAllowOpenJaw | boolean | 否 | 是否允许缺口 |
| 72 | OpenJawType | short | 否 | 缺口类型 |
| 73 | IsAllowStopoverInbound | boolean | 否 | 允许回程中途停留 |
| 74 | PUOutboundTravelDate | string | 否 | 取严旅行日期 |
| 75 | PUOutboundTravelDateIndicator | short | 否 | 取严旅行日期作用点 |
| 76 | FCInboundTravelDateIndicator | short | 否 | 回程旅行日期作用点 |
| 77 | InboundDayTime | string | 否 | 回程班期 |
| 78 | MinStay | string | 否 | 最短停留期 |
| 79 | MaxStay | string | 否 | 最长停留期 |
| 80 | InboundBaggage | string | 否 | 成人回程行李额 |
| 81 | InfInboundBaggage | string | 否 | 婴儿回程行李额 |
| 82 | IsInboundChangeable | boolean | 否 | 回程可否更改 |
| 83 | InboundRebooingFee | string | 否 | 回程改期费用 |
| 84 | InboundRebookingCurrency | string | 否 | 回程改期币种 |
| 85 | IsPartlyUsedRefundable | boolean | 否 | 部分未使用可否退票 |
| 86 | PartlyUsedRefundFee | string | 否 | 部分未使用退票费用 |
| 87 | PartlyUsedRefundCurrency | string | 否 | 部分未使用退票币种 |
| 88 | InboundDayTimeIndicator | short | 否 | 回程班期作用点 |
| 89 | CommissionCalculation | short | 否 | 1/2RT佣金计算方式 |
| 90 | isOther | boolean | 否 | 是否特殊运价 |
| 91 | InboundTravelDateExcept | string | 否 | 回程除外旅行日期 |
| 92 | RevNoshowInFee | string | 否 | 回程NOSHOW改期费用 |
| 93 | RevNoshowInCurrency | string | 否 | 回程NOSHOW改期币种 |
| 94 | RefNoshowPartlyFee | string | 否 | NOSHOW部分未使用退票费用 |
| 95 | RefNoshowPartlyCurrency | string | 否 | NOSHOW部分未使用退票币种 |
公布运价、私有单程运价,私有往返运价处理逻辑相同:
- fareID和externalID字段至少其中一个有值,否则将被忽略,给予错误提示
- commition不为空且能够为正确转换为decimal数字类型时,profit不为空,调整运价的Commition 与 Profit,每条运价有不同的返点跟留钱,否则将忽略这条记录,
给予错误提示
- 调价逻辑为在原有返点,留钱的基础上进行相加或者相减,即原为a值,传递b值(正负都可)。调价后为:a = a+b
{
"requestHeader": {
"requestID": "f923a50d-c247-422e-8572-eaf15ad1fb16",
"loginName": "your login name",
"password": "your password"
},
"records": [
{
"seq": 1,
"fareID": 892777949,
"externalID": "2b173bcd-be1f-45c8-8064-1bccaebfafe4",
"commition": "1.5",
"profit": 10
},
{
"seq": 2,
"fareID": 892777948,
"externalID": "98ec26ad-b7bd-4bc8-9d9d-6508dee75a5e",
"commition": "2.5",
"profit": 20
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |
| 3 | records | list | 是 | 调价记录列表 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | seq | int | 是 | 序号 从1开始,请求内唯一不可重复 ,批量操作结果回填此字段,根据S eq值关联对应结果 |
| 2 | fareID | long | 否 | 运价ID |
| 3 | externalID | string | 否 | 外部编号 供应商自用编号,格式不 限,不可重复 |
| 4 | Commition | string | 是 | 返点 整数,不能为空最多允许保留 两位小数,当返点大于20时不可以 保存 |
| 5 | profit | string | 是 | 结算留钱 只支持正负整数输入不能 为空;-20表示返20元,20代表留20 元,当留钱小于-1000时或者小于票 面的-15%时不可以保存 |
详见 2.3.4 新增/修改/删除/调价批量操作响应(BatchOperationResponse)
限制:
- 每分钟请求次数上限为210次,超出将给予错误提示2.0
{
"requestHeader": {
"requestID": "c444550d-cd07-4dbb-b4fd-17f4c705ae8e",
"loginName": "your user name",
"password": "your password",
"language": "zh_CN"
},
"queryCondition": {
"tripType": "OW",
"validatingCarrier": "WE",
"seatGrade": "W",
"segments": [
{
"segmentNo": 1,
"departCity": "BKK",
"arriveCity": "HKT",
"departDate": "2023-01-13"
}
],
"travelerCount": 1,
"childTravelerCount": 0,
"channel": "FlightIntlOnline",
"subChannel": 0,
"scMarket": null,
"specialParam": null,
"agencyID": 3399,
"babyTravelerCount": 0
}
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | RequestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | queryCondition | LowPriceQueryCondition | 是 | 低价查询条件:2.9.3 低价查询条件( LowPriceQueryCondition)字段说 明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | tripType | string | 是 | 行程类型(OW;RT;MT) |
| 2 | validatingCarrier | string | 否 | 开票航司二字码 |
| 3 | segments | list | 是 | list每个元素是Segment对象:2.9.4 用户行程段(Segment)字段说明 |
| 4 | travelerCount | int | 是 | 成人乘客人数(选择数字1-9) |
| 5 | childTravelerCount | int | 否 | 儿童人数(选择数字1-9),可为 空 (为空是只请求成人,不为空表 示请求儿童+成人) |
| 6 | seatGrade | string | 是 | 舱等(Y;C;F) |
| 7 | channel | string | 是 | 主渠道;FlightIntlOnline、English Site,Mobile |
| 8 | subChannel | int | 是 | 子渠道;主站传0 |
| 9 | specialParam | string | 是 | 特殊参数,多个用逗号分隔,Speci alSupply-特价产品 |
| 10 | childTravelerCount | int | 否 | 婴儿乘客数量 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | segmentNo | int | 是 | 用户行程段号,从1开始 |
| 2 | departCity | string | 是 | 出发城市(标准城市三字码) |
| 3 | arriveCity | string | 是 | 到达城市(标准城市三字码) |
| 4 | departDate | string | 是 | 出发日期(日期格式:2015-03-08 ) |
{
"ResponseStatus": {
"Timestamp": "2022-12-26T18:03:46.085+08:00",
"Ack": "Success",
"Errors": [],
"Build": null,
"Version": null,
"Extension": []
},
"responseHeader": {
"requestID": "c444550d-cd07-4dbb-b4fd-17f4c705ae8e",
"transactionID": "a5f24ff6-6cb8-463a-9ff3-b730770f1ae1",
"replyStatus": "SUCCESS",
"message": " 10 "
},
"responseBody": {
"flights": [
{
"flightId": "13",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE201",
"takeOffDateTime": "2023-01-13 07:45:00",
"arriveDateTime": "2023-01-13 09:10:00"
},
{
"flightId": "14",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE217",
"takeOffDateTime": "2023-01-13 17:35:00",
"arriveDateTime": "2023-01-13 19:05:00"
},
{
"flightId": "4",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE289",
"takeOffDateTime": "2023-01-13 07:40:00",
"arriveDateTime": "2023-01-13 09:10:00"
},
{
"flightId": "15",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE215",
"takeOffDateTime": "2023-01-13 14:00:00",
"arriveDateTime": "2023-01-13 15:25:00"
},
{
"flightId": "7",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE283",
"takeOffDateTime": "2023-01-13 15:05:00",
"arriveDateTime": "2023-01-13 16:35:00"
},
{
"flightId": "19",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE207",
"takeOffDateTime": "2023-01-13 11:30:00",
"arriveDateTime": "2023-01-13 13:00:00"
},
{
"flightId": "8",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE211",
"takeOffDateTime": "2023-01-13 19:10:00",
"arriveDateTime": "2023-01-13 20:35:00"
},
{
"flightId": "9",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE209",
"takeOffDateTime": "2023-01-13 13:00:00",
"arriveDateTime": "2023-01-13 14:30:00"
},
{
"flightId": "20",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE221",
"takeOffDateTime": "2023-01-13 18:15:00",
"arriveDateTime": "2023-01-13 19:45:00"
},
{
"flightId": "10",
"departCity": "BKK",
"arriveCity": "HKT",
"departAirport": "BKK",
"arriveAirport": "HKT",
"flightNo": "WE203",
"takeOffDateTime": "2023-01-13 08:10:00",
"arriveDateTime": "2023-01-13 09:35:00"
}
],
"lowPrices": [
{
"flightRefs": [
{
"segmentNo": 1,
"sequenceNo": 1,
"seatClass": "U",
"flightId": "4",
"flightNo": "WE289"
}
],
"prices": [
{
"gds": "GDS-WS",
"productType": null,
"productTypeName": " ",
"adtPolicyInfos": null,
"chdPolicyInfos": null,
"seatClass": "U",
"travelerEligibility": "ADT",
"baggage": "BKK-HKT: : 30 ",
"passengerRestriction": "",
"invoiceType": " ",
"quantifyFlagRemark": "LOW_PRICE:N |STANDARD_PRICE |BAGGAGE:30 30 ",
"quantifyFlag": "LOW_PRICE:N,STANDARD_PRICE,BAGGAGE:30",
"sortIndicator": 869.0,
"scPrice": null,
"showState": 1,
"isOwn": null,
"infPolicyInfos": null,
"adtTax": 50.0,
"chdTax": 0.0,
"infTax": 0.0,
"adtPublishPrice": 869.0,
"chdPublishPrice": 0.0,
"infPublishPrice": 0.0,
"currency": "CNY",
"adtFareBasis": "NO",
"chdFareBasis": "",
"infFareBasis": "",
"csdDataId": ""
},
{
"gds": "GDS-WS",
"productType": null,
"productTypeName": " ",
"adtPolicyInfos": null,
"chdPolicyInfos": null,
"seatClass": "U",
"travelerEligibility": "ADT",
"baggage": "BKK-HKT: : 30 ",
"passengerRestriction": "",
"invoiceType": " ",
"quantifyFlagRemark": "INVOICE ",
"quantifyFlag": "INVOICE",
"sortIndicator": 908.0,
"scPrice": null,
"showState": 1,
"isOwn": null
}
]
},
{
"flightRefs": [
{
"segmentNo": 1,
"sequenceNo": 1,
"seatClass": "U",
"flightId": "13",
"flightNo": "WE201"
}
],
"prices": [
{
"gds": "GDS-WS",
"productType": null,
"productTypeName": " ",
"adtPolicyInfos": null,
"chdPolicyInfos": null,
"seatClass": "U",
"travelerEligibility": "ADT",
"baggage": "BKK-HKT: : 30 ",
"passengerRestriction": "",
"invoiceType": " ",
"quantifyFlagRemark": "LOW_PRICE:N |STANDARD_PRICE |BAGGAGE:30 30 ",
"quantifyFlag": "LOW_PRICE:N,STANDARD_PRICE,BAGGAGE:30",
"sortIndicator": 869.0,
"scPrice": null,
"showState": 1,
"isOwn": null
},
{
"gds": "GDS-WS",
"productType": null,
"productTypeName": " ",
"adtPolicyInfos": null,
"chdPolicyInfos": null,
"seatClass": "U",
"travelerEligibility": "ADT",
"baggage": "BKK-HKT: : 30 ",
"passengerRestriction": "",
"invoiceType": " ",
"quantifyFlagRemark": "INVOICE ",
"quantifyFlag": "INVOICE",
"sortIndicator": 908.0,
"scPrice": null,
"showState": 1,
"isOwn": null
}
]
},
{
"flightRefs": [
{
"segmentNo": 1,
"sequenceNo": 1,
"seatClass": "U",
"flightId": "10",
"flightNo": "WE203"
}
],
"prices": [
{
"gds": "GDS-WS",
"productType": null,
"productTypeName": " ",
"adtPolicyInfos": null,
"chdPolicyInfos": null,
"seatClass": "U",
"travelerEligibility": "ADT",
"baggage": "BKK-HKT: : 30 ",
"passengerRestriction": "",
"invoiceType": " ",
"quantifyFlagRemark": "LOW_PRICE:N |STANDARD_PRICE |BAGGAGE:30 30 ",
"quantifyFlag": "LOW_PRICE:N,STANDARD_PRICE,BAGGAGE:30",
"sortIndicator": 869.0,
"scPrice": null,
"showState": 1,
"isOwn": null
},
{
"gds": "GDS-WS",
"productType": null,
"productTypeName": " ",
"adtPolicyInfos": null,
"chdPolicyInfos": null,
"seatClass": "U",
"travelerEligibility": "ADT",
"baggage": "BKK-HKT: : 30 ",
"passengerRestriction": "",
"invoiceType": " ",
"quantifyFlagRemark": "INVOICE ",
"quantifyFlag": "INVOICE",
"sortIndicator": 908.0,
"scPrice": null,
"showState": 1,
"isOwn": null
}
]
},
{
"flightRefs": [
{
"segmentNo": 1,
"sequenceNo": 1,
"seatClass": "U",
"flightId": "19",
"flightNo": "WE207"
}
],
"prices": [
{
"gds": "GDS-WS",
"productType": null,
"productTypeName": " ",
"adtPolicyInfos": null,
"chdPolicyInfos": null,
"seatClass": "U",
"travelerEligibility": "ADT",
"baggage": "BKK-HKT: : 30 ",
"passengerRestriction": "",
"invoiceType": " ",
"quantifyFlagRemark": "LOW_PRICE:N |STANDARD_PRICE |BAGGAGE:30 30 ",
"quantifyFlag": "LOW_PRICE:N,STANDARD_PRICE,BAGGAGE:30"
}
]
}
]
}
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |
| 3 | responseBody | LowPriceResponseBody | 是 | 响应结果实体:2.9.7 响应结果主体 信息(LowPriceResponseBody)字 段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | flights | list | 是 | 每个元素为航班基础信息说明2.9.8 航班信息(FlightDataType)字段说 明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 2 | lowPrices | list | 是 | 每个元素为航组引用信息及关联的 价格列表信息:2.9.9 航组价格信息( LowPriceDataType)字段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | flightId | string | 是 | 航班ID |
| 2 | departCity | string | 是 | 出发城市(标准城市三字码) |
| 3 | arriveCity | string | 是 | 到达城市 (标准城市三字码) |
| 4 | departAirport | string | 是 | 出发机场 (标准机场三字码) |
| 5 | arriveAirport | string | 是 | 到达机场 (标准机场三字码) |
| 6 | flightNo | string | 是 | 航班号 |
| 7 | takeOffDateTime | string | 是 | 出发时间 格式:2023-11-27 15:41:00 |
| 8 | arriveDateTime | string | 是 | 到达时间 格式:2023-11-28 19:35:00 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | flightRefs | list | 是 | 航班引用信息,其中的flightId与2. 9.8关联对应2.9.10 航班引用信息( FlightRefDataType)字段说明 |
| 2 | prices | list | 是 | 当前航班下包含的价格信息2.9.11 价格信息(PriceDataType)字段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | flightId | string | 是 | 航班ID, 例:flightId=1,对应response Body->flights->flightId=1的航班记 录 |
| 2 | segmentNo | int | 是 | 用户行程段序号,从1开始,与入参对 应 |
| 3 | sequenceNo | int | 是 | 航班在用户行程段内序号,从1开 始 |
| 4 | seatClass | string | 是 | 航班舱位 |
| 5 | flightNo | string | 是 | 航班号,对应responseBody->fligh ts->flightId=1的航班记录 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | productTypeName | string | 是 | productTypeName 产品类型(私有 运价(含公转私),公布运价(纯公布)) |
| 2 | gds | string | 是 | 引擎标识 |
| 3 | adtPolicyInfos | list | 是 | 成人政策列表:2.9.12 政策信息(Policy)字段说明 |
| 4 | chdPolicyInfos | list | 是 | 儿童政策列表:2.9.12 政策信息(Policy)字段说明 |
| 5 | seatClasses | list | 是 | 舱位列表 |
| 6 | travelerEligibility | string | 是 | PassengerEligibility 乘客资质 |
| 7 | baggage | string | 是 | 托运行李额 |
| 8 | passengerRestriction | string | 是 | 限制类型 |
| 9 | invoiceType | string | 是 | 报销凭证 |
| 10 | quantifyFlag | string | 是 | 属性标签 |
| 11 | quantifyFlagRemark | string | 是 | 属性标签解析文字 |
| 12 | sortIndicator | double | 是 | 平均含税底价 |
| 13 | scPrice | double | 是 | SC指导价 |
| 14 | showState | int | 是 | 输出状态 0-不展示 1-展示 |
| 15 | isOwn | boolean | 是 | 是否我的价格 true-是 false-不是 |
| 16 | infPolicyInfos | list | 是 | 婴儿政策列表:2.9.12 政策信息(Policy)字段说明 |
| 17 | adtTax | double | 是 | 成人税金 |
| 18 | chdTax | double | 是 | 儿童税金 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 19 | infTax | double | 是 | 婴儿税金 |
| 20 | adtPublishPrice | double | 是 | 成人票面价 |
| 21 | chdPublishPrice | double | 是 | 儿童票面价 |
| 22 | infPublishPrice | double | 是 | 婴儿票面价 |
| 23 | currency | string | 是 | 币种 |
| 24 | adtFareBasis | string | 是 | 成人FareBasis |
| 25 | chdFareBasis | string | 是 | 儿童FareBasis |
| 26 | infFareBasis | string | 是 | 婴儿FareBasis |
| 27 | csdDataId | string | 是 | csd报价对应查询data |
| 28 | adtBrandNames | list | 是 | 成人品牌列表:2.9.13 品牌信息(BrandName)字段说明 |
| 29 | chdBrandNames | list | 是 | 儿童品牌列表:2.9.13 品牌信息(BrandName)字段说明 |
| 30 | infBrandNames | list | 是 | 婴儿品牌列表:2.9.13 品牌信息(BrandName)字段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | policyId | string | 是 | 政策编号 |
| 2 | externalPolicyId | string | 是 | 政策外部编号 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | segmentNo | int | 是 | 用户程编号 |
| 2 | sequenceNo | int | 是 | 用户程航班编号 |
| 3 | brandName | string | 是 | 品牌名 |
{
"requestHeader": {
"requestID": "c444550d-cd07-4dbb-b4fd-17f4c705ae8e",
"loginName": "your login name",
"password": "your password",
"language": "zh_CN"
},
"conditions": [
{
"tripType": "RT",
"validatingCarrier": "OZ",
"departCity": "HKG",
"arriveCity": "SFO",
"outboundDate": "2023-03-20",
"inboundDate": "2023-03-21",
"brandName": "",
"channel": "Mobile",
"FareType": "Amadeus"
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | RequestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | Conditions | list | 是 | 查询条件,list每个元素是MegaFare SearchCondition对象:2.10.3 查询 条件(MegaFareSearchCondition) 字段说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | tripType | string | 是 | 行程类型(OW;RT;MT) |
| 2 | validatingCarrier | string | 是 | 开票航司二字码 |
| 3 | fareType | string | 是 | 运价类型:Amadeus,WebSite |
| 4 | departCity | string | 是 | 出发城市(标准城市三字码) |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 5 | arriveCity | string | 是 | 到达城市(标准城市三字码) |
| 6 | outboundDate | string | 是 | 去程日期 格式 yyyy-MM-dd |
| 7 | InboundDate | string | 否 | 回程日期 格式 yyyy-MM-dd |
| 8 | channel | string | 是 | 主渠道;FlightIntlOnline、English Site,Mobile |
| 9 | brandName | string | 否 | 品牌运价,仅支持单个 |
{
"ResponseStatus": {
"Timestamp": "2023-02-22T14:23:48.327+08:00",
"Ack": "Success",
"Errors": [],
"Build": null,
"Version": null,
"Extension": []
},
"responseHeader": null,
"records": [
{
"tripType": "RT",
"validatingCarrier": "OZ",
"fareType": "Amadeus",
"departCity": "HKG",
"arriveCity": "SFO",
"outboundDate": "2023-03-20",
"inboundDate": "2023-03-21",
"channel": "Mobile",
"brandName": "",
"hasFare": false
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | ResponseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |
| 3 | Records | list | 是 | list每个元素是MegaFareData对象, 响应结果节点实体:2.10.6 响应结 果节点信息(MegaFareData)字段 说明 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | tripType | string | 是 | 行程类型(OW;RT;MT) |
| 2 | validatingCarrier | string | 是 | 开票航司二字码 |
| 3 | fareType | string | 是 | 运价类型:Amadeus,WebSite |
| 4 | departCity | string | 是 | 出发城市(标准城市三字码) |
| 5 | arriveCity | string | 是 | 到达城市(标准城市三字码) |
| 6 | outboundDate | string | 是 | 去程日期 格式 yyyy-MM-dd |
| 7 | InboundDate | string | 否 | 回程日期 格式 yyyy-MM-dd |
| 8 | channel | string | 是 | 主渠道;FlightIntlOnline、English Site,Mobile |
| 9 | brandName | string | 否 | 品牌运价,仅支持单个 |
| 10 | HasFare | boolean | 是 | 是否有运价 |
提供CSD票台(非kwp)航线策略模块(新增/修改/删除/查询)接口。
- 新增/修改/删除 每次请求间隔不低于20秒,高于这个频率,携程OPS可能会认为是恶意攻击,封锁IP,导致API无法正常使用
- 查询功能目前为分页查询,单页最大2000,每10s限制5次查询
- 新增接口支持批量,单次新增不超过500条
- 删除接口支持批量,单次删除不超过2000条
3.2.1查询接口
{
"requestHeader": {
"requestID": "19f38700-d1fa-49d5-ade8-fdad9c05f1f1",
"loginName": "your login name",
"password": "your password"
},
"queryCondition": {
"tripType": "RT",
"originType": 1,
"origin": "SHA",
"destinationType": 1,
"destination": "LON"
},
"pageNo": 1,
"sizePerPage": 50
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | queryCondition | CsdAllocationStrategyQueryCondi tion | 否 | 查询条件为3.2.1.3 Csd航线策略查 询条件(CsdAllocationStrategyQue ryCondition)字段说明字段说明) |
| 3 | pageNo | int | 否 | 页码,默认1 |
| 4 | sizePerPage | int | 否 | 每页记录数,默认2000 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | tripType | string | 否 | 行程类型(OW;RT;MT) |
| 2 | originType | int | 否 | 出发地类型, 1-城市/2-国家/4-大区/ 8-TC区/16-全部 |
| 3 | origin | string | 否 | 出发地 |
| 4 | destinationType | int | 否 | 到达地类型, 1-城市/2-国家/4-大区/ 8-TC区/16-全部 |
| 5 | destination | string | 否 | 到达地 |
{
"ResponseStatus": {
"Timestamp": "2025-11-11T14:07:25.174+08:00",
"Ack": "Success",
"Errors": [],
"Build": null,
"Version": null,
"Extension": []
},
"responseHeader": {
"requestID": "e8ba396f-bd27-40a7-86a6-b06aa014224",
"transactionID": "af084672-f0b0-4238-b49d-12a7e5a23f33",
"replyStatus": "SUCCESS",
"message": "SUCCESS"
},
"csdAllocationStrategyList": [
{
"allocationID": 10001,
"agentID": 1000,
"tripType": "RT",
"originType": 1,
"origin": "BKK",
"destinationType": 1,
"destination": "KUL",
"travelStartDate": "2025-11-10",
"travelEndDate": "2025-12-10"
},
{
"allocationID": 10002,
"agentID": 1000,
"tripType": "",
"originType": 1,
"origin": "BKK",
"destinationType": 1,
"destination": "KUL",
"travelStartDate": null,
"travelEndDate": null
}
],
"total": 4
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |
| 3 | csdAllocationStrategyList | list | 是 | list每个元素是CsdAllocationStrate gy对象,响应结果节点实体:3.2.1.6 Csd航线策略(CsdAllocationStrate gy)字段说明字段说明) |
| 4 | total | int | 是 | 符合查询条件的总记录数 |
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | allocationID | int | 是 | 策略ID,新增请求不传 |
| 2 | agentID | int | 否 | 票台ID |
| 3 | tripType | string | 否 | 行程类型(OW;RT;MT) |
| 4 | originType | int | 是 | 出发地类型, 1-城市/2-国家/4-大区/ 8-TC区/16-全部 |
| 5 | origin | string | 是 | 出发地 |
| 6 | destinationType | int | 是 | 到达地类型, 1-城市/2-国家/4-大区/ 8-TC区/16-全部 |
| 7 | destination | string | 是 | 到达地 |
| 8 | travelStartDate | string | 否 | 旅行开始日期,格式yyyy-MM-dd |
| 9 | travelEndDate | string | 否 | 旅行结束日期,格式yyyy-MM-dd |
{
"requestHeader": {
"requestID": "19f38700-d1fa-49d5-ade8-fdad9c05f1f1",
"loginName": "your login name",
"password": "your password"
},
"csdAllocationStrategyList": [
{
"tripType": "OW",
"originType": 1,
"origin": "BKK",
"destinationType": 1,
"destination": "KUL",
"travelStartDate": null,
"travelEndDate": null
},
{
"tripType": "RT",
"originType": 1,
"origin": "BKK",
"destinationType": 1,
"destination": "KUL",
"travelStartDate": "2025-11-10",
"travelEndDate": "2025-12-11"
}
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | csdAllocationStrategyList | list | 是 | list每个元素是CsdAllocationStrate gy对象,结果节点实体:3.2.1.6Csd 航线策略(CsdAllocationStrategy) 字段说明字段说明) |
{
"ResponseStatus": {
"Timestamp": "2025-11-11T14:22:58.171+08:00",
"Ack": "Success",
"Errors": [],
"Build": null,
"Version": null,
"Extension": []
},
"responseHeader": {
"requestID": "e8ba396f-bd27-40a7-86a6-b06aa014224",
"transactionID": "7c50ee5b-37b3-450c-b1df-ebce7b9e5e5c",
"replyStatus": "SUCCESS",
"message": "SUCCESS"
}
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |
{
"requestHeader": {
"requestID": "19f38700-d1fa-49d5-ade8-fdad9c05f1f1",
"loginName": "your login name",
"password": "your password"
},
"csdAllocationStrategy": {
"tripType": "OW",
"originType": 1,
"origin": "BKK",
"destinationType": 1,
"destination": "KUL",
"travelStartDate": null,
"travelEndDate": null
}
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | csdAllocationStrategy | CsdAllocationStrategy | 是 | CsdAllocationStrategy对象,节点实 体:3.2.1.6Csd航线策略(CsdAllocat ionStrategy)字段说明字段说明) |
{
"ResponseStatus": {
"Timestamp": "2025-11-11T14:22:58.171+08:00",
"Ack": "Success",
"Errors": [],
"Build": null,
"Version": null,
"Extension": []
},
"responseHeader": {
"requestID": "e8ba396f-bd27-40a7-86a6-b06aa014224",
"transactionID": "7c50ee5b-37b3-450c-b1df-ebce7b9e5e5c",
"replyStatus": "SUCCESS",
"message": "SUCCESS"
}
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |
{
"requestHeader": {
"requestID": "19f38700-d1fa-49d5-ade8-fdad9c05f1f1",
"loginName": "your login name",
"password": "your password"
},
"allocationIDList": [
100000001,
100000002,
100000003
]
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | requestHeader | RequestHeader | 是 | 请求头:2.2.2 请求头(RequestHeader)字段说明 |
| 2 | allocationIDList | list | 是 | 航线策略id列表 |
{
"ResponseStatus": {
"Timestamp": "2025-11-11T14:22:58.171+08:00",
"Ack": "Success",
"Errors": [],
"Build": null,
"Version": null,
"Extension": []
},
"responseHeader": {
"requestID": "e8ba396f-bd27-40a7-86a6-b06aa014224",
"transactionID": "7c50ee5b-37b3-450c-b1df-ebce7b9e5e5c",
"replyStatus": "SUCCESS",
"message": "SUCCESS"
}
}
| 行号 | 字段 | 数据类型 | 是否必填 | 描述 |
| 1 | ResponseStatus | ResponseStatus | 是 | 响应状态:2.3.2 响应状态(Respons eStatus)字段说明 |
| 2 | responseHeader | ResponseHeader | 是 | 响应头:2.3.3 响应头(ResponseHe ader)字段说明 |