开票接口
Point-to-point支持:必须接入
更新时间: 2022-08-01 必须接入 在线调试(沙箱环境)
接口概述
1、该接口用来支持用户在携程平台申请电子发票或纸质发票。
2、发票接口不区分产线,接送/包车/打车都要支持,如无特殊说明,上述订单可能会打包在同一次开票请求中。
3、为保证开票成功率,供应商尽可能在接口中响应成功。
4、后续会通过查询发票详情接口(QueryInvoice)获取对应的电子票PDF文件或快递单号。
请求地址
地址格式: {Domain}/JNT/createinvoice/2.0/{timeStamp}/{sign}
请求内容
CreateInvoiceRequest
| 参数 | 类型 | 必传 | 描述 | 示例 | 备注 |
|---|---|---|---|---|---|
| serviceProviderId | Long | 否 | 服务商ID | 1000000 | 用于多服务商接入场景,需要的供应商请联系我方技术添加 |
| ctripInvoiceId | Long | 是 | 携程票包唯一编码,票包允许合并多张订单的开票请求,同时允许单个票包由于单张发票的开票上限开出多张发票,建议作为幂等键 | 198379 | n位数字 |
| invoiceTitle | String | 是 | 发票抬头 | ||
| invoiceContent | String | 是 | 发票明细,如果该明细无法开具,请在查询发票详情接口中的errorMessage字段中表明异常原因 | ||
| invoiceType | Integer | 是 | 发票类型,1纸质,2电子(目前仅用电子) | ||
| identityType | Integer | 是 | 0 个人, 1 企业, 2 非企业 | ||
| identityCode | String | 否 | 税号(企业发票必填,个人发票不填,非企业发票可能存在) | ||
| companyAddress | String | 否 | 公司注册地址 | ||
| companyPhone | String | 否 | 公司注册电话 | ||
| bankName | String | 否 | 开户行 | ||
| bankAccountNo | String | 否 | 银行账号 | ||
| invoiceRemark | String | 否 | 发票备注 | ||
| orderInfo | List |
是 | 开票订单详情,如果订单信息里面有多张订单,为合并开票 | ||
| deliveryInfo | DeliveryInfoDTO | 否 | 纸质票必传 | ||
| travellers | OtaInvoiceTravellerDTO | 否 | 出行人 |
InvoiceOrderDTO
| 参数 | 类型 | 必传 | 描述 | 示例 | 备注 |
|---|---|---|---|---|---|
| ctripPurchaseOrderId | Long | 是 | 携程采购单号,包车为派发订单号(dispatchOrderId),打车产线为平台订单号(platformOrderId) | 881823967638342968,14143177719 | 接送机包车为18位,打车为11位 |
| masterOrderId | Long | 是 | 携程用户单号 | 14143177718 | 11位 |
| vendorOrderId | String | 是 | 供应商订单id | ||
| parentCategoryCode | String | 是 | 一级类目 | jnt | jnt 接送机 day 包车 rtn 打车 |
| invoiceAmount | BigDecimal | 是 | 开票金额(元),以携程金额为准 | ||
| taxRate | BigDecimal | 是 | 税率(默认为0) | 供应商可按照自己实际情况开具 | |
| count | Integer | 是 | 数量(默认为1) | ||
| unit | String | 是 | 单位 | ||
| zeroRateFlag | Integer | 否 | 零税率标识: null / 0 - 非 0 税率 1 | 见下文 |
零税率标识
1 - 当税率 taxRate为:0%,且增值税特殊管理:为“免税”, 零税率标识:需传“1” 2 - 当税率 taxRate 为:0%,且增值税特殊管理:为"不征税" 零税率标识:需传“2” 3 - 当税率 taxRate 为:0%,且增值税特殊管理:为空 零税率标识:需传“3”
DeliveryInfoDTO
| 参数 | 类型 | 必传 | 描述 | 示例 | 备注 |
|---|---|---|---|---|---|
| receiptUser | String | 是 | 收件人姓名 | ||
| phone | String | 是 | 收件人手机号 | ||
| phoneCode | String | 是 | 收件人手机号区号 | ||
| address | String | 是 | 收件人地址 | 金钟路968号 | |
| provinceName | String | 是 | 地址省份 | 上海市 | |
| cityName | String | 是 | 地址城市 | 上海市 | |
| areaName | String | 是 | 地址行政区域 | 长宁区 |
OtaInvoiceTravellerDTO
| 参数 | 类型 | 必传 | 描述 | 示例 | 备注 |
|---|---|---|---|---|---|
| traveller | String | 是 | 出行人姓名 | ||
| travelDate | String | 是 | 出行日期 | 2026-06-10 | |
| travellerCardType | String | 是 | 出行人证件类型 | 101 | 101-组织机构代码证, 102-营业 执照, 103-税务登记证, 199-其他单位证件, 201- 居民身份证, 202-军官证, 203-武警警官证, 204- 士兵证, 205-军队离退休干部证, 206-残疾人证, 207-残疾军人证(1-8级), 208-外国护照, 210- 港澳居民来往内地通行证, 212-中华人民共和国往 来港澳通行证, 213-台湾居民来往大陆通行证, 214 -大陆居民往来台湾通行证, 215-外国人居留证, 21 6-外交官证 299-其他个人证件(数电票特有) |
| travellerCardNo | String | 是 | 出行人证件号码 | ||
| travelPlace | String | 是 | 出行地 | 上海市政府 | |
| arrivePlace | String | 是 | 到达地 | 虹桥火车站 | |
| vehicleType | String | 是 | 交通工具类型 | 5 | 1-飞机 2-火车 3-长途汽车 4-公 共交通 5-出租车 6-汽车 7-船舶 9-其他 |
| vehicleLevel | String | 否 | 交通工具等级 |
返回内容
CancelOrderResponse
| 参数 | 类型 | 必传 | 描述 | 示例 | 备注 |
|---|---|---|---|---|---|
| msgCode | String | 是 | 响应码 | OK | |
| message | String | 否 | 响应详情 | 成功 | |
| vendorInvoiceId | String | 是 | 供应商发票包id |
请求示例
{
"serviceProviderId": 1000009,
"ctripInvoiceId": "1660651438696",
"invoiceTitle": "测试发票抬头",
"invoiceContent": "旅游服务费",
"invoiceType": 1,
"identityType": 1,
"identityCode": "1234567890abc",
"companyAddress": "金钟路968号",
"companyPhone": "12345678",
"invoiceRemark": "发票备注",
"orderInfo": [{
"ctripPurchaseOrderId": 881823967638342968,
"masterOrderId": 16143177718,
"vendorOrderId": "20220801194545418324",
"parentCategoryCode": "jnt",
"invoiceAmount": 100,
"taxRate": 0,
"count": 1,
"unit": "次",
"zeroRateFlag": 1
}, {
"ctripPurchaseOrderId": 14143177719,
"masterOrderId": 14143177718,
"vendorOrderId": "20220801194545516978",
"parentCategoryCode": "rtn",
"invoiceAmount": 50,
"taxRate": 0,
"count": 1,
"unit": "次",
"zeroRateFlag": 1
}],
"travellers":[{
"traveller":"张三",
"travelDate":"2026-06-10",
"travellerCardType":"101",
"travellerCardNo":"111111111",
"travelPlace":"上海市政府",
"arrivePlace":"虹桥火车站",
"vehicleType":"5",
"vehicleLevel":""
}]
}
响应示例
{
"msgCode": "OK",
"message": "成功",
"vendorInvoiceId": "123"
}
异常示例
{
"msgCode": "ERROR",
"message": "企业发票税号为空"
}