开票接口
更新时间: 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 | 否 | 纸质票必传 |
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 | 是 | 地址行政区域 | 长宁区 |
返回内容
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
}]
}
响应示例
{
"msgCode": "OK",
"message": "成功",
"vendorInvoiceId": "123"
}
异常示例
{
"msgCode": "ERROR",
"message": "企业发票税号为空"
}