01总览:三条开票通道
票通用同一套接口集成三类开票通道,由 invIssueChannel 控制。乐企联用与 RPA 的核心差别:无需登录认证或扫脸认证,从根本上消除认证失败(3999)导致的开票失败与人工介入。
- 用数电账号模拟电子税务局开票
- 需保持登录 + 周期短信/扫脸认证
- 认证失败返回
3999 - 通用兜底通道
- 企业自有税局乐企自用资质
- 无需登录认证,稳定
- 开通后不传
account即优先走自用
- 经腾讯/支付宝的乐企资质直连税局
- 无需登录认证或扫脸认证
- 必须传真实支付信息
paymentList - 自动插入微信卡包 / 支付宝发票管家
腾讯联用 vs 支付宝联用
| 项目 | 腾讯乐企联用(4) | 支付宝乐企联用(5) |
|---|---|---|
| 支持的开票接口 | 2.9 开蓝票、2.16 开票二维码、2.23 不动产、2.24 旅客运输 | 仅 2.9(传支付宝支付信息) |
| 支付信息条数 | ≤ 10 条 | 仅 1 条,且必须支付宝(009) |
| 商品明细行 | ≤ 200 行(含折扣行) | 文档未单独说明,建议同样 ≤ 200 行 |
| 特殊票种 | 08 成品油、06 不动产租赁、26/27 金银首饰(26/27 仅腾讯) | — |
| 开票能力申请 | 可一次申请多个能力 | 一次只能开通 1 个,成功后才能开下一个 |
| 多商户号 | 每个微信支付商户号(subMchid)分别授权开通 | 按支付宝商户主体授权;收款商户号需在支付宝发票平台绑定 |
| 发票自动交付 | 微信支付交易 → 微信卡包 | → 支付宝发票管家 |
| 扫码开票 | 联用二维码仅支持微信扫码 | 支持范围需与票通确认 |
⚠️ 《对接指引 V1.1》中「腾讯联用最多 5 条支付信息」已过时,以《接口文档 3.8.4》为准:腾讯 ≤10 条、支付宝 =1 条。
已对接票通的系统:改造量三步走
各门店主体逐一开通:平台手工,或接口 2.51 申请 + 2.52 轮询状态
2.9 / 2.16 增加 invIssueChannel、subMchid、paymentList,account 留空
红冲、发票取回、额度查询沿用现有接口,红票自动沿用蓝票通道
环境地址与公共报文机制(沿用现有对接)
http://fpkj.testnw.vpiaotong.cn/tp/openapi/https://fpkj.vpiaotong.com/tp/openapi/公共参数:platformCode / signType=RSA / sign / format=JSON / timestamp / version=1.0 / serialNo(26 位)/ content(业务报文密文)。业务报文默认 3DES/ECB 加密 Base64(可选 AES/GCM,需联系票通配置);签名为七字段升序拼接后 SHA1WithRSA。测试与正式的密钥、平台编码完全独立。
接口清单速查:
| 编号 | 接口 | 路径(openapi/) | 联用方案中的用途 |
|---|
02联用开通向导
选择联用类型,按向导完成开通。开通涉及商户管理员扫码、法人/财务电子税务局操作、开票员授权多个人工环节——建议在管理后台轮询 2.52 可视化各主体状态并催办。
前置条件
- 企业已在票通入驻并审核通过,且与贵司平台完成绑定(否则报
8104;批量入驻用 2.2) - 企业必须是已开通微信支付的商家,且微信支付平台与税务局登记主体信息一致
- 一个税号下多个商户号均需收款开票时,每个商户号分别授权开通
- 提前查好 10 位微信支付商户号:pay.weixin.qq.com 右上角【我的账号】,或「微信支付商家助手」小程序
- 企业已纳入数电票试点且符合乐企接入条件(否则
NOT_IN_PILOT_SCOPE/NOT_MEET_ACCESS_CONDITION)
- 企业已在票通入驻并审核通过,且与贵司平台完成绑定(否则报
8104) - 企业有支付宝商户主体,由商户授权支付宝应用
- 收款商户号需在支付宝发票平台(piao.alipay.com)【收款账号设置】中绑定同主体收款商户号(否则开票报「交易账单不存在」)
- 扫码法人的支付宝绑定手机号需与电子税务局预留手机号一致
- 企业已纳入数电票试点且符合乐企接入条件
开通方式
门店少或试点阶段推荐:零开发,在票通企业版(fpkj.vpiaotong.com)完成。集团版操作类同。
- 进入开通入口
登录票通企业版 →【我的账户】→【乐企接入申请】→ 右上角【开通联用】 - 第一次扫码:微信支付商户授权
由商户法定代表人或超级管理员扫弹框二维码,填入商户号或交易单号确认商户身份(提前查好 10 位商户号) - 第二次扫码:授权开通乐企
点操作列【授权开通乐企】,由企业法定代表人或财务负责人扫税务侧二维码,完成后点【已完成授权操作】 - 确认接入成功
状态显示「接入成功,数电接入申请流程完成,具备数电发票能力」,回填接入完成时间与开票安全验证到期时间;可【查看开票人员】。多商户号逐个重复以上流程
- 发起开通
票通企业版【乐企接入申请】选择支付宝联用(或走接口 2.51),注意一次只能开通 1 个开票能力 - 商户授权支付宝应用
商户扫二维码或访问开通链接(PC 端 authInvitationUrl),完成支付宝应用授权 - 等支付宝审核 → 税局端确认
审核通过后,法人/财务负责人登录电子税务局「乐企数字开放平台」→【响应邀请】→【待确认】,确认支付宝的使用邀请(同步最长次日生效,勿重复发起) - 回支付宝点「已完成」
随后状态推进至接入成功;再到 piao.alipay.com【收款账号设置】绑定收款商户号
连锁门店主体多时推荐:批量调用 2.51 生成授权二维码/链接下发门店(店长扫码),轮询 2.52 跟踪。接口开通与平台手工开通等效,扫码人要求一致。
2.51 开通乐企联用申请 applyOpenNsUnion.pt
| 字段 | 名称 | 必填 | 说明 |
|---|---|---|---|
taxpayerNum | 纳税人识别号 | 是 | 销售方税号 |
naturalSystemType | 联用类型 | 是 | 1 腾讯 / 2 支付宝 |
subMchid | 商户号 | 否 | 腾讯联用可传;多商户号逐个申请授权 |
invAbilityList | 开票能力列表 | 是 | 001 通用基础(餐饮/酒店/零售)/ 004 不动产租赁 / 007 成品油;支付宝联用数组只能 1 个元素 |
响应关键字段:authInvitationQrcode(授权二维码 Base64)、authMiniAppid+authMiniPath(腾讯小程序跳转 / 支付宝 alipays:// 链接)、authInvitationUrl(支付宝 PC 端)。
2.52 查询开通状态 queryNsUnionOpenStatus.pt
请求:taxpayerNum(必填)、naturalSystemType(可选,不传返回所有联用类型记录)。响应 epNsUnionList[] 每商户号/类型一条:applyStaus 开通状态、applyStausMsg、digistTaxAccessSuccessTime 接入完成时间、digistTaxSecurityExpiredTime 安全校验过期时间(腾讯联用成功有值,到期前需重新设置,否则影响开票及月度汇总);billingPersonList[] 开票员(personId / personName)。
📌 只有 applyStaus=ACCESS_SUCCESS 才能开票,其余状态一律不能开票。建议每小时/每日轮询并对 PENDING_* 状态生成待办。
开通状态机点击任一状态查看「该谁做什么」
异常 / 失败状态
开通常见问题(FAQ)
支付宝联用「审核中」后停在「授权中」
法人或财务负责人登录电子税务局,搜索「乐企数字开放平台」→【接入管理】→【响应邀请】→【待确认】,找到支付宝(发起方为支付宝主体公司)的使用邀请点【确认】。确认后同步至票通最长次日生效,请勿重复发起申请。
支付宝授权提示「身份认证信息或支付宝手机号有误」
核对扫码的法人支付宝账号绑定手机号,是否与电子税务局预留手机号一致。修改路径:支付宝 App【我的】→ 右上角【设置】→【账号与安全】→【手机号】→【更换手机号码】,改后重新扫码授权。
腾讯认证提示「商户主体标志未设置」(MERCHANT_INFO_NOT_SET)
先检查是否已完成第一次扫码授权(商户管理员微信扫 2.51 返回的授权二维码),一般完成首次授权即可解决。仍未解决:参考腾讯官方《商家助手修改商户营业执照、登记证书》(kf.qq.com),核对商户营业执照/登记证书信息后重试。
腾讯授权提示「不符合乐企接入条件」(NOT_MEET_ACCESS_CONDITION)
不代表流程终止,可继续提交并由税务机关人工审批:①提示页点【继续提交】 ②微信支付超级管理员或法人扫码完成法人认证 ③显示「待主管税务机关审批」后联系主管税务机关审批 ④审核通过后法人/财务登录电子税务局,在「乐企数字开放平台」【响应邀请】中确认腾讯(广州腾讯科技有限公司)的使用邀请 ⑤进入「待受理」,最长次日完成,随后 2.52 状态继续推进。
税局要求按月完成上月发票汇总。商户登录电子税务局提示「纳税人未上传发票汇总确认信息」= 上月汇总未成功:
- 每月 1~12 号:引导商户登录乐企,重新完成接入确认/安全验证(法人变更、授权过期需重新确认);确认后次日凌晨腾讯自动完成上月汇总。不处理会持续汇总失败报错。
- 每月 13 号:无需操作,税局自动强制汇总上月数据。
- 常见原因:法人/财务负责人变更、开票安全验证时间过期 → 监控
digistTaxSecurityExpiredTime。 - 商户注销税号需先完成乐企解绑,解绑后 T+1 日完成当月汇总。
03开票改造(2.9 / 2.16)
开票主流程完全不变:受理成功返回 0000,结果走 2.13/2.14 推送或 2.11/2.12 查询。联用改造只涉及下面几个字段。
通道路由决策器按 2.9/2.16 实际规则演算
2.9 开具蓝字数电发票:联用字段调整
| 字段 | 必填 | 说明 |
|---|---|---|
invIssueChannel | 否 | 0 RPA / 1 自用 / 4 腾讯联用 / 5 支付宝联用;可空由票通自动路由 |
subMchid | 否 | 腾讯联用微信支付商户号;不传默认取该税号下第一个开通联用的商户号;微信支付单号必须是当前商户号下的交易单号(一一匹配) |
account | 否 | 联用开票务必留空;传入则走数电账号(RPA)开票 |
specialInvoiceKind | 否 | 08 成品油 / 06 不动产租赁 / 26·27 金银首饰批发·零售(仅腾讯联用);常规餐饮不传 |
paymentList | 联用必传 | 腾讯 ≤10 条;支付宝仅 1 条。子字段见下表 |
paymentList 子字段
| 字段 | 必填 | 说明 |
|---|---|---|
paymentChannel | 是 | 支付渠道码:009 支付宝、010 微信支付;全部码表见下方折叠 |
paymentOrderNo | 是 | 支付系统交易单号:微信一般 4200 开头、支付宝一般日期开头,微信/支付宝会校验真实性;其他渠道可自定义不重复。已开票且未冲红的单号不能再次开票 |
tradeNo | 是 | 商户业务系统订单号,同受「已开票未冲红不可复用」限制 |
transactionAmount | 是 | 交易金额,不能小于开票金额 |
开票总金额 ≤ 支付信息累加金额
商品明细(含折扣行)≤ 200 行,大额宴席/团餐拆单
invoiceReqSerialNo 唯一代表一张发票,重试勿换流水号
支付单号已开票且未冲红 → 不能复用;冲红后解除占用
合并开票须同一商户账单;「其他渠道」单商户日累计 ≤10 万;票据渠道不支持
腾讯+微信支付 → 自动进微信卡包;支付宝联用 → 自动进发票管家
支付渠道码表(paymentChannel)
请求示例可直接复制改参数
差异点:invIssueChannel="5";paymentList 仅 1 条且 paymentChannel="009"、单号为支付宝交易号(日期开头);无需 subMchid。
2.16 扫码开票的联用差异
invIssueChannel位于invoiceIssueOptions数组元素内(每元素 =invoiceType81/82 + 通道)paymentList子字段与 2.9 完全一致;同样必须真实支付单号,生成二维码前须拿到支付成功单号carPlateNum车牌号:税收分类编码为车辆停放服务(3040502020200000000)且腾讯联用开具时必填(配套停车场场景)- 响应:
qrcodeNo/invoiceQrCode(二维码 Base64)/invoiceUrl/extractCode(「发票夹」公众号提取码) - 配套:2.18 查询二维码开票、2.17 作废未开票二维码、2.13 推送、退货已开票走快捷冲红
- 腾讯联用二维码仅支持微信扫码提交开票,支付宝或其他 App 扫码不支持 → 注明「请使用微信扫码开票」
- 顾客首次提交需完成微信卡包授权(弹授权页,完成后返回提交页)
- 支付宝联用目前仅明确支持 2.9 直连开具;2.16 现网支持范围落地前请与票通对接人员确认
- 现金等其他渠道交易不满足联用校验时,按路由规则回落自用或 RPA
- 非接口备用:票通企业版【便捷开票】→【生成开票二维码】可选乐企通道与开票人(临时手工场景)
联用开票失败(4002 / 4009 / 商户号未开通 / 支付单号校验不过)时,回退 invIssueChannel=1(乐企自用)或走 RPA 重试,保持发票请求流水号不变。对账以 2.13 推送回传的 invIssueChannel 实际通道落库。
04红冲 · 取回 · 额度
红票默认使用蓝票的开票通道:联用蓝票冲红无需传任何联用字段,票通自动沿用原通道。冲红成功后,原支付单号(paymentOrderNo / tradeNo)解除占用、可再次开票。
快捷冲红(推荐):2.10 全额 invoiceRed.pt
票通把「申请红字确认单 + 开具红字发票」整合封装(仅销方冲红)。核心入参:invoiceReqSerialNo(红票流水号)、blueAllEleInvNo(原数电票号码 20 位)、redReason(01 开票有误 / 02 销货退回 / 03 服务中止 / 04 销售折让)、amount(原票价税合计的负数);冲非票通开具的票加 blueInvoiceDate;联用蓝票冲红 account 建议不传。
自动开红票并推送结果
推送状态 5999;票通每小时查审核结果,购方确认后自动冲红
税局自动作废确认单,冲红置为失败并推送
部分冲红:2.36 初始化 + 2.37 全额/部分
先调 2.36 加载剩余可冲红明细(缓存 30 分钟),无需自行管理剩余可冲商品。四类冲红原因规则:
| redReason | 可改 | 不可改 |
|---|---|---|
| 01 开票有误 | —(必须全额) | 明细单价、金额、数量须与蓝票一致 |
| 02 销货退回 | 数量 | 单价 |
| 03 服务中止 | 总金额、数量 | 单价 |
| 04 销售折让 | 金额 | 单价、数量(置空) |
⚠️ 商品编码 1、2 开头不可选「服务中止」;3 开头(含餐饮服务)不可选「销货退回」。专票只能专票冲、普票只能普票冲;折扣行冲红时折扣分摊到对应项目行比对。需精细管理确认单(含购方发起/审核/撤销)再对接 2.28–2.34 全场景接口。
发票取回
| 方式 | 接口 | 要点 |
|---|---|---|
| 推送(主用) | 2.13 主要信息 / 2.14 全票面 | 报文含 invIssueChannel(0/1/4/5)核对实际通道;3999 仅 RPA 出现、5999 红字确认单审核中;贵司须返回 code=0000,做验签 + 幂等(同流水号可能多次推送)、先落库快速返回 |
| 查询(补偿) | 2.11 / 2.12 | 推送未达时轮询;响应同样含 invIssueChannel,用于对账 |
| 版式文件 | 2.15 getAllEleInvFile.pt | PDF / OFD / XML(Base64);流水号或数电号码定位;耗时接口调长超时 |
| 局端拉取 | 2.22 acquireInvInfo.pt | 税局端视角;含 redFlag(NOT_RED / ALREADY_RED / REDING / RED_FAIL / PART_RED),退货前校验;耗时接口 |
| 交付补发 | 2.19 resendEmailOrSMS.pt | 补发邮件/短信;联用场景顾客不留邮箱手机号也能经卡包/发票管家收到 |
额度查询:2.20 queryAllEleBlueInvStatistics.pt
响应:当月蓝票数量/金额/税额(queryRedInv=1 时含红票)+ usableCreditLine 可用授信额度 / usedCreditLine 已用 / creditLine 总额度。
授信额度为税号维度,联用/自用/RPA 共用同一额度池。联用开票所用额度需从税局分批下载占用:腾讯联用每次约下载总额度的 2%,用完续下;支付宝联用按开票额度下载。遇「可用额度不足」类报错:可能额度真不足(联系主管税务机关提额或完成申报),也可能是已下载额度用尽待续下——稍后重试或联系票通排查。建议高流水门店设额度使用率告警(如 80%)。
05错误速查
覆盖开通状态、联用业务错误码、腾讯通道 35 条、支付宝通道 15 条局端报错。把报错文本粘进来直接搜。
06联调上线检查单
勾选进度自动保存在本机浏览器(localStorage)。上线前全部打勾再放量。