票通数电发票接口文档

票通数电发票接口文档
版本号 V3.3.5

文档编号：

PT_WBJK_011

编

写：

黄凯

审

核：

审核日期

批

准：

批准日期：

编写日期：

北京票通信息技术有限公司
2022 年 9 月

2022-09-27

票通数电发票接口文档

修订文档历史记录
日期

版本

2022-09-27

<1.0>

说明
起草

作者
黄凯

（1）2.1 用户登记接口新增字段电子税局登录身份密码
identityPwd；
2022-10-17

<1.1>

（2）修改数电发票种类代码，电子发票（增值税专用发票）改

黄凯

为 81，电子发票（普通发票）改为 82；
（3）2.8、2.9、2.10、2.11 接口新增字段电子税局账号 account。
（1）优化更改 2.2 接口；
2022-10-18

<1.2>

（2）新增 2.11 红字发票确认单查询接口；
（3）新增 2.12 查看红字发票确认单接口。

黄凯

（4）调整接口顺序。
（1）2.3 开具数电蓝字发票接口请求报文新增“购买方是否自
2022-11-12

<1.3>

然人标识 naturalPersonFlag”字段。
（2）新增 2.16 蓝字开票统计查询接口；

黄凯

（3）新增 2.17 企业数电票种查询接口。
（1）去掉获取实名认证二维码接口。
（2）2.3 查看发票主要信息、2.4 查询发票全票面信息、2.5
2022-11-15

<1.4>

推送发票主要信息、2.6 推送发票全票面信息接口报文新增实
名认证二维码字段。开票失败状态码为 code 为 3999 时会返回

黄凯

实名认证二维码，需要开票账户使用电子税局 APP 扫码认证后
重新开票。
2022-11-16

<1.4.1>

（1）2.7 红字发票确认单申请接口返回报文新增确认单处理状
态。

黄凯

（1）优化 2.7 红字发票确认单申请接口请求和响应报文及接口
名；
（2）优化 2.8 红字发票确认单确认接口请求和响应报文；
2022-11-17

<1.5>

（3）优化 2.9 红字发票确认单撤销接口请求和响应报文及接口
名；

黄凯

（4）优化 2.10 红字发票确认单查询（下载）接口，改为异步
模式。
（5）新增 2.11 查询红字发票确认单查询结果接口。
2022-11-22

<1.6>

（1）优化 2.10 红字发票确认单（下载）接口请求报文。

黄凯

（1）优化 2.7 红字发票确认单申请接口，原发票开票日期格式
改为 yyyyMMdd。
2022-11-23

<1.7>

（2）新增 2.18 发票数据获取接口。
（3）增加用户登记、发票开具扫码验证、发票冲红等主要流程

黄凯
饶森林

说明。
（1）2.2 用户登记新增操作类型字段，支持删除操作。
2022-12-06

<1.7.1>

（2）2.3 开具数电蓝字发票新增数电发票差额征税标识字段

黄凯

variableLevyFlag。
2022-12-08

<1.8>

（1）2.2 用户登记接口登录身份类型新增枚举值 04 涉税服务

黄凯

票通数电发票接口文档
人员；
（2）新增 2.20 数电发票文件获取接口，获取 PDF/XML/OFD 等；
（3）新增 2.21 发票领用及开票数据统计查询接口；
（4）新增 2.22 开具不动产租赁蓝字数电发票接口；
（5）更改接口 2.4、2.5、2.6、2.7 数电 xml 文件说明，发票
开具成功 xml 文件不一定能及时下载到，若需要可以调用 2.20
接口获取。
（1）新增 2.23 开具旅客运输服务蓝字数电发票接口；
2023-01-13

<1.9>

（2）新增 2.24 开具货物运输服务蓝字数电发票接口；

黄凯

（3）新增 2.25 开具建筑服务蓝字数电发票接口。
（1）修改 2.2 用户登记接口登录方式枚举值及说明。
（2）新增 2.26 获取实名认证二维码接口。
2023-02-20

<2.0>

（3）新增 2.27 查询实名认证二维码扫码状态接口。
（4）2.4 查询发票主要信息、2.5 查询发票全票面信息、2.6

黄凯

推送发票主要信息、2.7 推送发票全票面信息接口新增 autdId
实名认证二维码认证 id 字段，发票状态为 3999 时返回。
（1）新增 2.28 快捷冲红数电发票接口。
（2）2.4 查询发票主要信息、2.5 查询发票全票面新增发票状
态码 4999 红字发票确认单申请中、5999 红字发票确认单审核
2023-03-08

<2.1>

中。
（3）2.6 推送发票主要信息、2.7 推送发票全票面信息新增发

黄凯

票状态码 5999 红字发票确认单审核中。
（4）2.7 推送发票全票面信息发票状态 invoiceStatus 字段新
增状态码：4 红字发票确认单申请中、5 红字发票确认单审核中。
（1）新增 2.29 开具不动产销售蓝字数电发票接口。
2023-04-04

<2.2>

（2）新增 2.30 获取登录短信验证码接口。

黄凯

（3）新增 2.31 短信验证码登录接口。
（1）调整接口顺序。
（2）新增 2.2 注册企业接口。
（3）新增 2.8 查询数电账号状态接口。
（4）新增 2.18 查询二维码开票信息接口。
2023-06-21

<2.3>

（4）新增 2.19 重新发送邮件或短信接口。
（5）2.15 获取数电发票文件请求报文新增数电账号、开票日

黄凯

期字段。
（6）2.20 蓝字开票统计查询接口请求报文新增数电账号字段。
（7）优化 2.11/2.12/2.13/2.14 认证二维码说明，状态码为
3999 时认证二维码不一定有值。
（1）2.9 开具数电蓝字发票、2.23 开具不动产租赁蓝字数电发
票、2.24 开具旅客运输服务蓝字数电发票、2.25 开具货物运输
服务蓝字数电发票、2.26 开具建筑服务蓝字数电发票、2.27 开
2023-06-25

<2.3.1>

具不动产销售蓝字发票新增字段是否显示购买方开户行及账号
到发票备注 showBuyerBank、是否显示销售方开户行及账号到
发票备注 showSellerBank、收款人 casherName、复核人
reviewerName。

黄凯

票通数电发票接口文档
（2）2.12 查询发票全票面信息、2.14 推送发票全票面信息新
增收款人 casherName、复核人 reviewerName。
（3）2.16 获取开票二维码新增收款人 casherName、复核人
reviewerName。
（1）2.10 快捷冲红数电发票接口新增蓝字发票字段，以解决
冲红非票通平台开具的蓝票；
（2）修改 2.21 发票领用及开票数据统计查询接口响应报文，
2023-07-10

<2.3.2>

去掉按项目统计，新增按税率/征收率统计；
（3）2.23 开具不动产租赁蓝字数电发票特定信息面积单位新

黄凯

增枚举值；
（4）2.26 开具建筑服务蓝字数电发票特定信息详细地址改为
非必填。
（1）2.16 获取开票二维码开票项目新增 vatSpecialManage 增
2023-07-13

<2.3.3>

值税特殊管理字段，以支持简易征收、按 5%简易征收等优惠政

黄凯

策。
（1）2.21 发票领用及开票数据统计查询请求报文新增数电账
2023-07-26

<2.3.4>

号字段。

黄凯

（2）2.22 发票数据获取接口请求报文新增数电账号字段。
2023-08-28

<2.3.5>

（1）2.16 获取开票二维码接口新增微信交易单号字段。

黄凯

2023-09-25

<2.3.6>

（1）2.9 开具数电蓝字发票支持自产农产品销售发票。

黄凯

2023-10-20

<2.3.7>

（1）2.6 获取实名认证二维码新增认证类型 authType 字段，
区分风险认证和登录认证。

黄凯

（1）2.10.快捷冲红数电发票接口返回报文新增红字确认单申
2023-11-03

<2.3.8>

请流水号字段 redApplySerialNo。
（2）2.1 主要流程说明新增企业作为销方数电红字确认单状态

黄凯

图。
2023-12-07

<2.3.9>

2023-12-20

<2.4.0>

2023-12-21

<2.4.1>

（1）2.9 开具数电蓝字发票支持农产品收购发票。
（2）2.9 开具数电蓝字发票新增优惠政策传值说明。
（1）2.8 查询数电账号认证状态接口新增可切换状态字段
switchable。
（1）新增 2.35 切换数电企业接口。

黄凯

黄凯
黄凯

（1）2.20 快捷冲红数电发票、2.30 开具红字数电发票新增收
票人名称、收票人邮箱、收票人手机号字段。
2024-01-25

<2.5.0>

（2）新增 2.36 初始化红字信息确认单接口。

黄凯

（3）新增 2.37 快捷冲红数电发票（全额冲红、部分冲红）接
口。
2024-03-29

<2.6.0>

（1）2.9 开具蓝字数电发票支持差额征税-差额开票。

黄凯

（1）新增 2.38 红字确认单申请（支持全额、部分；销方、购
2024-04-11

<2.7.0>

方申请）接口。
（2）2.27 开具不动产销售蓝字数电发票接口支持多行开票项

黄凯

目、多行特定信息及共同购买人。
2024-05-07

<2.7.1>

（1）修改发票开具等接口发票备注字段校验规则。
（2）2.14 推送发票全票面信息新增订单列表字段。

黄凯

票通数电发票接口文档

2024-06-03

<2.7.2>

2024-06-12

<2.7.3>

（1）2.9 开具蓝字数电发票新增订单列表，支持第三方平台合
并开票的情况。
（1）2.6 获取实名认证二维码接口新增 qrcodeType 二维码类
型字段，支持获取个税 APP 认证二维码。

黄凯

黄凯

（1）新增 2.39 机动车车辆信息查询接口。
2024-06-20

<2.8.0>

（2）新增 2.40 开具数电专票机动车特定业务接口。
（3）新增 2.41 查询支持未开发票代码号码接口。

黄凯

（4）新增 2.42 开具机动车销售统一发票（数电纸票）接口。
2024-07-01

<2.8.1>

（1）2.16 获取开票二维码支持不动产经营租赁特定业务。
（2）优化冲红相关接口原发票代码、原发票号码描述。

黄凯

（1）2.9 开具数电蓝字发票、2.23 开具不动产租赁蓝字数电发
票、2.24 开具旅客运输服务蓝字数电发票、2.25 开具货物运输
服务蓝字数电发票、2.26 开具建筑服务蓝字数电发票、2.27 开
2024-07-18

<2.8.2>

具不动产销售蓝字发票新增字段是否显示购买方地址电话到发
票备注 showBuyerAddrTel、是否显示销售方地址电话到发票备

黄凯

注 showSellerAddrTel。
（2）2.23 开具不动产租赁蓝字数电发票新增减按征税类型字
段 reducedTaxType。
2024-07-25

<2.9.0>

（1）2.3 数电账号登记接口返回报文新增绑定微信二维码。
（2）新增 2.43 获取数电账号绑定微信二维码接口。

黄凯

（1）修改 2.37 快捷冲红数电发票（全额冲红、部分冲红）和
2024-07-29

<2.9.1>

2.38 红字确认单申请（支持全额、部分；销方、购方申请）的
规则说明，销方部分冲红时不再校验增值税用途状态、消费税

黄凯

用途状态、入账状态。
2024-08-20

<2.9.2>

2024-08-26

<2.9.3>

（1）2.25 开具货物运输服务蓝字发票特定信息运输工具种类
新增“其他运输工具”。
（1）2.26 开具建筑服务蓝字发票特定信息新增跨区域涉税事
项报验管理编号。

黄凯

黄凯

（1）新增 2.44 查询建筑服务跨区域涉税事项报验管理编号信
息接口。
2024-08-29

<3.0.0>

（2）2.8 查询数电账号认证状态新增返回登录认证状态、最新

黄凯

登录认证时间、风险认证状态、最新风险认证时间。
（3）新增 2.45 查询数电账号列表接口。
2024-09-09

<3.0.1>

（1）新增 2.46 退出电子税局登录接口。

黄凯

（1）2.4 获取登录短信验证码响应结果代码新增 6666，解决无
需发送验证码的问题。
2024-11-13

<3.1.0>

（2）2.23 开具不动产租赁蓝字数电发票接口调整不动产租赁
期起止格式。

黄凯

（3）新增 2.47 查询企业信息接口。
（4）新增 2.48 企业审核结果推送接口。
（1）2.8 查询数电账号认证状态、2.45 查询数电账号列表新增
2024-12-11

<3.2.0>

响应字段是否绑定微信公众号 wechatUserBindStatus。
（2）2.16 获取开票二维码不动产租赁发票特定信息支持多行，
新增字段车牌号 carPlateNum。

黄凯

票通数电发票接口文档
（3）2.23 开具不动产租赁蓝字数电发票特定信息支持多行，
新增字段车牌号 carPlateNum。
（1）2.11 查询发票主要信息、2.12 查询发票全票面响应新增
2024-12-20

<3.3.0>

发票删除标志 invDeletedFlag。

黄凯

（2）新增 2.49 查询企业开户行及账号信息接口。
（1）2.12 查询发票全票面信息、2.14 推送发票全票面信息接
口新增字段是否显示购买方开户行及账号到发票备注
2025-02-21

<3.3.1>

showBuyerBank、是否显示销售方开户行及账号到发票备注
showSellerBank、是否显示购买方地址电话到发票备注

黄凯

showBuyerAddrTel、是否显示销售方地址电话到发票备注
showSellerAddrTel。
（1）修改 2.20 接口名称为开票统计及授信额度查询，支持查
2025-04-18

<3.3.2>

询红字发票开票统计。

黄凯

（2）2.22 发票数据获取接口新增字段扣除额 deduction。
（1）修改 2.44 查询建筑服务跨区域涉税事项报验管理编号信
息接口，请求报文去掉字段跨区域涉税事项报验管理编号
taxDeclareManageNum，新增字段跨区域涉税事项报验管理编号
前缀 taxDeclareManageNumPrefix、跨区域涉税事项报验管理
2025-05-08

<3.3.3>

编号年份 taxDeclareManageNumYear、跨区域涉税事项报验管
理编号具体的号 taxDeclareManageNumNo、报告开具期限起

黄凯

entryDateStart、报告开具期限止 entryDateEnd，响应报文新
增字段有效标志 validFlag、作废标志 destroyFlag、跨区域涉
税事项有效期起 taxRelatedEffectiveStart、跨区域涉税事项
有效期止 taxRelatedEffectiveEnd。
（1）修改 2.2 注册企业接口请求报文字段必填说明。
（2）修改 2.9 开具数电蓝字发票、2.23 开具不动产租赁蓝字
数电发票、2.24 开具旅客运输服务蓝字数电发票、2.25 开具货
2025-05-20

<3.3.4>

物运输服务蓝字数电发票、2.26 开具建筑服务蓝字数电发票、
2.27 开具不动产销售蓝字发票请求报文字段 goodsName 货物名

黄凯

称长度校验说明，长度由 GBK 字节 100 位改为 100 个字符。
（3）2.8 查询数电账号认证状态、2.45 查询数电账号列表返回
报文新增字段姓名 name、身份类型 identityType。
（1）2.16 获取开票二维码接口新增字段是否强制更新二维码
2025-06-27

<3.3.5>

标识 updateFlag。
（2）2.33 红字发票确认单查询（下载）新增字段红字发票信
息确认单编号 redBillNo。

黄凯

票通数电发票接口文档

1. 概述
1.1. 安全机制
安全机制：
1、公共报文通过 RSA 类型验签进行验证，简要规则如下：
a. 生成秘钥为 1024bit,秘钥格式为 PKCS8 的秘钥对，第三方平台与票
通互相提供公钥为对方。
b. 按照 content, format, platformCode, serialNo, signType,
timestamp, version 字段名称字母升序的顺序将所有参数用&连接起来，通过公
钥进行验签；
待签名串示例：
content=Base64.(3DES(content))&format=JSON&platformCode=platformC
ode&serialNo=DEMO20170504145147zEm9cQ05&signType=RSA&timestamp=2017-0
5-04 14:51:47&version=1.0
需要使用 RSA 私钥对上面的待签名串进行签名。
RSA 签名结果需要 Base64 编码。
2、业务报文通过 3DES 进行加解密，加密模式为 ECB，编码统一为 UTF-8 密
钥不在报文中体现。
JAVA 对接票通提供签名、加密等工具的 SDK 和接口调用 Demo(Java 版)。

1.2. 调用方式
采用 HTTP/HTTPS 作为通信协议，报文格式为 json。
全局公共参数说明如下：
请求参数-公共部分：
字段
platformCode

名称

长度

必填

说明

第三方平台编

8位

是

票通分配给开发者的第三方平

码

台编码

signType

加密类型

10 位

是

目前支持 RSA

sign

签名串

256 位

是

商户请求参数的签名串

format

业务报文格式

10 位

否

目前支持 JSON

票通数电发票接口文档
timestamp

请求时间

19 位

是

yyyy-MM-dd HH:mm:ss

version

版本号

4位

是

调用接口版本，固定为 1.0

serialNo

交易请求流水

26 位

是

4 位 平 台 简 称 ＋ 14 位 日 期

号

yyyymmddhhmmss)+8 位 随 机 数
（通过 SDK 生成）

content

业务报文内容

不定长

是

业务报文 3DES 加密，除公共参
数外所有请求参数都必须放在
这个参数中传递

请求报文示例：
{
"platformCode": "XXXXXXXX",
"signType ": "RSA",
"sign": "XXXXXX",
"format": "JSON",
"timestamp": "2022-09-28 08:08:08",
"version": "1.0",
"serialNo": "DEMO20161212082056ADB34DF3",
"content": 业务报文 3DES 加密
}

响应参数-公共部分：
字段
code

名称
响应状态

长度

必填

4-6 位

是

说明
业务返回码。
0000：成功；
9999：验签失败；
9998：平台编码无效；
8996：业务异常；
8995：数据校验不通过；
其他：见各个业务接口错误码
说明

msg

响应消息

0-60 位

否

业务返回码描述

sign

签名串

256 位

是

签名串

serialNo

交易请求流水号

26 位

是

交易请求流水号

content

业务报文内容

不定长

是

业务报文 3DES 加密

响应报文示例：
{
"code": "0000",
"msg": "成功",
"sign": "XXXXXXXX",
"serialNo": "XXXXXXXX",

票通数电发票接口文档
"content":业务报文 3DES 加密
}

2. 业务接口说明
接口详见下表：
编号

接口名称

调用关系

2.1 主要流程说明
2.2 注册企业
2.3 数电账号登记
2.4 获取登录短信验证码
2.5 短信登录
2.6 获取实名认证二维码
2.7

描述说明用户登记、发票开具、发票冲红等流程
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通

查询实名认证二维码扫 第三方平台或集团
码状态

2.8 查询数电账号认证状态
2.9 开具蓝字数电发票
2.10 快捷冲红数电发票
2.11 查询发票主要信息
2.12 查询发票全票面信息
2.13 推送发票主要信息
2.14 推送发票全票面信息
2.15 获取数电发票文件
2.16 获取开票二维码
2.17 批量作废开票二维码

接口描述

企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通

通过该接口注册企业
登记电子税局账号信息
通过该接口获取登录电子税局的短信验证码
通过该接口登录电子税局
通过该接口获取实名认证二维码
通过该接口查询实名认证二维码扫码状态
通过该接口查询数电账号的认证状态
通过该接口开具蓝字数电发票

第三方平台或集团 通过该接口完成申请红字发票确认单并开具红字
企业——票通

发票

第三方平台或集团 查询发票主要信息，开票成功返回代码、号码等，
企业——票通

失败返回失败原因

第三方平台或集团 查询发票全票面信息，开票成功返回代码、号码
企业——票通
票通——第三方平
台或集团企业
票通——第三方平
台或集团企业
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通

及全票面信息，失败返回失败原因
开票成功或失败向第三方推送发票信息
开票成功或失败向第三方推送发票全票面信息
通过该接口获取数电发票文件
通过该接口获取开票二维码，消费者扫码开票
通过该接口批量作废开票二维码

票通数电发票接口文档

2.18 查询二维码开票信息
2.19 重新发送邮件或短信
2.20
2.21

2.24
2.25
2.26
2.27

查询
统计查询

数电发票

企业——票通
企业——票通
第三方平台或集团
企业——票通
企业——票通

开具旅客运输服务蓝 第三方平台或集团
字数电发票

企业——票通

开具货物运输服务蓝 第三方平台或集团
字数电发票

企业——票通

开具建筑服务蓝字数 第三方平台或集团
电发票

企业——票通

开具不动产销售蓝字 第三方平台或集团
数电发票

2.30 开具红字数电发票
2.31 红字发票确认单审核
2.32 红字发票确认单撤销

企业——票通

通过该接口查询二维码开票信息
通过该接口重新发送发票交付邮件或短信

（下载）

企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
企业——票通

获取红字发票确认单 第三方平台或集团
查询（下载）结果

额、税额及授信额度
通过该接口查询发票领用及开票数据统计
通过该接口从局端获取发票信息
通过该接口开具不动产租赁蓝字数电发票
通过该接口开具旅客运输服务蓝字数电发票
通过该接口开具货物运输服务蓝字数电发票
通过该接口开具建筑服务蓝字数电发票
通过该接口开具不动产销售蓝字数电发票

第三方平台或集团 申请红字发票确认单，对发票进行冲红前需要先

红字发票确认单查询 第三方平台或集团

2.35 切换数电企业

2.36

企业——票通

开具不动产租赁蓝字 第三方平台或集团

2.29 查看红字发票确认单

2.34

第三方平台或集团

发票领用及开票数据 第三方平台或集团

2.28 红字发票确认单申请

2.33

企业——票通

开票统计及授信额度 第三方平台或集团 通过该接口查询企业当月已开蓝字发票数量、金

2.22 发票数据获取
2.23

第三方平台或集团

企业——票通
第三方平台或集团
企业——票通

申请确认单
通过该接口查询某个红字发票确认单详情
通过该接口开具红字数电发票
审核或拒绝红字发票确认单
撤销红字发票确认单
从局端查询红字发票确认单
通过改接口查询红字确认单查询结果
通过该接口切换一个数电账号下面的关联的企业
（只支持同一个地区的切换，比如只能从四川的
企业切换到四川的企业）

初始化红字信息确认 第三方平台或集团 通过该接口初始化红字信息确认单，需要调用税
单
快捷冲红数电发票

2.37 （全额冲红、部分冲
红）

企业——票通
第三方平台或集团
企业——票通

局接口，需保持数电账号是登录状态
通过该接口完成申请红字发票确认单并开具红字
发票，因为要传蓝字明细序号，建议在部分冲红
之前调用 2.36 初始化红字信息确认单，以核实蓝

票通数电发票接口文档
票的入账状态、增值税用途代码、消费税用途代
码以及剩余可冲红金额。
红字确认单申请（支

第三方平台或集团 通过该接口申请数电发票红字确认单，支持销方、
2.38 持全额、部分；销方、
企业——票通
购方申请，支持全额及部分金额申请
购方申请）
2.39 机动车车辆信息查询
2.40
2.41

企业——票通

便查询该车架号是否能开票及补全车辆信息

开具数电专票机动车 第三方平台或集团 通过该接口开具数电票（增值税专用发票）机动
特定业务

企业——票通

查询纸质未开发票代 第三方平台或集团
码号码
开具数电纸质发票

2.42 （机动车销售统一发
票）
2.43

第三方平台或集团 通过该接口使用机动车车架号查询车辆信息，以

企业——票通

查询建筑服务跨区域
2.44 涉税事项报验管理编
号信息
2.45 查询数电账号列表
2.46 退出电子税局登录
2.47 查询企业信息
2.48 企业审核结果推送
2.49 查询企业开户行及账号

通过该接口查询未开具的纸质发票代码号码

第三方平台或集团 通过该接口开具数电纸质发票（机动车销售统一
企业——票通

获取数电账号绑定微 第三方平台或集团
信二维码

车特定业务

企业——票通

发票）

通过该接口获取数电账号绑定微信的二维码

第三方平台或集团 通过该接口查询建筑服务跨区域涉税事项报验管
企业——票通

理编号信息

第三方平台或集团 通过该接口查询某个企业绑定的数电账号列
企业——票通
第三方平台或集团
企业——票通
第三方平台或集团
企业——票通
票通——第三方平
台或集团企业
票通——第三方平
台或集团企业

表。
通过该接口退出电子税局登录。
通过该接口查询企业的信息
通过该接口将企业审核结果推送给第三方平台
通过该接口查询企业开户行及账号信息。

2.1. 主要流程说明
1. 数电账号登记
使用数电业务时，企业的注册、审核等流程，和原增值税流程保持一致，在此基础上增
加了用户登记，用户维护电子税务局的用户名、密码等信息。该接口为实时验证接口。
也可不调试该接口，通过票通产品功能完成用户登记。第三方平台可记录用户名信息，
在处理业务传入用户名（如果只有一个用户，也可以不传入，票通会选择默认的用户进行业
务处理）。
用户登记只需要调用一次，如果在电子税局修改了登录密码，需要再次用户登记。
2. 发票开具
调用数电蓝字发票开具，等待消息推送，如果需用户扫码实名认证或登录认证时，将会
在推送发票主要信息或推送发票全票面信息接口中，返回开票失败状态为 3999 的错误码。

票通数电发票接口文档

查询发票主要信息和查询发票全票面信息时，若在开具发票时开票账号是风险认证或登录认
证，也会返回 3999 的错误码。
第三方平台获得该错误码时，需提醒该用户使用电子税务局 APP 进行二维码扫描认证
或短信认证。可以通过 2.8 查询数电账号的当前认证状态及操作建议，提醒客户进行扫码认
证或短信认证。
发票查询和推送返回的认证二维码均为税务 APP 认证二维码。
如果实名认证二维码过期，可调用 2.6 获取实名认证二维码接口获取新的二维码。
3. 发票冲红
数电发票冲红，均需发起红字发票确认单申请，
普通发票申请，如果对方未入账，则申请后无需确认，调用红字信息表查询接口获取到
已确认（或无需确认）状态后，可进行冲红。
专用发票申请，如果对方未入账未勾选，则申请后无需确认，其他情况需对方确认，对
方确认通过后，调用红字信息表查询接口获取已确认（或无需确认）状态，接下来可进行冲
红。
对方企业发起的红字信息表，可通过红字信息表查询（下载）接口获取红字信息表，对
需要审核的红字信息表，可通过红字信息表审核接口，进行拒绝或者通过。
数电发票（普通发票）可冲红对应的增值税普通发票，包括普通电子发票。
数电发票（增值税专用发票），可冲红对应的增值税专用发票，包括专用电子发票。
发票冲红票通了两套接口，一套是 2.10 接口，和原票通增值税电子普通发票冲红接口
保持一致，方便快捷一键冲红，由票通整合红字信单申请管理和冲红功能，冲红完成后，合
作方可通过查询发票接口或推送开票信息接口，获取红字发票开具结果；一套是 2.28、2.29、
2.30、2.31、2.32、2.33、2.34 接口，用于精细化管理红字发票确认单及冲红。

票通数电发票接口文档

票通数电发票接口文档

2.2. 注册企业
2.2.1.调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/op
enapi/register.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi
/register.pt
字符编码

UTF-8

接口描述

接口提供企业的注册

2.2.2.请求报文
请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号,长度校
验规则为字符长度，只能包括
大写英文字母或数字

enterpriseName

销售方企业名称

String(4-100)

是

销售方企业名称，长度校验规
则为 GBK 字节长度，不能包含
<>字符

contactsPhone

联系人手机

String(11)

是

联系人手机号，长度校验规则
为字符长度，只能是数字

regionCode

地区编码

String(2)

是

地区编码，填写为省级或者直
辖市编码，编码表见下

cityName

市(直辖市的区)名称

String(1-20)

是

市(直辖市的区)名称，为省级
下属市的名称或直辖市下属区
的名称，cityName 根据
regionCode 联动。参照提供的
地区表。如果不是计划单列市
（大连市、青岛市、宁波市、
厦门市、深圳市）可以不填
例:regionCode=11,cityName=
海淀区 (表示：北京市海淀
区)；
regionCode=37,cityName=青

票通数电发票接口文档
岛市 (表示：山东省青岛市)
legalPersonName

法人名称

String(2-50)

否

注册企业法人代表名称,长度
校验规则为字符长度，不能包
含<>字符

contactsName

联系人名称

String(1-16)

否

企业联系人名称，长度校验规
则为 GBK 字节长度，不能包含
<>字符

contactsEmail

联系人邮箱

String(4-50)

否

联系人邮箱，长度校验规则为
字符长度，只能包括英文字母
或数字

enterpriseAddre

详细地址

String(1-89)

否

ss

营业执照地址，长度校验规则
字节长度，不能包含<>字符

taxRegistrationCertif

营 业 执 照 图 片

icate

（Base64）

taxControlDeviceType

企业税控设备类型

String

否

不定长，Base64 字符串，需小
于 2M

String

否

企业税控设备类型。多个用|
分割。
1：金税盘/税控盘；
2：税务 UKEY；
4：区块链发票；
5：数电发票。

地区编码表：
地区编码

地区名称

11

北京市

31

上海市

12

天津市

13

河北省

14

山西省

15

内蒙古自治区

21

辽宁省

22

吉林省

23

黑龙江省

32

江苏省

33

浙江省

34

安徽省

35

福建省

36

江西省

37

山东省

41

河南省

42

湖北省

43

湖南省

44

广东省

45

广西壮族自治区

票通数电发票接口文档
46

海南省

50

重庆市

51

四川省

52

贵州省

53

云南省

54

西藏自治区

61

陕西省

62

甘肃省

63

青海省

64

宁夏回族自治区

65

新疆维吾尔自治区

报文示例：
{
"taxpayerNum": "BHDWSDFDDD123459",
"enterpriseName": "北京 XXXXXXX 信息技术有限公司",
"legalPersonName": "AA",
"contactsName": "AA",
"contactsEmail": "11@qq.com",
"contactsPhone": "15111111111",
"regionCode": "11",
"cityName": "海淀区",
"enterpriseAddress": "知春路",
"taxRegistrationCertificate": "XXXXXXXX"
}

2.2.3.响应报文
响应参数-业务报文部分：
字段

名称

类型

必填

taxpayerNum

销售方纳税识别号

String(15-20)

是

销售方纳税人识别号

enterpriseName

销售方企业名称

String(2-40)

是

销售方企业名称

报文示例：
{
"taxpayerNum": "BHDWSDFDDD123459",
"enterpriseName": "北京 XXXXXXX 信息技术有限公司"
}

2.2.4.业务错误码
从业务中抽取代码并进行定义

说明

票通数电发票接口文档

错误（code） 含义说明（msg）
0000

成功，企业状态为审核中（待审核）

9999

验签失败

9998

平台编码无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

9001

地区编码不存在

9002

市(地区)名称不存在，请对照编码表

9003

税务登记证图片保存失败，请检查税务登记证是否正确

9004

与第一次注册的平台信息不匹配，没有权限修改

9005

企业信息尚未审核，不能修改

2.3. 数电账号登记
2.3.1.调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/registerUser.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/registerUser.pt
字符编码

UTF-8

2.3.2.请求报文
请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String(15-20)

是

销售方纳税人识别号,长度校

识别号

验规则为字符长度，只能包括
大写英文字母或数字

loginMethod

登录方式

String(1)

是

登录方式。
1：用户名（居民身份证号码/
手机号码/用户名）+密码

account

登录账户

String(50)

是

电子税局登录账号（手机号或
身份证号），若平台已经存在
做更新操作

password

登录密码

String(100)

是

电子税局登录密码，请使用票
通提供的第三方平台密码进行
3DES 加密

票通数电发票接口文档
identityType

登录身份类型

String(2)

是

登录身份类型。
01：法定代表人
02：财务负责人
03：办税员
04：涉税服务人员
05：管理员
07：领票人
09：开票员
99：其他人员

identityPwd

登录身份密码

String(100)

否

电子税局登录身份密码，请使
用票通提供的第三方平台密码
进行 3DES 加密。部分地区需要
身份密码，不需要的地区无需
填写，目前需要的省份：无；
不需要的省份：广东省、上海
市（待完善）

phoneNum

手机号码

String(11)

是

手机号码。当前登记用户的手
机号。如果是手机号+密码登
录，该值必须和 account 一致。

name

姓名

String(20)

是

姓名

operationType

操作类型

String(1)

否

操作类型。默认 1 登记。
1：登记；
2：删除

报文示例：
{
"taxpayerNum": "XXXXXXXX",
"loginMethod": "1",
"account": "185XXXXXXXX",
"password": "XXXXXXXX",
"identityType": "01",
"phoneNum": "185XXXXXXXX",
"name": "XXXXXXXX"
}

2.3.3.响应报文
响应参数-业务报文部分：
字段
resultCode

名称
结果代码

类型

必填

String(4)

是

说明
登记结果代码。
0000：登记成功。
其他：登记失败，失败原因见
resultMsg

票通数电发票接口文档
resultMsg

结果描述

String(不定长)

是

登记结果描述

resultData

结果业务报文

String(不定长)

是

登记结果业务报文

qrcodeImgUrl

绑定微信二维码图片

String(不定长)

否

绑 定 微 信 二 维 码 图 片 url ，

url

base64 字符串，访问该 url 直
接可以返回二维码图片

qrcodePath

绑定微信二维码内容

String(不定长)

否

绑定微信二维码内容，base64
字符串，需要自行转为二维码

failureTime

绑定微信二维码失效

String(不定长)

否

时间

绑定微信二维码失效时间。
格式 yyyy-MM-dd HH:mm:ss

报文示例：
{
"resultCode": "0000",
"resultMsg": "登记成功",
"resultData": "XXXXXXXX",
"qrcodePath": "aHR0cDovL3dlaXhpbi5xcS5jb20vcS8wMnNMRTB0enY0YjYtMWQzQXUxQWNI",
"qrcodeImgUrl":
"aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL2NnaS1iaW4vc2hvd3FyY29kZT90aWNrZXQ9Z1FGVjhEd0FBQUFBQUFB
QUFTNW9kSFJ3T2k4dmQyVnBlR2x1TG5GeExtTnZiUzl4THpBeWMweEZNSFI2ZGpSaU5pMHhaRE5CZFRGQlkwZ0FBZ
1JEVi1kakF3UUFqU2NB",
"failureTime": "2023-03-25 20:11:04"
}

2.3.4.业务错误码
从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

2.4. 获取登录短信验证码
2.4.1.调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/sendLoginSmsCode.p

备注
POST 方式提交

票通数电发票接口文档
t
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/sendLoginSmsCode.pt
字符编码

UTF-8

2.4.2.请求报文
请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String(15-20)

是

销售方纳税人识别号,长度校

识别号

验规则为字符长度，只能包括
大写英文字母或数字

account

登录账户

String(50)

是

电子税局登录账号

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

account

登录账户

String(50)

是

电子税局登录账号

resultCode

结果代码

String(4)

是

结果代码

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823"
}

2.4.3.响应报文
响应参数-业务报文部分：
字段

0000：获取成功。
6666：登录成功，此时无需真
正的发送短信验证码，系统会
自动登录成功；
其他：获取失败，失败原因见
resultMsg
resultMsg

结果描述

phoneNum

手机号（脱敏）

activeTime

有效时长

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",

String(不定长)

是

查询结果描述

String(11)

否

手机号（脱敏）

String(不定长)

否

短信有效时长，单位：秒

票通数电发票接口文档
"resultCode": "0000",
"resultMsg": "获取成功",
"phoneNum": "189****6823",
"activeTime": "600"
}

2.4.4.业务错误码
从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

3001

电子税局账号尚未在平台登记，请先在平台登记

2.5. 短信登录
2.5.1.调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/smsLogin.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/smsLogin.pt
字符编码

UTF-8

2.5.2.请求报文
请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String(15-20)

是

销售方纳税人识别号,长度校

识别号

验规则为字符长度，只能包括
大写英文字母或数字

account

登录账户

String(50)

是

电子税局登录账号

smsCode

短信验证码

String(6)

是

短信验证码

报文示例：

票通数电发票接口文档
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"smsCode": "196095"
}

2.5.3.响应报文
响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

account

登录账户

String(50)

是

电子税局登录账号

resultCode

结果代码

String(4)

是

结果代码
0000：登录成功。
其他：登录失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

是

查询结果描述

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"resultCode": "0000",
"resultMsg": "登录成功"
}

2.5.4.业务错误码
从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

3001

电子税局账号尚未在平台登记，请先在平台登记

2.6. 获取实名认证二维码
此接口用来获取实名认证二维码，若开票失败返回 3999 时，需要调用此接口获取实名认证
二维码。二维码有效期一般在 5 分钟左右，如果获取失败或过期则需要重新获取。

票通数电发票接口文档

2.6.1.调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/getAuthenticationQ
rcode.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/getAuthenticationQrcode
.pt
字符编码

UTF-8

2.6.2.请求报文
请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String(15-20)

是

销售方纳税人识别号,长度校

识别号

验规则为字符长度，只能包括
大写英文字母或数字

account

数电账户

String(50)

是

电子税局登录账号

qrcodeType

二维码类型

String(1)

否

二维码类型。
1：税务 APP;
2：个人所得税 APP。不传值默
认 1 税务 APP。

报文示例：
{
"taxpayerNum": "XXXXXXXX",
"account": "185XXXXXXXX"
}

2.6.3.响应报文
响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

account

登录账户

String(50)

是

电子税局登录账号（手机号或
身份证号）

resultCode

结果代码

String(4)

是

获取结果代码。
0000：获取成功。

票通数电发票接口文档
其他：获取失败，失败原因见
resultMsg
resultMsg

结果描述

String(不定长)

是

获取结果描述

qrcodeContent

实名认证二维码内容

String(不定长)

否

实名认证二维码内容，base64
字符串，需要自行生成二维码
图片

qrcodeImg

实名认证二维码图片

String(不定长)

否

实名认证二维码图片，base64，
需要显示图片给客户

genTime

生成时间

String(19)

否

二维码生成时间。格式
yyyy-MM-dd HH:mm:ss

authId

认证 id

String(32-50)

否

认证 id，查询二维码扫码状态
使用

authType

认证类型

String(1)

否

认证类型。
0：登录认证；
1：风险认证

qrcodeType

二维码类型

String(1)

否

二维码类型。
1：税务 APP;
2：个人所得税 APP。

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"resultCode": "0000",
"resultMsg": "获取成功",
"qrcodeContent":
"cXJjb2RlX2lkPUxoUk5SS3RINDR6bm9vZEM3YzFzdHZtUmVwTVpaRVMrem1vWmt4UmtJcHNGQWRBdm1EcDdpN1lv
Yms3enprTk0mYXJlYVByZWZpeD01MTAwJmludGVyZmFjZUNvZGU9MDAwNA==",
"qrcodeImg": "XXXXXXXXXXXXXX",
"genTime": "2023-02-21 09:54:39",
"authId": "c7690958b37a40918c4a1186a9db5f0c",
"authType": "0",
"qrcodeType": "1"
}

2.6.4.业务错误码
从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

票通数电发票接口文档
3001

电子税局账号尚未在平台登记，请先在平台登记

2.7. 查询实名认证二维码扫码状态
此接口用来查询实名认证二维码扫码状态，把实名认证二维码展示给客户后可以调用此接
口查询扫码状态。如果二维码过期，无论是否扫码扫码 scanStatus 都会返回 3。此接口比较耗时，
请调长超时时间。

2.7.1.调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryAuthQrcodeSca
nStatus.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryAuthQrcodeScanStat
us.pt
字符编码

UTF-8

2.7.2.请求报文
请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String(15-20)

是

销售方纳税人识别号,长度校

识别号

验规则为字符长度，只能包括
大写英文字母或数字

account

登录账户

String(50)

是

电子税局登录账号

authId

认证 id

String(32-50)

是

认证 id，推送开票结果/查询
开票结果/获取实名认证二维
码时会随二维码一起返回

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"authId": "c7690958b37a40918c4a1186a9db5f0c"
}

票通数电发票接口文档

2.7.3.响应报文
响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

account

登录账户

String(50)

是

电子税局登录账号

authId

认证 id

String(32-50)

是

认证 id

resultCode

结果代码

String(4)

是

结果代码
0000：查询成功。
其他：查询失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

是

查询结果描述

scanStatus

扫码状态

String(1)

否

扫码状态。
1：未扫码；
2：已扫码；
3：二维码已过期。

scanStatusMsg

扫码状态描述

String(不定长)

否

扫码状态描述

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"authId": "8b14000c20104bcbb4c51ebd65c676f9",
"resultCode": "0000",
"resultMsg": "查询成功",
"scanStatus": "2",
"scanStatusMsg": "已扫码"
}

2.7.4.业务错误码
从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

3001

电子税局账号尚未在平台登记，请先在平台登记

票通数电发票接口文档

2.8. 查询数电账号认证状态
此接口用来查询数电账号的认证状态，会返回当前数电账号的认证状态，例如无需认证、
风险认证及登录认证等，并返回具体的操作建议。

2.8.1.调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/getTaxBureauAccoun
tAuthStatus.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/getTaxBureauAccountAuth
Status.pt
字符编码

UTF-8

2.8.2.请求报文
请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String(15-20)

是

销售方纳税人识别号,长度校

识别号

验规则为字符长度，只能包括
大写英文字母或数字

account

登录账号

String(50)

是

电子税局登录账号

名称

类型

必填

说明

销售方纳税人识别

String(15-20)

是

销售方纳税人识别号

String(50)

是

电子税局登录账号

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823"
}

2.8.3.响应报文
响应参数-业务报文部分：
字段
taxpayerNum

号
account

登录账户

票通数电发票接口文档
name

姓名

String(20)

是

姓名

identityType

登录身份类型

String(2)

是

登录身份类型。
01：法定代表人
02：财务负责人
03：办税员
04：涉税服务人员
05：管理员
07：领票人
09：开票员
99：其他人员

operationProposed

操作建议

String(1)

是

操作建议,注意：该操作建议是
根据账号状态和不同地区的登
录方式区分出来的,并非和账
号状态一一对应。
0：无需认证；
1：需扫码认证；
2：需扫码或短信认证；
3：需短信认证

authStatus

账号状态

String(1)

是

账号状态
0：无需认证；
1：风险认证；
2：登录认证；
3：风险+登录认证
注：目前是根据调用税局返回
的结果判断的账号状态，风险
认证只有开具蓝票才能得知。

switchable

可切换状态

String(1)

是

当前企业是否可切换。
0：不可切换；
1：可切换，代表该数电账号在
该地区的其他企业有登录状
态，当前企业不需要做登录认

证，如果有开票，会自动调度
切换到当前企业开票。
wechatUserBindStatus

是否绑定微信公众

String(1)

是

号

是否绑定票通云服务微信公众
号。
0：否；
1：是。

lastAuthSuccTime

loginAuthStatus

最新认证成功（登

String(19)

否

最新认证成功（登录认证或风

录认证或风险认

险认证）时间

证）时间

格式 yyyy-MM-dd HH:mm:ss

登录认证状态

String(1)

是

登录认证状态。
0：未登录；
1：已登录

lastLoginAuthTime

最新登录认证时间

String(19)

否

最新登录认证时间。

票通数电发票接口文档
格式 yyyy-MM-dd HH:mm:ss
风险认证状态

riskAuthStatus

String(1)

是

风险认证状态。
0：未认证；
1：已认证

最新风险认证时间

lastRiskAuthTime

String(19)

否

最新风险认证时间。
格式 yyyy-MM-dd HH:mm:ss

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"name": "张三",
"identityType": "09",
"authStatus": "2",
"operationProposed": "2",
"switchable": "1",
"wechatUserBindStatus": "1",
"lastAuthSuccTime": "2023-06-20 00:50:39",
"loginAuthStatus": "0",
"lastLoginAuthTime": "2023-06-20 00:50:39",
"riskAuthStatus": "1",
"lastRiskAuthTime": "2023-06-21 10:50:39"
}

2.8.4.业务错误码
从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

3001

电子税局账号尚未在平台登记，请先在平台登记

2.9. 开具蓝字数电发票
注：价税合计金额=不含税金额+不含税金额*税率

2.9.1.调用说明
项目
调用关系

说明内容
第三方平台调用票通平台

备注

票通数电发票接口文档
调用方式

https

POST 方式提交

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt

字符编码

UTF-8

2.9.2.请求报文
请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
81：数电票（增值税专用发票）
82：数电票（普通发票）
10：增值税电子普通发票
08：增值税电子专用发票
不传值默认 10：增值税电子普
通发票

buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长
度，不能包含<>字符

purchaseInvSellerId

农产品收购发

String（3）

否

农产品收购发票销售方证件类

Type

票销售方证件

型。开具农产品收购发票时必

类型

填。buyerTaxpayerNum 根据证
件类型传值。见 3.2 农产品收
购发票销方证件类型。

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字。开具农产品
收购发票时必填。

naturalPersonFlag

是否开具给自
然人

String（1）

否

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”

票通数电发票接口文档
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人
识别号”)，该张发票将在受票
方自然人个人票夹中展示。
buyerAddress

购买方地址

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度，
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerTel

购买方电话

String(1-20)

否

票面信息，无默认，长度校验
规则为字符长度，只能是数字、
中英文括号、中英文横杠。
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerBankName

购买方开户行

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

buyerBankAccount

购买方银行账

String(1-50)

否

号

票面信息，无默认，长度校验
规则为字符长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK

票通数电发票接口文档
字节长度。如果不传值，取平
台企业开票设置中的开户行及
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。
sellerBankAccount

销货方银行账

String(1-50)

否

号

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银
行账号信息（如有多条取默认
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示
注：最终版式文件销方银行账
户取税局维护的开户行及账号

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示
注：最终版式文件上的销方地
址电话取税局维护的地址电话

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

variableLevyFlag

数电发票差额
征税标识

String（1）

否

数电发票差额征税标识。只有
差额征税时需要填写。

票通数电发票接口文档
1：差额征税-全额开票
2：差额征税-差额开票，差额
开票时可不传该字段，以开票
项目明细传的扣除额及差额凭
证为准
casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该复核人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

takerName

收票人名称

String(1-10)

否

客户信息，长度校验规则为字
符长度

takerTel

收票人手机号

String(11)

否

客户信息，长度校验规则为字
符长度

takerEmail

收票人邮箱

String(4-50)

否

客户信息，填写后，票通会给
客户发送发票邮件，不填写则
不发送，长度校验规则为字符
长度

specialInvoiceKind

特殊票种

String(2)

否

特殊票种，默认为空。
08：成品油发票；
02：农产品收购发票，只能开
具数电票（普通发票），注：
购方信息代表实际的销方信
息，销方信息是实际的购方；
12：自产农产品销售发票，只
能开具数电票（普通发票）

remark

备注

String(0-200)

否

备注，校验规则字符长度

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符

票通数电发票接口文档
长度。如果没有传值，票通平
台默认使用发票请求流水号
invoiceReqSerialNo 赋值
shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）
itemList

开票项目列表

goodsName

货物名称

数组或集合

是

最大 2000 行（包括折扣行）。

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCo

对应税收分类

de

编码

specificationModel

对应规格型号

String(1-50)

是

统一编码表的信息，长度校验
规则为字符长度

String(1-40)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

meteringUnit

单位

String(1-20)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

quantity

数量

16 位(精确到 8

否

位小数)

票面信息，支持到小数点前 8
位。数量和单价必须同时为空
或同时不为空。
成品油发票数量不能为空。

includeTaxFlag

含税标示

unitPrice

单价

String(1)

否

0：不含税，1：含税，默
认为 0 不含税

16 位(精确到 8

否

票面信息，支持到小数点前 8

位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。数量和单价必须
同时为空或同时不为空。
成品油发票单价不能为空。

invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

discountAmount

折扣金额

10 位(精确到 2
位小数)

否

该商品行的折扣金额，传负数。
差额征税-差额开票不支持折

票通数电发票接口文档
扣。
discountTaxRateAmou

折扣税额

nt
deductionAmount

10 位(精确到 2

否

位小数)
差额开票扣除
金额

10 位(精确到 2

票面信息，使用折扣金额进行
计算

否

位小数)

差额开票扣除金额，填写时为
差额开票。如果不填，
variableLevyProofList 有数
据，将按差额开票。

preferentialPolicyF

优惠政策标识

String(1-50)

否

lag

空：不使用，1:使用
零税率标识为 1、2 时该值必填
1。增值税特殊管理有值时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税、简易征收等

差额凭证明细列表信息（variableLevyProofList）
variableLevyProofList

差额凭证明细

数组或集合

否

列表
proofType

凭证类型

最大 100 行，差额征税-差额开
票必填

String（2）

是

凭证类型。
01：数电票；
02：增值税专用发票;
03：增值税普通发票;
04：营业税发票;
05：财政票据；
06：法院裁决书；
07：契税完税凭证；
08：其他发票类；
09：其他扣除凭证。

electronicInvoiceNo

数电票号码

String(20)

否

数电票号码。
凭证类型为 01 数电票时必填。

invoiceCode

发票代码

String(10/12)

否

发票代码。
凭证类型为 02 增值税专用发
票时必填。
凭证类型为 03 增值税普通发
票时必填。
凭证类型为 04 营业税发票时
必填。

invoiceNo

发票号码

String(8)

否

发票号码。
凭证类型为 02 增值税专用发
票时必填。

票通数电发票接口文档
凭证类型为 03 增值税普通发
票时必填。
凭证类型为 04 营业税发票时
必填。
proofNo

凭证号码

String(0-100)

否

凭证号码

issueDate

开具日期

String(10)

否

开具日期。
格式 yyyy-MM-dd。
凭证类型为 01 数电票时必填。
凭证类型为 02 增值税专用发
票时必填。
凭证类型为 03 增值税普通发
票时必填。
凭证类型为 04 营业税发票时
必填。

proofAmount

凭证合计金额

10 位(精确到 2

是

位小数)
deductionAmount

本次扣除金额

10 位(精确到 2

凭证合计金额。
不能等于 0。

是

位小数)

本次扣除金额。
不能等于 0。所有凭证的扣除
金额要等于 itemList 中的
deductionAmount。

proofRemark

备注

String(0-200)

否

备注。
凭证类型为 08 其他发票类时
必填。
凭证类型为 09 其他扣除凭证
时必填。

source

来源

String（4）

否

来源。默认手工录入。
手工录入；
勾选录入；
模板录入。

订单列表
orderList

订单列表

数组或集合

否

订单列表，合并订单开票可以
使用该字段传值

orderNo

单据号

String（1-50）

是

单据号

优惠政策传值说明：
优惠政策
传值

免税

不征税

普通零税率

简易征收

按 5%简易征收

taxRateValue

0

0

0

0.03/0.05

0.05

zeroTaxFlag

1

2

3

null

null

preferentialPolicyFlag

1

1

null

1

1

免税

不征税

null

简易征收

按 5%简易征收

字段名

vatSpecialManage

报文示例：

票通数电发票接口文档
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "82",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": ""010-1234567",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "备注",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"takerName": "XXX",
"takerTel": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"itemList": [{
"goodsName": "小麦",
"taxClassificationCode": "1010101020000000000",
"specificationModel": "",
"meteringUnit": "袋",
"quantity": "1.00",
"includeTaxFlag": "1",
"unitPrice": "100",
"invoiceAmount": "100.00",
"taxRateValue": "0.13"
},
{
"goodsName": "稻谷商品",
"taxClassificationCode": "1010101010000000000",
"specificationModel": "",
"meteringUnit": "",
"quantity": "1.00",
"includeTaxFlag": "1",
"unitPrice": "2.00",
"invoiceAmount": "2.00",
"taxRateValue": "0.00",
"preferentialPolicyFlag": "1",
"zeroTaxFlag": "1",

票通数电发票接口文档
"vatSpecialManage": "免税"
}
]
}

2.9.3.响应报文
响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水

类型

必填

说明

String(20)

是

4 位平台简称+16 位随机数

String

否

不定长，Base64 字符串，电子

号
qrCodePath

二维码 url

发票该值必传
qrCode

二维码图片

String

否

Base64 字符串

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.9.4.业务错误码
从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

票通数电发票接口文档
8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.10. 快捷冲红数电发票（全额冲红）
此接口为了简化数电冲红操作，将申请数电红字发票确认单、开具红字数电发票接口集成，
票通平台将自动申请数电红字发票确认单并开具红字数电发票。此接口只针对销方冲红发票使
用。
票通侧主要流程说明：
（1）业务方调用后，票通校验系统内是否存在该发票的红字确认单，若已存在该发票的红
字确认单（状态为无需确认或购销双方已确认），将会直接使用该红字发票确认单进行冲红；若
红字发票确认单状态为“销方录入待购方确认”，将会查询税局红字发票确认单状态，若为“购
销双方已确认”将会冲红发票。
（2）票通收到冲红请求后，如没有冲红，票通将保存红票信息，红票状态为“红字发票确
认单申请中”；
（3）接下来票通帮助企业自动申请红字发票确认单，
如返回“无需确认”将自动进行开具红票；开具成功推送结果给业务系统。
如返回“销方录入待购方确认”将会修改红票状态为“红字确认单审核中”并通过发票
开具结果推送接口推送给业务系统，业务系统也可以主动查询该红票状态，处于“红字确
认单审核中”状态时，销方需要联系购方进行确认处理，购方确认后可以再次调用该接口
进行冲红，票通平台使用步骤 1 进行冲红处理；处于“红字确认单审核中”状态的确认单，
票通也会使用定时任务每小时一次主动查询审核结果，审核通过票通将自动冲红，如超过
72 时，电子税务局将自动作废该确认单，等同购方审核驳回操作，票通将冲红状态置为失
败，推送结果给业务系统。
如返回其他状态，均会把红票作为失败处理，失败原因会通过推送发票或查询发票返
回给接口调用方，待失败问题解决后可以调用该接口进行冲红操作。

2.10.1.
项目

调用说明
说明内容

备注

票通数电发票接口文档
调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/op
enapi/invoiceRed.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi
/invoiceRed.pt
字符编码

UTF-8

2.10.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(20)

是

红票请求流水号 4 位平台简称

别号
invoiceReqSerialNo

发票请求流水号

+16 位随机数
invoiceCode

发票代码

String(12)

否

需冲红的原发票代码，冲红增
值税发票管理系统开具的发票
或数电纸质发票时必填

invoiceNo

发票号码

String(8)

否

需冲红的原发票号码，冲红增
值税发票管理系统开具的发票
或数电纸质发票时必填

blueAllEleInvNo

原数电发票号码

String(20)

否

需冲红原数电发票号码，冲红
数电发票时必填

blueInvoiceDate

蓝字发票开票日

String(8)

否

期

蓝字发票开票日期，格式
yyyyMMdd。冲红非票通平台开
具的发票时必填，需要使用该
字段及数电发票号码从税局拉
取发票

redReason

冲红原因

String(1-100)

是

冲红原因，不传默认 01
01：开票有误
02：销货退回
03：服务中止
04：销售折让

amount

价税合计金额

10 位(精确到 2

是

位小数)
account

电子税局登录账
号

String(50)

原发票的价税合计金额的负数
值

否

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，取蓝票的开票账号，
若蓝票的开票账号不再使用，

票通数电发票接口文档
取企业现有的。
invoiceKind

发票种类代码

String（2）

否

开具红字发票种类。
81：数电发票（增值税专用发
票）
82：数电发票（普通发票）。
默认蓝票的发票种类代码。
此字段目的解决数电发票冲红
增值税发票，只有企业不再使
用增值税系统时才可以跨票种
冲红。
数电发票（普通发票）可以冲
红数电发票（普通发票）、增
值税电子普通发票、增值税纸
质普通发票。
数电发票（增值税专用发票）
可以冲红数电发票（增值税专
用发票）、增值税电子专用发
票、增值税纸质专用发票。

takerName

收票人名称

String(1-10)

否

收票人名称，长度校验规则为
字符长度

takerTel

收票人手机号

String(11)

否

收票人手机号，长度校验规则
为字符长度，若在票通平台设
置了红字发票发送短信且企业
有可用短信条数，填写该值则
发送短信

takerEmail

收票人邮箱

String(4-50)

否

收票人邮箱，长度校验规则为
字符长度，若在票通平台设置
了红字发票发送邮件，填写该
值则发送邮件

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

报文示例：
{
"taxpayerNum": "9120931023801231",
"invoiceReqSerialNo": "XXXX5678901234567891",
"invoiceCode": "123456789012",
"invoiceNo": "12345678",
"redReason": "01",
"amount": "-100",
"account": "zhangsan",
"definedData": "自定义数据"
}

票通数电发票接口文档

2.10.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

invoiceReqSerialNo

发票请求流水

String(20)

是

4 位平台简称+16 位随机数

号
qrCodePath

二维码 url

String

是

不定长，Base64 字符串

qrCode

二维码图片

String

否

扫码打开查看发票开票状

Base64
redApplySerialNo

红字确认单申

态
String(20)

否

请流水号

红字确认单申请流水号，如
果受理成功，该值必填。可
以使用该字段调用 2.29.查
看红字发票确认单接口查
看红字确认单信息

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "XXXXXXXXXXXXXXXXXXXXXXXX",
"qrCode": "XXXXXXXXXXXXXXXXXXXXXXXX",
"redApplySerialNo": "P1234567891234567890"
}

2.10.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8001

开票处理失败,开票企业不存在

8002

找不到对应的税号信息

8003

找不到对应的发票

8004

找不到对应的开票企业信息，请检查税号

6005

该蓝票已经冲红，不可冲红

3001

电子税局账号尚未在平台登记，请先在平台登记

票通数电发票接口文档

2.11. 查询发票主要信息
此接口用来查询发票状态信息。如果开票成功会返回发票代码、发票号码、数电发票号码等发票信息；
如果开票失败则返回失败原因。

2.11.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryInvoice.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryInvoice.pt
字符编码

UTF-8

2.11.2.

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

invoiceReqSerialNo

发票请求流水号

String(20)

是

发票请求流水号

说明

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890"
}

2.11.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

销售方纳税人识

String（15-20）

是

销售方纳税人识别号

String（20）

是

发票请求流水号

String(1)

是

发票类型。

别号
invoiceReqSerialNo

发票请求流水号

invoiceType

开票类型

1：蓝票
2：红票
invoiceKind

发票种类代码

String(2)

是

发票种类代码。

票通数电发票接口文档
81：电子发票（增值税专用
发票）
82：电子发票（普通发票）
87：数电纸质发票（机动车
销售统一发票）
10：增值税电子普通发票
08：增值税电子专用发票
04：增值税普通发票
01：增值税专用发票
code

发票状态码

String（4）

是

发票状态码。
0000：开票成功；
6666：未开票；
7777：开票中；
9999：开票失败；
3999：开票失败，需要扫码
或短信认证，可以使用 2.8
接口查询数电账号状态，来
告知商家需要如何认证；
4999：红字发票确认单申请
中，只有红票会有此状态；
5999：红字发票确认单审核
中，具体状态描述见 msg，
只有红票会有此状态；

msg

发票状态描述

String（100）

是

发票状态描述（成功/失败原
因）

account

开票人税局账号

String(50)

否

电子税局登录账号（手机号
或身份证号）

authenticationQrcode
authId

实名认证二维码

String （ 不 定

否

实名认证二维码图片，

图片

长)

实名认证二维码

String（32-50)

否

实名认证二维码认证 id

base64 字符串

认证 id
tradeNo

订单号

String（20）

否

发票状态为成功时，必传

definedData

自定义数据

String(0-200)

否

自定义数据

qrCode

二维码

String（不定

否

发票状态为成功时，必传

长）
invoiceCode

发票代码

String（12）

否

发票状态为成功时，必传

invoiceNo

发票号码

String（8）

否

发票状态为成功时，必传

electronicInvoiceNo

数电发票号码

String(20)

否

数电发票号码，发票为数电
电票时：数电发票号码=发票
代码+发票号码

invoiceDate

开票日期

String(19)

否

发票状态为成功时，必传
yyyy-MM-dd HH:mm:ss

noTaxAmount

不含税金额

String（16）

否

发票状态为成功时，必传，
小发票状态为成功时，必传，

票通数电发票接口文档
数点后 2 位，以元为单位精
确到分
taxAmount

税额

String（16）

否

发票状态为成功时，必传，
小数点后 2 位，以元为单位
精确到分

invoiceLayoutFileType

版式文件类型

String(3)

否

版式文件类型。
pdf：pdf 文件格式；
ofd：ofd 文件格式。

invoicePdf

发票版式文件

String（不定

否

长）

发票状态为成功时，必传，
不定长，Base64 字符串(文
件流)

invoiceXml

发票 xml 文件

String（不定

否

长）

非必传，若开票成功没传，
需要调用获取 2.15 获取数
电发票文件接口获取，不定
长，Base64 字符串

downloadUrl

发票下载 Url

String（不定

否

长）
invPreviewQrcodePath

电子发票预览二
维码 url

String（不定

发票状态为成功时，必
传,Base64 字符串

否

长）

不定长，Base64 字符串。同
2.9 开具蓝字数电发票接口
返回的 qrCodePath，电子发
票该值必传

invPreviewQrcode

电子发票预览二
维码图片

String（不定

否

长）

不定长，Base64 字符串，扫
码查看发票开票状态。同
2.9 开具蓝字数电发票接口
返回的 qrCode，电子发票该
值必传

invDeletedFlag

发票删除标志

String(1)

是

发票删除标志。
开具失败/未开票的情况会
被删除，可以发起重开。
0：未删除；
1：已删除。
默认不查询已删除的发票，
如需要查询已删除的发票，
联系票通对接人员配置。

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceType": "1",
"invoiceKind": "82",
"code": "0000",
"msg": "开票成功",
"tradeNo": "DEMO1111111111",

票通数电发票接口文档
"definedData": "自定义数据",
"qrCode": "XXXXXXXX",
"invoiceCode": "123456789012",
"invoiceNo": "12345678",
"electronicInvoiceNo": "12345678901212345678",
"invoiceDate": "2022-09-28 08:15:54",
"noTaxAmount": "90.50",
"taxAmount": "11.50",
"invoiceLayoutFileType": "pdf",
"invoicePdf": "XXXXXXXX",
"invoiceXml": "XXXXXXXX",
"downloadUrl": "XXXXXXXX",
"invPreviewQrcodePath": "XXXXXXXX",
"invPreviewQrcode": "XXXXXXXX",
"invDeletedFlag": "0"
}

2.11.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8003

找不到对应的发票

2.12. 查询发票全票面信息
此接口用来查询发票状态及发票全面信息。如果开票成功会返回发票代码、发票号码、数电发票号码
等发票信息；如果开票失败则返回失败原因。

2.12.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryInvoiceInfo.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryInvoiceInfo.pt

字符编码

UTF-8

备注
POST 方式提交

票通数电发票接口文档

2.12.2.

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

invoiceReqSerialNo

发票请求流水号

String(20)

是

发票请求流水号

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890"
}

2.12.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

invoiceReqSerialNo

发票请求流水

String（20）

是

发票请求流水号

String（4）

是

发票状态码。

号
code

发票状态码

0000：开票成功；
6666：未开票；
7777：开票中；
9999：开票失败；
3999：开票失败，需要扫码
或短信认证，可以使用 2.8
接口查询数电账号状态，来
告知商家需要如何认证；
4999：红字发票确认单申请
中，只有红票会有此状态；
5999：红字发票确认单审核
中，具体状态描述见 msg，
只有红票会有此状态；
msg

发票状态描述

String（100）

是

发票状态描述（成功/失败
原因）

authenticationQrcode

实名认证二维

String（不定长)

否

码图片
authId

实名认证二维

实名认证二维码图片，
base64 字符串

String（32-50)

否

实名认证二维码认证 id

码认证 id
buyerName

购买方名称

String(4-100)

否

购买方名称

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

购买方纳税人识别号

票通数电发票接口文档
识别号
buyerAddress

购买方地址

String(1-100)

否

购买方地址

buyerTel

购买方电话

String(1-20)

否

购买方电话

buyerBankName

购买方开户行

String(1-100)

否

购买方开户行

buyerBankAccount

购买方银行账

String(1-50)

否

购买方银行账号

String（15-20）

是

销售方纳税人识别号

号
sellerTaxpayerNum

销售方纳税人
识别号

sellerName

销售方名称

String(4-100)

否

销售方名称

sellerAddress

销售方地址

String(1-100)

否

销售方地址

sellerTel

销售方电话

String(1-20)

否

销售方电话

sellerBankName

销售方开户行

String(1-100)

否

销售方开户行

sellerBankAccount

销售方银行账

String(1-50)

否

销售方银行账号

号
showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账

开户行及账号

号到发票备注，默认 0 不显

到发票备注

示
0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账

开户行及账号

号到发票备注，默认 0 不显

到发票备注

示
0:不显示
1:显示

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到

地址电话到发

发票备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到

地址电话到发

发票备注，默认 0 不显示

票备注

0:不显示
1:显示

invoiceKind

发票种类代码

String(2)

是

发票种类代码。
81：电子发票（增值税专用
发票）
82：电子发票（普通发票）
87：数电纸质发票（机动车
销售统一发票）
10：增值税电子普通发票
08：增值税电子专用发票
04：增值税普通发票
01：增值税专用发票

specialInvoiceKind

特殊票种标识

String(2)

是

发票状态为成功时，必传
00：普通发票

票通数电发票接口文档
08：成品油发票
02：收购发票
invoiceDate

开票日期

String(19)

否

发票状态为成功时，必传
格式 yyyy-MM-dd HH:mm:ss

invoiceCode

发票代码

String（12）

否

发票状态为成功时，必传

invoiceNo

发票号码

String（8）

否

发票状态为成功时，必传

electronicInvoiceNo

数电发票号码

String(20)

否

发票状态为成功时，必传
发票为数电电票时：数电发
票号码=发票代码+发票号
码

invoiceType

开票类型

String(1)

否

发票状态为成功时，必传
1：蓝票
2：红票

blueInvoiceCode

原发票代码

String（12）

否

发票类型为 2 时，必传

blueInvoiceNo

原发票号码

String（8）

否

发票类型为 2 时，必传

blueAllEleInvNo

原数电发票号

String（8）

否

数电发票发票类型为 2 时，

码
noTaxAmount

不含税金额

必传
String（16）

否

发票状态为成功时，必传，
保留小数点后 2 位

taxAmount

税额

String（16）

否

发票状态为成功时，必传，
保留小数点后 2 位

amountWithTax

价税合计

String（16）

否

发票状态为成功时，必传，
保留小数点后 2 位

invalidFlag

作废标志

String（20）

否

发票状态为成功时，必传，
NOT_DESTROY：未作废；
ALREADY_DESTROY:已作废；
DESTROYING:作废中；
DESTROY_FAIL:作废失败。

redFlag

冲红标志

String（20）

否

发票状态为成功时，必传，
NOT_RED：未冲红；
ALREADY_RED:已冲红；
REDING：冲红中；
RED_FAIL: 冲红失败；
PART_RED：部分冲红。

drawerName

开票人名称

String(1-20)

否

发票状态为成功时，必传

casherName

收款人名称

String(1-16)

否

发票状态为成功时，必传

reviewerName

复核人名称

String(1-16)

否

发票状态为成功时，必传

account

开票人税局账

String(50)

否

电子税局登录账号（手机号

号
detailedListFlag

清单标识

或身份证号）
String(1)

否

0：非清单
1：清单

detailedListItemName

清单项目名称

String(1-100)

否

清单项目名称

qrCode

二维码

String（1000）

否

发票状态为成功时，必传

remark

备注

String(0-200)

否

备注，校验规则字符长度

票通数电发票接口文档
tradeNo

订单号

String(0-200)

否

订单号

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接
口中会按照定义返回，长度
校验规则为字符长度

invoiceLayoutFileType

版式文件类型

String(3)

否

版式文件类型。
pdf：pdf 文件格式；
ofd：ofd 文件格式。

invoicePdf

发票 pdf 文件

String

否

发票状态为成功时，必传，
不定长，Base64 字符串

invoiceXml

发票 xml 文件

String（不定长）

否

非必传，若开票成功没传，
需要调用获取 2.15 获取数
电发票文件接口获取，不定
长，Base64 字符串

downloadUrl

发票下载 Url

String

否

发票状态为成功时，必
传,Base64 字符串

invPreviewQrcodePath

电子发票预览

String

否

二维码 url

不定长，Base64 字符串。同
2.9 开具蓝字数电发票接口
返回的 qrCodePath，电子发
票该值必传

invPreviewQrcode

电子发票预览

String

否

二维码图片

不定长，Base64 字符串，扫
码查看发票开票状态。同
2.9 开具蓝字数电发票接口
返回的 qrCode，电子发票该
值必传

invDeletedFlag

发票删除标志

String(1)

是

发票删除标志。
开具失败/未开票的情况会
被删除，可以发起重开。
0：未删除；
1：已删除。
默认不查询已删除的发票，
如需要查询已删除的发票，
联系票通对接人员配置。

项目明细信息（itemList，数组）
itemList

项目明细

数组,发票状态为成功时，
必传

goodsName

货物名称

String(1-100)

是

发票状态为成功时，必传

taxClassificationCode

税收分类编码

String(1-50)

是

发票状态为成功时，必传

specificationModel

规格型号

String(1-20)

否

meteringUnit

单位

String(1-16)

否

quantity

数量

String(1-16)

是

保留小数点后 8 位

unitPrice

不含税单价

String(1-16)

是

保留小数点后 8 位

itemAmount

项目金额

String(10)

是

保留小数点后 2 位

taxRate

税率

String(4)

是

保留小数点后 2 位，例如
0.16

票通数电发票接口文档
taxRateAmount

税额

String(10)

是

保留小数点后 2 位

deduction

扣除额

String(10)

否

保留小数点后 2 位

preferentialPolicyFl

优惠政策标识

String(1-50)

否

优惠政策标识。

ag

0：不使用；
1：使用

zeroTaxFlag

零税率标识

String(1)

否

空：非零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

增值税特殊管理

String(1)

是

0：正常行

理
itemProperty

发票行性质

1：折扣行
2：被折扣行
itemNo

项目序号

blueInvOrderNo

蓝字发票明细

String(11)

是

用来表示项目的先后顺序

String（1-4）

否

蓝字发票明细序号，红字数

序号

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"code": "0000",
"msg": "开具成功",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": "010-1234567",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerTaxpayerNum": "91XXXXXXXXXXXXX31",
"sellerName": "北京 XXXXX 技术有限公司",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"invoiceKind": "82",
"specialInvoiceKind": "00",
"invoiceDate": "2022-09-28 08:15:54",
"invoiceCode": "123456789012",
"invoiceNo": "12345678",
"electronicInvoiceNo": "12345678901212345678",
"invoiceType": "1",
"noTaxAmount": "90.50",
"taxAmount": "11.50",

电发票的时候可能有值

票通数电发票接口文档
"amountWithTax": "102.00",
"invalidFlag": "NOT_DESTROY",
"redFlag": "NOT_RED",
"drawerName": "XXXXXX",
"account": "185XXXXXXXX",
"detailedListFlag": "0",
"detailedListItemName": "0",
"qrCode": "XXXXXXXX",
"remark": "备注",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"invoiceLayoutFileType": "pdf",
"invoicePdf": "XXXX",
"invoiceXml": "XXXXXXXX",
"downloadUrl": "XXXX",
"invPreviewQrcodePath": "XXXXXXXX",
"invPreviewQrcode": "XXXXXXXX",
"invDeletedFlag": "0",
"itemList": [{
"goodsName": "小麦",
"taxClassificationCode": "1010101020000000000",
"specificationModel": "",
"meteringUnit": "袋",
"quantity": "1.00",
"unitPrice": "88.50",
"itemAmount": "88.50",
"taxRate": "0.13",
"taxRateAmount": "11.50",
"preferentialPolicyFlag": "0",
"itemProperty": "0",
"itemNo": "1"
},
{
"goodsName": "稻谷商品",
"taxClassificationCode": "1010101010000000000",
"specificationModel": "",
"meteringUnit": "",
"quantity": "1.00",
"unitPrice": "2.00",
"invoiceAmount": "2.00",
"taxRate": "0.00",
"taxRateAmount": "0.00",
"preferentialPolicyFlag": "1",
"zeroTaxFlag": "1",

票通数电发票接口文档
"vatSpecialManage": "免税",
"itemProperty": "0",
"itemNo": "2"
}
]
}

2.12.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8003

找不到对应的发票

2.13. 推送发票主要信息
2.13.1.

调用说明

项目

说明内容

调用关系

票通平台调用第三方平台

调用方式

https

接口地址

第三方平台提供

字符编码

UTF-8

2.13.2.

请求报文

备注
POST 方式提交

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String（15-20）

是

销售方纳税人识别号

String（20）

是

发票请求流水号

String(1)

是

开票类型

识别号
invoiceReqSerialNo

发票请求流水
号

invoiceType

开票类型

1：蓝票；
2：红票；
invoiceKind

发票种类代码

String(2)

是

发票种类代码。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

票通数电发票接口文档
87：数电纸质发票（机动车销
售统一发票）
10：增值税电子普通发票
08：增值税电子专用发票
04：增值税普通发票
01：增值税专用发票
code

发票状态码

String（4）

是

发票状态码。
0000：开票成功；
6666：未开票；
9999：开票失败；
3999：开票失败，需要扫码或
短信认证，可以使用 2.8 接口
查询数电账号状态，来告知商
家需要如何认证；
5999：红字发票确认单审核中，
具体状态描述见 msg，只有红
票会有此状态；

msg

发票状态描述

String（100）

否

发票状态描述（成功/失败原
因）

account

开票人税局账

String(50)

否

号
authenticationQrcode

实名认证二维

身份证号）
String（不定长)

否

码图片
authId

实名认证二维

电子税局登录账号（手机号或
实名认证二维码图片，base64
字符串

String（32-50)

否

实名认证二维码认证 id

码认证 id
tradeNo

订单号

String（20）

否

订单号

definedData

自定义数据

String(0-200)

否

自定义数据，在开票接口中使
用，会按照定义返回

qrCode

二维码

String（1000）

否

开票成功时，必传，失败时，
不传

invoiceCode

发票代码

String（12）

否

开票成功时，必传，失败时，
不传

invoiceNo

发票号码

String（8）

否

开票成功时，必传，失败时，
不传

electronicInvoiceNo

数电发票号码

String(20)

否

数电发票号码，发票为数电电
票时：数电发票号码=发票代码
+发票号码

invoiceDate

开票日期

String(19)

否

开票成功时，必传 yyyy-MM-dd
HH:mm:ss，失败时，不传

noTaxAmount

不含税金额

String（16）

否

开票成功时，必传，保留小数
点后 2 位，以元为单位精确到
分，失败时，不传

taxAmount

税额

String（16）

否

开票成功时，必传，保留小数
点后 2 位，以元为单位精确到

票通数电发票接口文档
分，失败时，不传
invoiceLayoutFileType

版式文件类型

String(3)

否

版式文件类型。
pdf：pdf 文件格式；
ofd：ofd 文件格式。

invoicePdf

发票 pdf 文件

String(不定长)

否

电子发票开票成功时，必传，
失败时，不传，不定长，Base64
字符串

invoiceXml

发票 xml 文件

String（不定长）

否

非必传，若开票成功没传，需
要调用获取 2.15 获取数电发
票 文 件 接 口 获 取， 不 定 长 ，
Base64 字符串

downloadUrl

发票下载 Url

String(不定长)

否

电子发票开票成功时，必传，
失败时，不传，不定长，Base64
字符串

invoiceQrcodeNo

二维码编号

String（10-20）

否

二维码编号，二维码唯一标识，
扫码开票的发票才有该值

invPreviewQrcodePath

电子发票预览

String

否

二维码 url

不定长，Base64 字符串。同 2.9
开具蓝字数电发票接口返回的
qrCodePath，电子发票该值必
传

invPreviewQrcode

电子发票预览

String

二维码图片

否

不定长，Base64 字符串，扫码
查看发票开票状态。同 2.9 开
具 蓝 字 数 电 发 票 接 口 返 回的
qrCode，电子发票该值必传

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceType": "1",
"invoiceKind": "82",
"code": "0000",
"msg": "开具成功",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"qrCode": "XXXXXXXX",
"invoiceCode": "123456789012",
"invoiceNo": "12345678",
"electronicInvoiceNo": "12345678901212345678",
"invoiceDate": "2022-09-28 08:15:54",
"noTaxAmount": "90.50",
"taxAmount": "11.50",
"invoiceLayoutFileType": "pdf",
"invoicePdf": "XXXX",

票通数电发票接口文档
"invoiceXml": "XXXXXXXX",
"downloadUrl": "XXXX",
"invPreviewQrcodePath": "XXXXXXXX",
"invPreviewQrcode": "XXXXXXXX"
}

2.13.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String（6-20）

是

销售方纳税人识别号

String（20）

是

发票请求流水号

识别号
invoiceReqSerialNo

发票请求流水
号

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890"
}

2.13.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

0000

接收成功

9999

接收失败

2.14. 推送发票全票面信息
2.14.1.

调用说明

项目

说明内容

调用关系

票通平台调用第三方平台

调用方式

https

接口地址

第三方平台提供

字符编码

UTF-8

备注
POST 方式提交

票通数电发票接口文档

2.14.2.

请求报文

求参数-业务报文部分：
字段

名称

类型

必填

说明

invoiceReqSerialNo

发票开具请求

String（20）

是

发票请求流水号

String（20）

是

发票开具类型。

流水号
invoiceIssueType

发票开具类型

1：蓝票；
2：红票；
invoiceIssueResultCode

发票开具结果

String(1)

是

状态码

发票状态码。
0000：开票成功；
6666：未开票；
9999：开票失败；
3999：开票失败，需要扫码或
短信认证，可以使用 2.8 接口
查询数电账号状态，来告知商
家需要如何认证；
5999：红字发票确认单审核中，
具

体

状

态

描

述

见

invoiceIssueResultMsg，只有
红票会有此状态；
invoiceIssueResultMsg

发票开具结果

String（4）

是

描述
authenticationQrcode

实名认证二维

因）
String（不定长)

否

码图片
authId

实名认证二维

发票状态描述（成功/失败原
实名认证二维码图片，base64
字符串

String（32-50)

否

实名认证二维码认证 id

码认证 id
发票信息
invoiceInfo

发票信息

Object

是

发票信息

invoiceReqSerialNo

发票请求流水

String（15-20）

是

发票请求流水号

String（2）

是

发票操作代码。

号
invoiceOperationCode

发票操作代码

10：开具蓝票
20：开具红票
sellerTaxpayerNum

销方纳税人识

String（15-20）

是

销方纳税人识别号

别号
sellerName

销方名称

String(4-100)

是

销方名称

sellerAddress

销方地址

String(1-100)

否

销方地址

sellerTel

销方电话

String(1-20)

否

销方电话

sellerBankName

销方开户行

String(1-100)

否

销方开户行

sellerBankAccount

销方银行账号

String(1-50)

否

销方银行账号

buyerTaxpayerNum

购买方税号

String(15-20)

否

购买方税号

票通数电发票接口文档
buyerName

购买方名称

String(1-100)

是

购买方名称

buyerAddress

购买方地址

String(1-100)

否

购买方地址

buyerTel

购买方电话

String(1-20)

否

购买方电话

buyerBankName

购买方开户行

String(1-100)

否

购买方开户行

buyerBankAccount

购买方银行账号

String(1-50)

否

购买方银行账号

showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号）

drawerName

开票员

String(1-20)

是

开票员

casherName

收款人

String(1-16)

否

收款人名称

reviewerName

复核人

String(1-16)

否

复核人名称

noTaxAmount

不含税金额

String(16)

是

不含税金额，保留 2 位小数

taxAmount

税额

String(16)

是

税额，保留 2 位小数

amountWithTax

价税合计

String(16)

是

价税合计，保留 2 位小数

remark

备注

String(0-200)

否

备注，校验规则字符长度

tradeNo

订单号

String(0-200)

是

订单号，如果开具时没有传值，
默认为发票请求流水号为订单
号

invoiceKindCode

发票种类代码

String(2)

是

发票种类代码。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）
87：数电纸质发票（机动车销
售统一发票）
10：增值税电子普通发票
08：增值税电子专用发票
04：增值税普通发票
01：增值税专用发票

票通数电发票接口文档
specialInvoiceKind

特殊票种标识

String(2)

是

特殊票种标识。
00：普通票
08：成品油发票
02：收购发票

invoiceType

发票类型

String(1)

是

1 蓝票
2 红票

agentInvoiceFlag

代开标志

String(1)

是

0 自开

taxRateFlag

税率标识

String(1)

是

0 正常票
2 差额票

definedData

自定义数据

String(0-200)

否

自定义数据

takerName

收票人名称

String(0-100)

否

收票人名称

takerPhone

收票人手机号

String(11)

否

收票人手机号

takerEmail

收票人邮箱

String(4-50)

否

收票人邮箱

shopNum

门店编号

String（6-20）

否

门店编号

invoiceStatus

开票状态

String(1)

是

0：未开票（撤回开票中发票），
1：开票成功，
2：开票失败，
3：开票中，
4：红字发票确认单申请中
5：红字发票确认单审核中

invoiceDate

开票日期

String(19)

否

开票成功必传，格式
yyyy-MM-dd HH:mm:ss

invoiceIssueFailReason

开票失败原因

String(不定长)

否

开票失败原因，开具失败时该
值必填

invoiceCode

发票代码

String(12)

否

开票成功必传，发票代码

invoiceNo

发票号码

String(8)

否

开票成功必传，发票号码

electronicInvoiceNo

数电发票号码

String(20)

否

开票成功必传，发票为数电电
票时：数电发票号码=发票代码
+发票号码

qrCode

二维码

String（1000）

否

票面二维码

invoiceLayoutFileType

版式文件类型

String(3)

否

版式文件类型。
pdf：pdf 文件格式；
ofd：ofd 文件格式。

invoicePdf

发票 pdf 文件

String(不定长)

否

电子发票开票成功时，即发票
种类代码为 10、08、81、82 时，
必传；失败时，不传；不定长，
Base64 字符串

invoiceXml

发票 xml 文件

String（不定长）

否

非必传，若开票成功没传，需
要调用获取 2.15 获取数电发
票 文 件 接 口获 取 ， 不 定 长 ，
Base64 字符串

票通数电发票接口文档
downloadUrl

发票下载 Url

String(不定长)

否

电子发票开票成功时，即发票
种类代码为 10 时，必传，失败
时，不传，不定长，Base64 字
符串，通过票通提供的 SDK 进
行解码，其他发票种类不传

redFlag

冲红标志

String(20)

否

0：未冲红；1：已冲红；
2：冲红失败；3：冲红中；
4：部分冲红。

invoiceRedReason

冲红原因

String(1-100)

否

冲红原因

oldInvoiceCode

原发票代码

String(12)

否

红票必传，原发票代码

oldInvoiceNo

原发票号码

String(8)

否

红票必传，原发票号码

oldElectronicInvoice

原数电发票号

否

原数电发票号码

No

码

destroyFlag

作废标识

否

0 未作废 1 已作废

String(20)
String(20)

2 作废失败 3 作废中
invoiceQrcodeNo

二维码编号

String（10-20）

否

二维码编号，二维码唯一标识，
扫码开票的发票才有该值

invPreviewQrcodePath

电子发票预览

String

否

二维码 url

不定长，Base64 字符串。同 2.9
开具蓝字数电发票接口返回的
qrCodePath，电子发票该值必
传

invPreviewQrcode

电子发票预览

String

否

二维码图片

不定长，Base64 字符串，扫码
查看发票开票状态。同 2.9 开
具 蓝 字 数 电发 票 接 口 返 回 的
qrCode，电子发票该值必传

发票项目明细

itemList

发票明细

数组或集合

是

发票项目明细

goodsName

货物名称

String(1-100)

是

货物名称

taxClassificationCod

税收分类编码

String(1-50)

否

税收分类编码，红票清单情况

e

此值为空

selfCode

自行编码

String(1-20)

否

自行编码

specificationModel

规格型号

String(1-20)

否

规格型号

meteringUnit

单位

String(1-16)

否

单位

quantity

数量

String(1-16)

否

保留小数点后八位，折扣行不
传值

unitPrice

单价

String(1-16)

否

保留小数点后八位，折扣行不
传值

taxIncludeFlag

含税标识

String(1)

是

0 不含税，1 含税

itemAmount

项目金额

String(10)

是

保留小数点后两位

taxRateValue

税率

String(4)

是

保留小数点后两位

taxRateAmount

税额

String(10)

是

保留小数点后两位

deduction

扣除额

String(10)

否

差额发票必传，保留小数点后
两位

票通数电发票接口文档
preferentialPolicyFlag

优惠政策标识

String(1-50)

是

0：不使用，1:使用

zeroTaxFlag

零税率标识

String(1)

是

零税率标识，
空：非零税率 ，
1 免税 ，
2 不征税 ，
3 普票零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

增值税特殊管理

理
itemProperty

发票行性质

String(1)

是

0 正常行 1 折扣行 2 被折扣行

itemNo

项目序号

String(11)

是

项目序号，用来表示项目的先
后顺序

blueInvOrderNo

蓝字发票明细

String（1-4）

否

序号

蓝字发票明细序号，红字数电
发票的时候可能有值

订单列表
orderList

订单列表

数组或集合

否

订单列表，通过票通集团版单
据合并开票时有值

orderNo

单据号

String（1-50）

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueType": "1",
"invoiceIssueResultCode": "0000",
"invoiceIssueResultMsg": "发票开具成功",
"invoiceInfo": {
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceOperationCode": "10",
"sellerTaxpayerNum": "91XXXXXXXXXXXXX31",
"sellerName": "北京 XXXXX 技术有限公司",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": "010-1234567",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"drawerName": "XXXXXX",
"account": "185XXXXXXXX",
"noTaxAmount": "90.50",
"taxAmount": "11.50",

是

单据号

票通数电发票接口文档
"amountWithTax": "102.00",
"remark": "备注",
"tradeNo": "DEMO1111111111",
"invoiceKind": "82",
"specialInvoiceKind": "00",
"invoiceType": "1",
"agentInvoiceFlag": "0",
"taxRateFlag": "0",
"definedData": "自定义数据",
"takerName": "XXX",
"takerPhone": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"shopNum": "XXX",
"invoiceStatus": "1",
"invoiceDate": "2022-09-28 08:15:54",
"invoiceCode": "123456789012",
"invoiceNo": "12345678",
"electronicInvoiceNo": "12345678901212345678",
"qrCode": "XXXXXXXX",
"invoiceLayoutFileType": "pdf",
"invoicePdf": "XXXX",
"invoiceXml": "XXXXXXXX",
"downloadUrl": "XXXX",
"redFlag": "0",
"destroyFlag": "0",
"invPreviewQrcodePath": "XXXXXXXX",
"invPreviewQrcode": "XXXXXXXX"
"itemList": [{
"goodsName": "小麦",
"taxClassificationCode": "1010101020000000000",
"specificationModel": "",
"meteringUnit": "袋",
"quantity": "1.00",
"unitPrice": "88.50",
"taxIncludeFlag": "0",
"itemAmount": "88.50",
"taxRateValue": "0.13",
"taxRateAmount": "11.50",
"preferentialPolicyFlag": "0",
"itemProperty": "0",
"itemNo": "1"
},
{
"goodsName": "稻谷商品",

票通数电发票接口文档
"taxClassificationCode": "1010101010000000000",
"specificationModel": "",
"meteringUnit": "",
"quantity": "1.00",
"unitPrice": "2.00",
"taxIncludeFlag": "0",
"itemAmount": "2.00",
"taxRateValue": "0.00",
"taxRateAmount": "0.00",
"preferentialPolicyFlag": "1",
"zeroTaxFlag": "1",
"vatSpecialManage": "免税",
"itemProperty": "0",
"itemNo": "2"
}
],
"orderList": [{
"orderNo": "1715050188237"
}, {
"orderNo": "1715050188238"
}]
}
}

2.14.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String（20）

是

销售方纳税人识别号

String（20）

是

发票请求流水号

识别号
invoiceReqSerialNo

发票请求流水
号

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890"
}

2.14.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

票通数电发票接口文档
0000

接收成功

9999

接收失败

2.15. 获取数电发票文件
通过该接口获取数电发票文件，此接口比较耗时，请调长超时时间。

2.15.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/getAllEleInvFile.p
t
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/getAllEleInvFile.pt
字符编码

UTF-8

2.15.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号,长度校

别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水号

String(20)

否

发票请求流水号

electronicInvoiceNo

数电发票号码

String(12)

否

数电发票号码
注：发票请求流水号和数电发
票号码不能同时为空，如果都
填写以发票请求流水号为准

fileType

文件类型

String(3)

是

文件类型。PDF、OFD、XML 或
pdf、ofd、xml

invoiceDate

开票日期

String(19)

否

开票日期
格式 yyyy-MM-dd HH:mm:ss
如需下载非票通平台开具数电
发票文件，数电发票号码和开
票日期必填

account

电子税局登录账
号

String(50)

否

电子税局登录账号

票通数电发票接口文档

报文示例：
{
"taxpayerNum": "XXXXXXXXXXXXXX",
"invoiceReqSerialNo": "12345678901234567890",
"fileType": "PDF"
}

2.15.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号,长度校

别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水号

String(20)

否

发票请求流水号

electronicInvoiceNo

数电发票号码

String(20)

否

数电发票号码

fileType

文件类型

String

是

文件类型，对应请求报文。
PDF、OFD、XML 或 pdf、ofd、
xml

resultCode

结果代码

String(4)

是

获取结果代码。
0000：获取成功。
其他：获取失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

否

结果描述

fileContent

文件内容

String(不定长)

否

文件内容，base64 字符串

报文示例：
{
"taxpayerNum": "XXXXXXXXXXXXXX",
"invoiceReqSerialNo": "12345678901234567890",
"fileType": "PDF",
"resultCode": "0000",
"resultMsg": "获取成功",
"fileContent": "XXXXXXXXXXXXXXXXX"
}

2.15.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

票通数电发票接口文档
8003

找不到对应的发票

8022

企业已被禁用

2.16. 获取开票二维码
2.16.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/getInvoiceIssueQ
rcode.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/getInvoiceIssueQrcode
.pt
字符编码

UTF-8

2.16.2.

请求报文

请求参数-业务报文部分：
必
字段

名称

类型

说明
填

taxpayerNum

销售方纳税人识别

String（15-20）

是

销售方纳税人识别号

号
enterpriseName

销售方企业名称

String（4-100）

是

销售方企业名称

shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编号，
没有则不用填写。只允许字母、
数字

qrcodeNo

开票二维码编号

String（10-20）

是

开票二维码编号，二维码唯一标
识。只能为字母、数字

updateFlag

是否更新二维码

String（1）

否

是否更新二维码。
0：否；
1：是。默认 0 否。
如果开票二维码编号一致，且二
维码未开票，此字段传 1 将修改
开票二维码的信息。

tradeNo

订单号

String（50）

是

订单号

transactionId

微信交易单号

String（28-50）

否

微信支付交易单号，线下配置后
可以在微信支付--账单页面显示

票通数电发票接口文档
“开发票”入口

tradeTime

交易时间

String(19)

是

业 务 实 际 交 易 时 间 (yyyy-MM-dd
HH:mm:ss)

invoiceAmount

发票金额(含税)

String（16）

是

小数点后 2 位，以元为单位精确
到分，此金额需等于开票项目列
表（见下）中开票项目金额之和

sellerAddress

销货方地址

String(1-100)

否

票面信息，不能包含<>字符。如
果不填写，则取集团版设置的门
店地址，如没有设置则取集团版
设置的企业地址，如没有设置则
取平台企业注册地址。
注：销方地址电话之和不能超 100
字节

sellerTel

销货方电话

String(20)

否

票面信息，只能是数字、中英文
括号、中英文横杠。如果不填写，
则取集团版设置的门店电话，如
没有设置则取集团版设置的企业
电话，如没有设置则取平台设置
的企业联系电话，如果企业联系
电话没设置，取值企业注册时的
联系电话。
注：销方地址电话之和不能超 100
字节

sellerBankName

销货方开户行

String(1-100)

否

票面信息。如果不填写，则取集
团版设置的门店开户行，如没有
设置则取集团版设置的企业开户
行，如没有设置则取平台设置的

票通数电发票接口文档
企业开户行。
注：销方银行账户之和不能超 100
字节
sellerBankAccount

销货方银行账号

String(1-50)

否

票面信息。如果不填写，则取集
团版设置的门店银行账号，如没
有设置则取集团版设置的企业银
行账号，如没有设置则取平台设
置的默认的企业银行账号。
注：销方银行账户之和不能超 100
字节

account

开票人税局账号

String(50)

否

电子税局登录账号（手机号或身
份证号），必须是通过 2.3 接口
进行用户登记的账号。如果不填，
随机取已在票通平台登记的账
号。

casherName

收款人名称

String(1-16)

否

票面信息。如果不填写，则取集
团版设置的门店收款人，如没有
设置则取集团版设置的企业收款
人，如没有设置则取平台设置的
默认的收款人。长度校验规则为
GBK 字节长度。若需要显示到备
注，需要在企业版开票设置进行
设置

reviewerName

复核人名称

String(1-16)

否

票面信息。如果不填写，则取集
团版设置的门店复核人，如没有
设置则取集团版设置的企业复核
人，如没有设置则取平台设置的
默认的复核人。长度校验规则为
GBK 字节长度。若需要显示到备
注，需要在企业版开票设置进行
设置

allowInvoiceCount

允许开票张数

int

否

一个二维码允许开票张数，默认
为1张

mobileRequiredFlag

手机号是否必填

Boolean

否

该字段控制扫码开票页面上收票
人手机号是否必填。
true：必填；
false：非必填；
默认非必填。

smsFlag

是否发送短信

Boolean

否

是否发送短信，默认不发送。对
开通发送短信功能的企业有效。
true:发送短信，
false:不发送短信

emailRequiredFlag

邮箱是否必填

Boolean

否

该字段控制扫码开票页面上收票
人邮箱是否必填。

票通数电发票接口文档
true：必填；
false：非必填；
默认非必填。
emailSendFlag

是否发送邮件

Boolean

否

是否发送邮件，默认发送。
true：发送邮件
false：不发送邮件

expireTime

过期时间

String(19)

否

时间(yyyy-MM-dd HH:mm:ss)，如
果不传的话默认失效时间为 30 天

specialInvoiceKind

特殊票种

String(0-240)

否

特殊票种。
08：成品油
06：不动产租赁服务

invoiceRemark

发票备注

String(0-200)

否

发票备注，扫码开票时显示到发
票备注里面，校验规则字符长度

email

邮箱

String(4-50)

否

收取开票二维码的邮箱地址

buyerName

购买方名称

String(1-100)

否

预设抬头购买方名称。不能包含
<>字符。如果预设抬头，购买方
名称必填。

buyerTaxpayerNum

购买方税号

String(6-20)

invoiceTitleType

发票抬头类型

String(1)

否

预设抬头购买方税号
预设发票抬头类型。0：企业；1：
个人。不传值会根据税号判断，
若传税号默认为企业。

buyerAddress

购买方地址

String(1-100)

否

预设抬头购买方地址，不能包含
<>字符。buyerAddress、buyerTel
两个字段总长度不超 100 位 GBK
字节。

buyerTel

购买方电话

String(20)

否

预设抬头购买方电话，只能是数
字、中英文括号、中英文横杠。
buyerAddress、buyerTel 两个字
段总长度不超 100 位 GBK 字节。

buyerBankName

购买方开户行

String(1-100)

否

预设抬头购买方开户行，不能包
含<>字符。buyerBankName、
buyerBankAccount 两个字段总长
度不超 100 位 GBK 字节。

buyerBankAccount

购买方银行账号

String(1-50)

否

预设抬头购买方开户行银行账
号，不能包含<>字符。
buyerBankName、
buyerBankAccount 两个字段总长
度不超 100 位 GBK 字节。

takerTel

收票人手机号

String(11)

否

预设收票人手机号

takerEmail

收票人邮箱

String(4-50)

否

预设收票人邮箱

allowEditFlag

预设抬头是否允许

Boolean

否

控制扫码开票时预设抬头是否可

编辑

以编辑，不控制收票人手机号、
收票人邮箱是否编辑。
true：可以编辑

票通数电发票接口文档
false：不可编辑
可选发票种类及分机列表信息（invoiceIssueOptions）
invoiceIssueOptions

可选种类及分机信

数组

是

String（2）

是

息
invoiceType

可选开票发票种类

可选开票发票种类
81：数电票（增值税专用发票）
82：数电票（普通发票)

开票项目列表信息（itemList）
itemList

开票项目列表

数组

是

itemName

开票项目名称

String（100）

是

开票项目名称

specificationModel

规格型号

String(1-40)

否

票面信息，无默认，长度校验规
则为 GBK 字节长度

meteringUnit

单位

String(1-20)

否

票面信息，无默认，长度校验规
则为 GBK 字节长度。成品油单位
传“升”

税收分类编码

String（3-19）

是

税收分类编码

taxRateValue

税率

String（5）

是

0.13，小数点后 2 位

zeroTaxFlag

零税率标识

String(1)

否

零税率标识，税率为 0 时必填。

taxClassificationCo
de

如税率为 0 时，同时填写了零税
率标识及增值税特殊管理，以零
税率标识为准。
空：非零税率，1：免税，2：不
征税，3.普通零税率
vatSpecialManage

增值税特殊管理

String(0-100)

否

增值税特殊管理，填 简易征收、
按 5%简易征收

unitPrice

单价(含税)

String（16）

否

等

小数点后 8 位，如果不传值，将
根据项目金额、数量计算该值。
为 0 时票面单价显示为空。

quantity

数量

String（10）

否

小数点后 8 位，如果不传值，将
根据项目金额、单价计算该值。
如果单价也没传值，数量将默认
为 1。为 0 时票面数量显示为空。
单价数量必须同时为 0 或同时不
为 0。

invoiceItemAmount

开票项目金额

String（16）

是

小数点后 2 位，以元为单位精确
到分（=单价*数量）

invoiceItemDisAmount

开票项目折扣金额

String（16）

否

小数点后 2 位，只能为负数。开
票金额需减去折扣金额

特定业务--不动产经营租赁服务列表（realEstateRentalList），specialInvoiceKind 为 06 时必填
realEstateRentalList

不动产经营租赁服

数组或集合

否

务列表

特定业务不动产经营租赁服务必
填。行数要与开票项目列表信息
（itemList）行数保持一致

region

省市（县）区

String（4-50）

是

不动产所在省市（县）区。

票通数电发票接口文档
例如：上海市黄浦区/四川省绵阳
市涪城区/广东省河源市和平县
detailedAddress

详细地址

String（1-100

是

字符）
areaUnit

面积单位

String

不动产详细地址。例如：东江北
路 68 号

是

面积单位。
米（铁路线与管道等使用）
平方千米
平方米
公顷
亩
h㎡
k㎡
㎡

crossCitySign

跨地(市)标志

String(1)

是

跨地(市)标志。
0：否；
1：是

leaseTerm

租赁期起止

String(21)

是

租赁期起止。例如
2022-12-01 2022-12-12
注:
税收分类编码为
3040502020200000000（车辆停放
服务）时格式应为 yyyy-MM-dd
HH:mm yyyy-MM-dd HH:mm
其他税收分类编码格式应为
yyyy-MM-dd yyyy-MM-dd

titleNo
carPlateNum

产权证书/不动产

String（0-40

权号

字符）

车牌号

String（0-20

否

产权证书/不动产权号。
若没有证书填写“无”。

否

字符）

车牌号。注:
税收分类编码为
3040502020200000000（车辆停放
服务）时可以填值，其他情况不
能填值

报文示例：
{
"taxpayerNum": "11010120181206000",
"enterpriseName": "ceshi",
"shopNum": "123456",
"qrcodeNo": "DEMO202093013520912",
"tradeNo": "2022093013520912",
"tradeTime": "2022-09-30 13:52:09",
"invoiceAmount": "20",
"sellerAddress": "北京市海淀区万泉庄路 15 号 5 层 5",
"sellerTel": "010-123456789",

票通数电发票接口文档
"sellerBankName": "中国建设银行股份有限公司北京万泉支行",
"sellerBankAccount": "8888888888",
"account": "185XXXXXXXX",
"allowInvoiceCount": "1",
"mobileRequiredFlag": false,
"smsFlag": false,
"emailRequiredFlag": true,
"emailSendFlag": true,
"expireTime": "2022-10-30 15:44:09",
"invoiceRemark": "备注",
"invoiceIssueOptions": [{
"invoiceType": "81"
}, {
"invoiceType": "82"
}],
"itemList": [{
"itemName": "小麦",
"specificationModel": "规格型号",
"meteringUnit": "kg",
"taxClassificationCode": "1030102010100000000",
"taxRateValue": "0.13",
"unitPrice": "10",
"quantity": "1",
"invoiceItemAmount": "10"
}, {
"itemName": "小麦",
"specificationModel": "规格型号",
"meteringUnit": "kg",
"taxClassificationCode": "1030102010100000000",
"taxRateValue": "0.13",
"unitPrice": "10",
"quantity": "1",
"invoiceItemAmount": "10"
}]
}

2.16.3.

响应报文

响应参数-业务报文部分：
字段
qrcodeNo

名称

类型

必填

说明

开票二维码编

String（10-20）

是

开票二维码编号，二维码唯

号

一标识

票通数电发票接口文档
tradeNo

交易单号

String（50）

是

交易单号

tradeTime

交易时间

String(19)

是

业务实际交易时间
(yyyy-MM-dd HH:mm:ss)

invoiceQrCode

二维码

String

是

不定长，Base64 字符串

invoiceUrl

开票 URL

String

是

不定长，Base64 字符串

extractCode

提取码

String（19）

是

提取码，需要在“发票夹”
公众号提取码开票处使用

报文示例：
{
"qrcodeNo": "DEMO202093013520912",
"tradeNo": "XXXXXXXX",
"tradeTime": "2019-12-13 13:52:09",
"invoiceQrCode": "XXXXXXXX",
"invoiceUrl": "XXXXXXXX",
"extractCode": "XXXXXXXX"
}

2.16.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

8016

单价数量金额不匹配

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

7001

项目数量不能小于可开票数量

7002

项目的金额之和不等于发票金额

8037

无该票种授权

8038

二维码编号已经存在，请更换二维码编号

8039

集团版校验不通过

8055

该开票二维码已经开票，不能修改该开票二维码信息

8056

没有权限修改该开票二维码信息

2.17. 批量作废开票二维码
2.17.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

票通数电发票接口文档
http://fpkj.testnw.vpiaotong.cn/tp/openapi/batchDelInvoiceQr
code.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/batchDelInvoiceQrcode.
pt
字符编码

UTF-8

2.17.2. 请求报文
请求参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String（15-20）

是

销售方纳税人识别号

qrcodeNo

二维码编号

String（10-20）

是

二维码编号，唯一标识

invoiceAmount

发票金额（含税）

String（16）

是

小数点后 2 位

报文示例：
[
{
"taxpayerNum": "11010120181206000",
"qrcodeNo": "DEMO202093013520912",
"invoiceAmount": "20"
},
{
"taxpayerNum": "11010120181206000",
"qrcodeNo": "DEMO202093013520913",
"invoiceAmount": "20"
}
]

2.17.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String（15-20）

是

销售方纳税人识别号

识别号
qrcodeNo

二维码编号

String（10-20）

是

二维码编号，唯一标识

invoiceAmount

发票金额

String（16）

是

发票金额

isDelete

是否删除

Boolean

是

true：作废成功
false：作废失败

deleteMsg

删除描述

String

是

删除描述

票通数电发票接口文档

报文示例：
[{
"taxpayerNum": "11010120181206000",
"qrcodeNo": "DEMO202093013520912",
"invoiceAmount": "20",
"isDelete": "true",
"deleteMsg": "作废二维码成功"
}, {
"taxpayerNum": "11010120181206000",
"qrcodeNo": "DEMO202093013520913",
"invoiceAmount": "20",
"isDelete": "true",
"deleteMsg": "作废二维码成功"
}]

2.17.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

2.18. 查询二维码开票信息
2.18.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/op
enapi/queryQrcodeInvoiceInfo.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi
/queryQrcodeInvoiceInfo.pt

字符编码

UTF-8

2.18.2.

请求报文

请求参数-业务报文部分：

备注
POST 方式提交

票通数电发票接口文档

字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

别号
qrcodeNo

二维码编号

String（10-20）

是

二维码编号，唯一标识

invoiceAmount

发票金额(含税)

String（16）

是

小数点后 2 位

名称

类型

必填

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

报文示例：
{
"taxpayerNum": "9120931023801231",
"qrcodeNo": "DEMO2019121313520912",
"invoiceAmount": "200"
}

2.18.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

说明

别号
qrcodeNo

二维码编号

String（10-20）

是

二维码编号，唯一标识

tradeNo

交易单号

String（50）

是

第三方平台生成的唯一标识
交易单号

invoiceUrl

开票 URL

String（不定

是

不定长，Base64 字符串

长）
发票信息
itemList

发票信息

数组

否

发票信息，为空代表未开票

invoiceReqSerialNo

发票请求流水号

String(20)

否

发票请求流水号，可以根据
该值查询详细的发票信息。
此值为空时为未开票

invoiceItemAmount

发票金额

String(16)

是

小数点后两位，此发票对应
的金额

报文示例：
{
"taxpayerNum": "11010120181206000",
"qrcodeNo": "DEMO2019121313520912",
"tradeNo": "2019121313520912",
"invoiceUrl": "xxxxx",
"itemList": [{
"invoiceReqSerialNo": "P1075733838694584320",
"invoiceItemAmount": "20.00"
}]

票通数电发票接口文档
}

2.18.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

0000

成功

9999

系统内部异常

8004

找不到对应的开票企业信息，请检查税号

5001

找不到对应的二维码

8995

数据校验不通过(对应参考详细信息)

2.19. 重新发送邮件或短信
2.19.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/resendEmailOrSMS.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/resendEmailOrSMS.pt
字符编码

UTF-8

2.19.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(20)

否

发票请求流水号

别号
invoiceReqSerialNo

发票请求流水号

注：发票请求流水号和发票代
码号码不能同时为空，如果都
填写以发票请求流水号为准
invoiceCode

发票代码

String(12)

否

发票代码

invoiceNo

发票号码

String(8)

否

发票号码

takerEmail

收票人邮箱

String(4-50)

否

收票人邮箱，不传的话默认使
用开具时传的收票人邮箱

takerTel

收票人手机号

String(11）

否

收票人手机号，无默认，需要

票通数电发票接口文档
校验企业是否开通发送短信。

报文示例：
{
"taxpayerNum": "110105201606160003",
"invoiceReqSerialNo": "TEST2019031919381085",
"invoiceCode": "150003529999",
"invoiceNo": "62761753",
"takerEmail": "8968xxx@qq.com",
"takerTel": "1851100****"
}

2.19.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识别

String(15-20)

是

销售方纳税人识别号

号
invoiceReqSerialNo

发票请求流水号

String(20)

否

发票请求流水号

invoiceCode

发票代码

String(12)

否

发票代码

invoiceNo

发票号码

String(8)

否

发票号码

takerEmail

收票人邮箱

String(4-50)

否

收票人邮箱

takerTel

收票人手机号

String(11）

否

收票人手机号

sendEmailResultCod

邮件发送状态码

String（4）

否

邮件发送状态码

e

0000：发送成功
9999：发送失败

sendEmailResultMsg

邮件发送状态描述

不定长

否

邮件发送状态描述

sendSMSResultCode

短信发送状态码

String（4）

否

短信发送状态码
0000：发送成功
9999：发送失败

sendSMSResultMsg

短信发送状态描述

不定长

报文示例：
{
"taxpayerNum": "110105201606160003",
"invoiceReqSerialNo": "TEST2019031919381085",
"invoiceNo": "",
"invoiceCode": "",
"takerEmail": "89682xxxx@qq.com",
"sendEmailResultCode": "0000",
"sendEmailResultMsg": "邮件已发送，请注意查收！",

否

短信发送状态描述

票通数电发票接口文档
"takerTel": "1851178****",
"sendSMSResultCode": "9999",
"sendSMSResultMsg": "该企业没开通发送短信！"
}

2.19.4.

业务错误码

从业务中抽取代码并进行定义：

错误码（code）

含义说明（msg）

0000

请求成功

9999

系统内部异常

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8003

找不到对应的发票

8002

企业被禁用

8031

非电子发票蓝票不可发送邮件和短信

8032

未开票成功的发票不可发送邮件和短信

2.20. 开票统计及授信额度查询
2.20.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryAllEleBlueInv
Statistics.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryAllEleBlueInvStati
stics.pt
字符编码

UTF-8

2.20.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人

String(15-20)

是

销售方纳税人识别号,长度校

票通数电发票接口文档
识别号

验规则为字符长度，只能包括
大写英文字母或数字

account

电子税局登录

String(50)

否

电子税局登录账号

String(1)

否

是否查询红票信息。

账号
queryRedInv

是否查询红票
信息

0：否；不传值默认：0
1：是。

报文示例：
{
"taxpayerNum": "XXXXXXXX"
}

2.20.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

resultCode

结果代码

String(4)

是

获取结果代码。
0000：查询成功。
其他：查询失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

否

结果描述

blueInvCount

当月蓝字发票开具数量

String(1-20)

否

当月蓝字发票开具数量，成功
时返回

blueInvAmount

当月蓝字发票累计金额

String(1-20)

否

当月蓝字发票累计金额

blueInvTaxAmount

当月蓝字发票累计税额

String(1-20)

否

当月蓝字发票累计税额

redInvCount

当月红字发票开具数量

String(1-20)

否

当月红字发票开具数量。
queryRedInv 为 1 时才会返回
红字发票的数量、金额和税额

redInvAmount

当月红字发票累计金额

String(1-20)

否

当月红字发票累计金额

redInvTaxAmount

当月红字发票累计税额

String(1-20)

否

当月红字发票累计税额

usableCreditLine

可用授信额度

String(1-20)

否

可用授信额度

usedCreditLine

已使用授信额度

String(1-20)

否

已使用授信额度

creditLine

总授信额度

String(1-20)

否

总授信额度

报文示例：
{
"taxpayerNum": "XXXXXXXX",
"resultCode": "0000",
"resultMsg": "查询成功",
"blueInvCount": "208",

票通数电发票接口文档
"blueInvAmount": "3854580.37",
"blueInvTaxAmount": "175827.28",
"redInvCount": "15",
"redInvAmount": "1356.66",
"redInvTaxAmount": "756.58",
"usableCreditLine": "1325368.39",
"usedCreditLine": "3674631.61",
"creditLine": "5000000.00"
}

2.20.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

2.21. 发票领用及开票数据统计查询
通过该接口查询发票领用及开票数据统计，只能查询到当天之前的数据统计，此接口比较耗时，请调长超
时时间。

2.21.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryInvStatistics
.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryInvStatistics.pt
字符编码

UTF-8

2.21.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号,长度校

票通数电发票接口文档
别号

验规则为字符长度，只能包括
大写英文字母或数字

account

电子税局登录账

String(50)

否

电子税局登录账号

String（6）

是

起始月份。yyyyMM。所属期必

号
invoiceMonthStart

起始月份

须按照年/月/季度的范围规则
invoiceMonthEnd

终止月份

String（6）

是

终止月份。yyyyMM。所属期必
须按照年/月/季度的范围规
则。例如起始月份：202212 终
止月份：202212；或起始月份：
202210 终止月份：202212；或
起始月份：202201 终止月份：
202212；

报文示例：
{
"taxpayerNum": "XXXXXXXXXXXXXX",
"invoiceMonthStart": "202307",
"invoiceMonthEnd": "202307"
}

2.21.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号,长度校

别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceMonthStart

起始月份

String（6）

是

起始月份。yyyyMM。

invoiceMonthEnd

终止月份

String（6）

是

终止月份。yyyyMM。

resultCode

结果代码

String(4)

是

获取结果代码。
0000：查询成功。
其他：查询失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

否

结果描述

invReceiptStatisticList 按发票种类统计(领票)
invoiceKindCode

发票种类代码

String（2）

是

发票种类代码

invoiceKindName

发票种类名称

String（10-20）

是

发票种类名称

beginningInventory

期初库存份数

String

否

期初库存份数

endingInventory

期末库存份数

String

否

期末库存份数

currentPeriodBuy

本期新购份数

String

否

本期新购份数

currentPeriodReturn

本期退回份数

String

否

本期退回份数

票通数电发票接口文档
blankDestroyCount

空白废票份数

String

否

空白废票份数

statisticalTime

统计时间

String

否

统计时间。
格式 yyyy-MM-dd HH:mm:ss

invIssueStatisticList 按发票种类统计(开票)
invoiceKindCode

发票种类代码

String（2）

是

发票种类代码

invoiceKindName

发票种类名称

String（10-20）

是

发票种类名称

positiveInvoiceCount

正数发票份数

String

是

正数发票份数

positiveCancelledCount

正数废票份数

String

是

正数废票份数

negativeInvoiceCount

负数发票份数

String

是

负数发票份数

negativeCancelledCount

负数废票份数

String

是

负数废票份数

statisticalTime

统计时间

String

否

统计时间。
格式 yyyy-MM-dd HH:mm:ss

taxRateStatisticList 按税率/征收率统计
invoiceKindCode

发票种类代码

String（2）

否

发票种类代码，合计行为空

invoiceKindName

发票种类名称

String（10-20）

是

发票种类名称

taxRate

税率/征收率

String

否

税率/征收率,合计行为空,
格式：0.01、0.13 等

positiveInvoiceAmou

开具蓝字发票金

nt

额

positiveInvoiceTaxA

开具蓝字发票税

mount

额

positiveCancelledIn

作废蓝字发票金

voiceAmount

额

positiveCancelledIn

作废蓝字发票税

voiceTaxAmount

额

negativeInvoiceAmou

开具红字发票金

nt

额

negativeInvoiceTaxA

开具红字发票税

mount

额

negativeCancelledIn

作废红字发票金

voiceAmount

额

negativeCancelledIn

作废红字发票税

voiceTaxAmount

额

actualInvoiceAmount

实际开具发票金

String

是

开具蓝字发票金额

String

是

开具蓝字发票税额

String

是

作废蓝字发票金额

String

是

作废蓝字发票税额

String

是

开具红字发票金额

String

是

开具红字发票税额

String

是

作废红字发票金额

String

是

作废红字发票税额

String

是

实际开具发票金额

String

是

实际开具发票税额

String

否

统计时间。

额
actualInvoiceTaxAmo

实际开具发票税

unt

额

statisticalTime

统计时间

格式 yyyy-MM-dd HH:mm:ss

报文示例：
{
"taxpayerNum": "XXXXXXXXXXXXXX",

票通数电发票接口文档
"resultCode": "0000",
"resultMsg": "查询成功",
"invoiceMonthStart": "202307",
"invoiceMonthEnd": "202307",
"invReceiptStatisticList": [{
"invoiceKindCode": "82",
"invoiceKindName": "电子发票（普通发票）",
"currentPeriodBuy": "0",
"currentPeriodReturn": "0",
"blankDestroyCount": "0",
"statisticalTime": "2023-07-10 03:00:19"
}, {
"invoiceKindCode": "81",
"invoiceKindName": "电子发票（增值税专用发票）",
"currentPeriodBuy": "0",
"currentPeriodReturn": "0",
"blankDestroyCount": "0",
"statisticalTime": "2023-07-10 03:00:19"
}],
"invIssueStatisticList": [{
"invoiceKindCode": "82",
"invoiceKindName": "电子发票（普通发票）",
"positiveInvoiceCount": "9",
"positiveCancelledCount": "0",
"negativeInvoiceCount": "5",
"negativeCancelledCount": "0",
"statisticalTime": "2023-07-10 03:00:19"
}, {
"invoiceKindCode": "81",
"invoiceKindName": "电子发票（增值税专用发票）",
"positiveInvoiceCount": "2",
"positiveCancelledCount": "0",
"negativeInvoiceCount": "1",
"negativeCancelledCount": "0",
"statisticalTime": "2023-07-10 03:00:19"
}],
"taxRateStatisticList ": [{
"invoiceKindCode": "81",
"invoiceKindName": "电子发票（增值税专用发票）",
"taxRate": "0.01",
"positiveInvoiceAmount": "4356.44",
"positiveInvoiceTaxAmount": "43.56",
"positiveCancelledInvoiceAmount": "0.00",
"positiveCancelledInvoiceTaxAmount": "0.00",

票通数电发票接口文档
"negativeInvoiceAmount": "-2178.22",
"negativeInvoiceTaxAmount": "-21.78",
"negativeCancelledInvoiceAmount": "0.00",
"negativeCancelledInvoiceTaxAmount": "0.00",
"actualInvoiceAmount": "2178.22",
"actualInvoiceTaxAmount": "21.78",
"statisticalTime": "2023-07-10 03:12:07"
}, {
"invoiceKindCode": "82",
"invoiceKindName": "电子发票（普通发票）",
"taxRate": "0.01",
"positiveInvoiceAmount": "4365.35",
"positiveInvoiceTaxAmount": "43.65",
"positiveCancelledInvoiceAmount": "0.00",
"positiveCancelledInvoiceTaxAmount": "0.00",
"negativeInvoiceAmount": "-4.95",
"negativeInvoiceTaxAmount": "-0.05",
"negativeCancelledInvoiceAmount": "0.00",
"negativeCancelledInvoiceTaxAmount": "0.00",
"actualInvoiceAmount": "4360.40",
"actualInvoiceTaxAmount": "43.60",
"statisticalTime": "2023-07-10 03:12:01"
}, {
"invoiceKindCode": "",
"invoiceKindName": "合计",
"taxRate": "",
"positiveInvoiceAmount": "8721.79",
"positiveInvoiceTaxAmount": "87.21",
"positiveCancelledInvoiceAmount": "0.00",
"positiveCancelledInvoiceTaxAmount": "0.00",
"negativeInvoiceAmount": "-2183.17",
"negativeInvoiceTaxAmount": "-21.83",
"negativeCancelledInvoiceAmount": "0.00",
"negativeCancelledInvoiceTaxAmount": "0.00",
"actualInvoiceAmount": "6538.62",
"actualInvoiceTaxAmount": "65.38",
"statisticalTime": ""
}]
}

2.21.4.

业务错误码

从业务中抽取代码并进行定义：

票通数电发票接口文档

错误码（code）

含义说明（msg）

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

2.22. 发票数据获取
通过该接口获取发票信息，此接口比较耗时，请调长超时时间。

2.22.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/acquireInvInfo.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/acquireInvInfo.pt
字符编码

UTF-8

2.22.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

纳税人识别号

String(15-20)

是

纳税人识别号,长度校验规则
为字符长度，只能包括大写英
文字母或数字

queryType

查询类型

String(1)

是

查询类型。
1：开具发票；
2：取得发票

invSource

发票来源

String(1)

否

发票来源。
0:全部；
1:增值税发票管理系统；
2:电子发票服务平台

invoiceKind

发票种类代码

String(2)

否

发票种类代码。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）
10：增值税电子普通发票
08：增值税电子专用发票
04：增值税普通发票
01：增值税专用发票

票通数电发票接口文档
invoiceState

发票状态

String(2)

否

发票状态。
"":全部；
"01": "正常"；
"02": "已作废"；
"03":"已红冲-全额"；
"04":"已红冲-部分"

electronicInvoiceNo

数电号码

String(20)

否

数电号码，如果获取数电发票
信息，该值必填

invoiceCode

发票代码

String(10 或 12)

否

发票代码，获取税控系统发票
开具的发票必填；数电号码和
发票代码号码必传一个

invoiceNo

发票号码

String(8)

否

发票号码，获取税控系统发票
开具的发票必填

invoiceDate

开票日期

String(8)

是

开票日期。格式 yyyyMMdd

reciprocalTaxpayerNum

对方纳税人税号

String(15-20)

否

对方纳税人税号

reciprocalTaxpayerName

对方纳税人名称

String(4-100)

否

对方纳税人名称

account

电子税局登录账

String(50)

否

电子税局登录账号

号

报文示例：
{
"taxpayerNum": "XXXXXXXXXXXXXX",
"queryType": "1",
"invSource": "0",
"invoiceState": "0",
"electronicInvoiceNo": "12345678901234567890",
"invoiceDate": "20221123"
}

2.22.3.

响应报文

响应参数-业务报文部分：
字段
resultCode

名称
结果代码

类型

必填

说明

String(4)

是

获取结果代码。
0000：获取成功。
其他：获取失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

否

结果描述

invoiceList 发票列表，兼容后期做批量查询
buyerName

购买方名称

String(4-100)

是

购买方名称

buyerTaxpayerNum

购买方纳税人识别号

String(15-20)

否

购买方纳税人识别号

buyerAddress

购买方地址电话

String(1-100)

否

购买方地址电话

票通数电发票接口文档
buyerBankName

购买方开户行及账号

String(1-100)

否

购买方开户行及账号

sellerTaxpayerNum

销售方纳税人识别号

String（15-20）

是

销售方纳税人识别号

sellerName

销售方名称

String(4-100)

是

销售方名称

sellerAddress

销售方地址电话

String(1-100)

否

销售方地址电话

sellerBankName

销售方开户行及账号

String(1-100)

否

销售方开户行及账号

invoiceKind

发票种类代码

String(2)

是

发票种类代码。
81：电子发票（增值税专用
发票）
82：电子发票（普通发票）
10：增值税电子普通发票
08：增值税电子专用发票
04：增值税普通发票
01：增值税专用发票

invoiceDate

开票日期

String(19)

是

开票日期。
格式 yyyy-MM-dd HH:mm:ss

invoiceCode

发票代码

String（12）

否

发票代码

invoiceNo

发票号码

String（8）

否

发票号码

electronicInvoiceNo

数电发票号码

String(20)

否

数电发票号码

noTaxAmount

不含税金额

String（16）

是

不含税金额，保留小数点后 2
位

taxAmount

税额

String（16）

是

税额，保留小数点后 2 位

amountWithTax

价税合计

String（16）

是

价税合计，保留小数点后 2
位

invalidFlag

作废标志

String（20）

是

作废标志。
NOT_DESTROY：未作废；
ALREADY_DESTROY:已作废；
DESTROYING:作废中；
DESTROY_FAIL:作废失败。

redFlag

冲红标志

String（20）

是

冲红标志。
NOT_RED：未冲红；
ALREADY_RED:已冲红；
REDING：冲红中；
RED_FAIL: 冲红失败；
PART_RED：部分冲红。

drawerName

开票人名称

String(1-20)

是

开票人名称

casherName

收款人

String(1-16)

否

收款人

reviewerName

复核人

String(1-16)

否

复核人

remark

备注

String(0-240)

否

备注，数电发票为 200 字符，
税控发票 GBK 字长度 240 字
节

项目明细信息（itemList，数组）
goodsName

货物名称

String(1-100)

是

货物名称

taxClassificationCode

税收分类编码

String(1-50)

是

税收分类编码

specificationModel

规格型号

String(1-20)

否

规格型号

票通数电发票接口文档
meteringUnit

单位

String(1-16)

否

单位

quantity

数量

String(1-16)

否

保留小数点后 8 位

unitPrice

单价

String(1-16)

否

保留小数点后 8 位

taxIncludeFlag

含税标识

String(1)

是

含税标识。
0：不含税；
1：含税。

itemAmount

项目金额

String(10)

是

保留小数点后 2 位

taxRate

税率

String(4)

是

保留小数点后 2 位，例如 0.13

taxRateAmount

税额

String(10)

是

保留小数点后 2 位

deduction

扣除额

String(10)

否

保留小数点后 2 位。差额发
票有值。

preferentialPolicyF

优惠政策标识

String(1-50)

否

优惠政策标识。
0：不使用；

lag

1：使用
zeroTaxFlag

零税率标识

String(1)

否

空：非零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管理

itemProperty

发票行性质

String(0-100)

否

增值税特殊管理

String(1)

是

0：正常行
1：折扣行
2：被折扣行

itemNo

项目序号

String(11)

报文示例：
{
"resultCode": "0000",
"resultMsg": "查询成功",
"invoiceList": [{
"buyerName": "张玲玲",
"buyerTaxpayerNum": "",
"buyerAddress": "",
"buyerBankName": "",
"sellerTaxpayerNum": "XXXXXXXXXXXXXXXXX",
"sellerName": "XXXXXXXX",
"sellerAddress": "XXXXXXXXX 1XXXXXXXX",
"sellerBankName": "XXXXXXXXXX XXXXXXXXX",
"invoiceKind": "82",
"invoiceDate": "2022-11-15 17:13:52",
"electronicInvoiceNo": "12345678901234567890",
"noTaxAmount": "4.6",
"taxAmount": "0",
"amountWithTax": "4.6",
"invalidFlag": "NOT_DESTROY",

是

用来表示项目的先后顺序

票通数电发票接口文档
"redFlag": "ALREADY_RED",
"casherName": "",
"reviewerName": "",
"drawerName": "开票人",
"remark": "9 月水费",
"itemList": [{
"goodsName": "*水冰雪*自来水",
"taxClassificationCode": "1100301010000000000",
"specificationModel": "",
"quantity": "2.0",
"taxIncludeFlag": "0",
"unitPrice": "2.30000000",
"itemAmount": "4.6",
"taxRate": "0",
"taxRateAmount": "0",
"preferentialPolicyFlag": "1",
"zeroTaxFlag": "1",
"vatSpecialManage": "免税",
"itemProperty": "0",
"itemNo": "1"
}]
}]
}

2.22.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

2.23. 开具不动产租赁蓝字数电发票
2.23.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

票通数电发票接口文档
http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt
字符编码

2.23.2.

UTF-8

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长
度，不能包含<>字符

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字

naturalPersonFlag

是否开具给自

String（1）

否

然人

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人
识别号”)，该张发票将在受票
方自然人个人票夹中展示。

buyerAddress

购买方地址

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度，
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerTel

购买方电话

String(1-20)

否

票面信息，无默认，长度校验
规则为字符长度，只能是数字、
中英文括号、中英文横杠。

票通数电发票接口文档
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。
buyerBankName

购买方开户行

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

buyerBankAccount

购买方银行账

String(1-50)

否

号

票面信息，无默认，长度校验
规则为字符长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的开户行及
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

sellerBankAccount

销货方银行账
号

String(1-50)

否

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银
行账号信息（如有多条取默认

票通数电发票接口文档
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。
showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示
注：最终版式文件销方银行账
户取税局维护的开户行及账号

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示
注：最终版式文件上的销方地
址电话取税局维护的地址电话

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该复核人）；如果填入

票通数电发票接口文档
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置
takerName

收票人名称

String(1-10)

否

客户信息，长度校验规则为字
符长度

takerTel

收票人手机号

String(11)

否

客户信息，长度校验规则为字
符长度

takerEmail

收票人邮箱

String(4-50)

否

客户信息，填写后，票通会给
客户发送发票邮件，不填写则
不发送，长度校验规则为字符
长度

specialInvoiceKind

特殊票种

String(2)

否

特殊票种，默认为空。
06：不动产经营租赁服务。
如果不传，会根据税收分类编
码自动适配特殊票种。

reducedTaxType

减按征税类型

String（2）

否

减按征税类型。
05：住房租赁

remark

备注

String(0-200)

否

备注，校验规则字符长度

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符
长度。如果没有传值，票通平
台默认使用发票请求流水号
invoiceReqSerialNo 赋值

shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）,行数要与不动产租赁特定信息的 realEstateRentalList 行数保持一致
itemList

开票项目列表

goodsName

货物名称

数组或集合

是

只能一行

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCod

对应税收分类

e

编码

specificationModel

对应规格型号

String(1-50)

是

统一编码表的信息，长度校验
规则为字符长度

String(1-40)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

meteringUnit

单位

String(1-20)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

quantity

数量

16 位(精确到 8

是

位小数)
includeTaxFlag

含税标示

String(1)

票面信息，支持到小数点前 8
位。

否

0：不含税，1：含税，默

票通数电发票接口文档

认为 0 不含税
unitPrice

单价

16 位(精确到 8

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

discountAmount

折扣金额

10 位(精确到 2

否

该商品行的折扣金额，传负数

否

票面信息，使用折扣金额进行

位小数)
discountTaxRateAmoun

折扣税额

t
preferentialPolicyFl

10 位(精确到 2
位小数)

优惠政策标识

String(1-50)

计算
否

ag

空：不使用，1:使用
零税率标识为 0、1、2 时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税、简易征收等

特定业务--不动产经营租赁服务列表（realEstateRentalList），不动产经营租赁服务相关的税收分类
编码，必填
realEstateRentalList

不动产经营租

数组或集合

是

赁服务列表

特定业务不动产经营租赁服
务。行数要与开票项目列表信
息（itemList）行数保持一致

region

省市（县）区

String（4-50）

是

不动产所在省市（县）区。
例如：上海市黄浦区/四川省绵
阳市涪城区/广东省河源市和
平县

detailedAddress

详细地址

String（1-100

是

字符）
areaUnit

面积单位

String

不动产详细地址。例如：东江
北路 68 号

是

面积单位。

票通数电发票接口文档
米（铁路线与管道等使用）
平方千米
平方米
公顷
亩
h㎡
k㎡
㎡
crossCitySign

跨地(市)标志

String(1)

是

跨地(市)标志。
0：否；
1：是

leaseTerm

租赁期起止

String(21 或

是

33)

租赁期起止。
注:
税收分类编码为
3040502020200000000（车辆停
放服务）时格式应为
yyyy-MM-dd HH:mm yyyy-MM-dd
HH:mm
其他税收分类编码格式应为
yyyy-MM-dd yyyy-MM-dd

titleNo
carPlateNum

产权证书/不动

String（0-40 字

产权号

符）

车牌号

String（0-20 字
符）

否

产权证书/不动产权号。
若没有证书填写“无”。

否

车牌号。注:
税收分类编码为
3040502020200000000（车辆停
放服务）时可以填值，其他情
况不能填值

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "82",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": "010 - 1234567 ",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "备注",

票通数电发票接口文档
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"takerName": "XXX",
"takerTel": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"itemList": [{
"goodsName": "停车费",
"taxClassificationCode": "3040502020200000000",
"specificationModel": "",
"meteringUnit": "",
"quantity": "1.00",
"includeTaxFlag": "1",
"unitPrice": "100",
"invoiceAmount": "100.00",
"taxRateValue": "0.09"
}],
"realEstateRentalList": [{
"region": "四川省绵阳市涪城区",
"detailedAddress": "东江北路 68 号",
"areaUnit": "㎡",
"crossCitySign": "0",
"leaseTerm": "2022-12-01 12:10 2022-12-12 15:00",
"titleNo": "无"
}]
}

2.23.3.

响应报文

响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水

类型

必填

说明

String(20)

是

4 位平台简称+16 位随机数

String

否

不定长，Base64 字符串，电子

号
qrCodePath

二维码 url

发票该值必传
qrCode

二维码图片

String

Base64 字符串

否

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",

票通数电发票接口文档
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.23.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.23.5.

适用税收分类编码

税收分类编码

商品和服务名称

商品和服务分类简称

增值税税率

征收率

3040501030000000000

不动产融资租赁服务

融资租赁

9%

5%

3040502020101000000

公共住房租赁

经营租赁

9%

5%

3040502020102000000

个人出租住房

经营租赁

9%

5%

3040502020199000000

其他住房租赁服务

经营租赁

9%

5%

3040502020200000000

车辆停放服务

经营租赁

9%

5%

3040502020400000000

商业营业用房经营租赁服务

经营租赁

9%

5%

3040502029901000000

军队空余房产租赁服务

经营租赁

9%

5%

3040502029902000000

其他情形不动产经营租赁服务

经营租赁

9%

5%

票通数电发票接口文档

2.24. 开具旅客运输服务蓝字数电发票
2.24.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt
字符编码

2.24.2.

UTF-8

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长
度，不能包含<>字符

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字

naturalPersonFlag

是否开具给自
然人

String（1）

否

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人

票通数电发票接口文档
识别号”)，该张发票将在受票
方自然人个人票夹中展示。
buyerAddress

购买方地址

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度，
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerTel

购买方电话

String(1-20)

否

票面信息，无默认，长度校验
规则为字符长度，只能是数字、
中英文括号、中英文横杠。
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerBankName

购买方开户行

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

buyerBankAccount

购买方银行账

String(1-50)

否

号

票面信息，无默认，长度校验
规则为字符长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的开户行及

票通数电发票接口文档
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。
sellerBankAccount

销货方银行账

String(1-50)

否

号

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银
行账号信息（如有多条取默认
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示
注：最终版式文件销方银行账
户取税局维护的开户行及账号

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示
注：最终版式文件上的销方地
址电话取税局维护的地址电话

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，

票通数电发票接口文档
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置
reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该复核人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

takerName

收票人名称

String(1-10)

否

客户信息，长度校验规则为字
符长度

takerTel

收票人手机号

String(11)

否

客户信息，长度校验规则为字
符长度

takerEmail

收票人邮箱

String(4-50)

否

客户信息，填写后，票通会给
客户发送发票邮件，不填写则
不发送，长度校验规则为字符
长度

specialInvoiceKind

特殊票种

String(2)

否

特殊票种，默认为空。
09：旅客运输服务。
如果不传，会根据税收分类编
码自动适配特殊票种。

remark

备注

String(0-200)

否

备注，校验规则字符长度

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符
长度。如果没有传值，票通平
台默认使用发票请求流水号
invoiceReqSerialNo 赋值

shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）,只能一行
itemList

开票项目列表

goodsName

货物名称

数组或集合

是

只能一行

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCo

对应税收分类

String(1-50)

是

统一编码表的信息，长度校验

票通数电发票接口文档
de

编码

规则为字符长度

specificationModel

对应规格型号

String(1-40)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

meteringUnit

单位

String(1-20)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

quantity

数量

16 位(精确到 8

否

位小数)
includeTaxFlag

含税标示

unitPrice

单价

票面信息，支持到小数点前 8
位。

String(1)

否

0：不含税，1：含税，默
认为 0 不含税

16 位(精确到 8

否

票面信息，支持到小数点前 8

位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

discountAmount

折扣金额

10 位(精确到 2

否

该商品行的折扣金额，传负数

否

票面信息，使用折扣金额进行

位小数)
discountTaxRateAmou

折扣税额

nt
preferentialPolicyF

10 位(精确到 2
位小数)

优惠政策标识

String(1-50)

计算
否

lag

空：不使用，1:使用
零税率标识为 0、1、2 时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，例如填
免税、不征税、简易征收

出行人信息列表 passengerTransportList
passengerTransportList

出行人信息列
表

数组或集合

否

出行人信息列表，非必填，如
填写，列表数据对应必填项必
填

票通数电发票接口文档
traveler

出行人

String（1-20 字

是

出行人

符）
travelDate

出行日期

String（10）

是

出行日期。格式 yyyy-MM-dd

travelerIdType

出行人证件类

String（3）

是

出行人证件类型。见码表 3.1

型
travelerIdNo

出行人证件号

证件类型
String(1-20 字

码

是

符)

出行人证件号码。提醒：证件
号码需要符合规则，切勿随意
填写。

departurePlace

出发地

String(1-100)

是

出发地。省市（县）区。例如：
上海市黄浦区/四川省绵阳市
涪城区/广东省河源市和平县

destinationPlace

到达地

String(1-100)

是

到达地。省市（县）区。例如：
上海市黄浦区/四川省绵阳市
涪城区/广东省河源市和平县

vehicleType

交通工具类型

String(1)

是

交通工具类型。
1:飞机；2:火车；3:长途汽车；
4:公共交通；5:出租车； 6:汽
车；7:船舶；9:其他

seatClass

等级

String

否

等级。
【飞机】：则值为公务舱、头
等舱、经济舱的其中一种。
【火车】：则值为一等座、二
等座、软席（软座、软卧）、
硬席（硬座、硬卧）的其中一
种。
【船舶】：则值为一等舱、二
等舱、三等舱的的其中一种。

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "82",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": "010 - 1234567 ",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "备注",

票通数电发票接口文档
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"takerName": "XXX",
"takerTel": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"specialInvoiceKind": "09",
"itemList": [{
"goodsName": "车费",
"taxClassificationCode": "3010101020101010000",
"specificationModel": "",
"meteringUnit": "",
"quantity": "1.00",
"includeTaxFlag": "1",
"unitPrice": "100",
"invoiceAmount": "100.00",
"taxRateValue": "0.09"
}],
"passengerTransportList": [{
"traveler": "张三",
"travelDate": "2022-12-30",
"travelerIdType": "201",
"travelerIdNo": "101101198811119018",
"departurePlace": "上海市黄浦区",
"destinationPlace": "广东省河源市和平县",
"vehicleType": "3",
}, {
"traveler": "李四",
"travelDate": "2022-12-30",
"travelerIdType": "201",
"travelerIdNo": "101101198811119019",
"departurePlace": "上海市黄浦区",
"destinationPlace": "广东省河源市和平县",
"vehicleType": "3",
}]
}

2.24.3.

响应报文

响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水
号

类型

必填

String(20)

是

说明
4 位平台简称+16 位随机数

票通数电发票接口文档
qrCodePath

二维码 url

String

否

不定长，Base64 字符串，电子
发票该值必传

qrCode

二维码图片

String

否

Base64 字符串

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.24.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.24.5.

适用税收分类编码

税收分类编码

商品和服务名称

商品和服务
分类简称

增值税税率

征收率

票通数电发票接口文档
3010101010100000000

国内铁路旅客运输服务

运输服务

9%

3%

3010101010200000000

国际铁路旅客运输服务

运输服务

9%

3%

3010101010300000000

港澳台铁路旅客运输服务

运输服务

9%

3%

3010101020101010000

国内长途汽车旅客运输服务

运输服务

9%

3%

3010101020101020000

国际长途汽车旅客运输服务

运输服务

9%

3%

3010101020101030000

港澳台长途汽车旅客运输服务

运输服务

9%

3%

3010101020102000000

其他公路旅客运输服务

运输服务

9%

3%

3010101020201000000

公共电汽车客运服务

运输服务

9%

3%

3010101020202000000

城市轨道交通服务

运输服务

9%

3%

3010101020203000000

出租汽车客运服务

运输服务

9%

3%

3010101020204000000

索道客运服务

运输服务

9%

3%

3010101020299000000

其他城市旅客公共交通服务

运输服务

9%

3%

3010201010000000000

国内水路旅客运输服务

运输服务

9%

3%

3010201020000000000

国际水路旅客运输服务

运输服务

9%

3%

3010201030000000000

港澳台水路旅客运输服务

运输服务

9%

3%

3010203010000000000

水路旅客运输期租业务

运输服务

9%

3%

3010204010000000000

水路旅客运输程租业务

运输服务

9%

3%

3010301010100000000

国内航空旅客运输服务

运输服务

9%

3%

3010301010200000000

国际航空旅客运输服务

运输服务

9%

3%

3010301010300000000

港澳台航空旅客运输服务

运输服务

9%

3%

3010301030100000000

航空旅客运输湿租业务

运输服务

9%

3%

3010502010100000000

无运输工具承运铁路旅客运输服务

运输服务

9%

3%

3010502020100000000

无运输工具承运道路旅客运输服务

运输服务

9%

3%

3010503010000000000

无运输工具承运水路旅客运输服务

运输服务

9%

3%

3010504010000000000

无运输工具承运航空旅客运输服务

运输服务

9%

3%

3010506010000000000

无运输工具承运旅客联运运输服务

运输服务

9%

3%

3010599010000000000

其他无运输工具承运旅客运输业务

运输服务

9%

3%

3010601000000000000

旅客联运服务

运输服务

9%

3%

3019901000000000000

其他旅客运输服务

运输服务

9%

3%

2.25. 开具货物运输服务蓝字数电发票
2.25.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt

字符编码

UTF-8

备注
POST 方式提交

票通数电发票接口文档

2.25.2.

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长
度，不能包含<>字符

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字

naturalPersonFlag

是否开具给自

String（1）

否

然人

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人
识别号”)，该张发票将在受票
方自然人个人票夹中展示。

buyerAddress

购买方地址

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度，
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerTel

购买方电话

String(1-20)

否

票面信息，无默认，长度校验
规则为字符长度，只能是数字、
中英文括号、中英文横杠。
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerBankName

购买方开户行

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度。

票通数电发票接口文档
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。
buyerBankAccount

购买方银行账

String(1-50)

否

号

票面信息，无默认，长度校验
规则为字符长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的开户行及
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

sellerBankAccount

销货方银行账
号

String(1-50)

否

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银
行账号信息（如有多条取默认
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

票通数电发票接口文档
showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示
注：最终版式文件销方银行账
户取税局维护的开户行及账号

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示
注：最终版式文件上的销方地
址电话取税局维护的地址电话

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该复核人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

takerName

收票人名称

String(1-10)

否

客户信息，长度校验规则为字

票通数电发票接口文档
符长度
takerTel

收票人手机号

String(11)

否

客户信息，长度校验规则为字
符长度

takerEmail

收票人邮箱

String(4-50)

否

客户信息，填写后，票通会给
客户发送发票邮件，不填写则
不发送，长度校验规则为字符
长度

specialInvoiceKind

特殊票种

String(2)

否

特殊票种，默认为空。
04：货物运输服务。
如果不传，会根据税收分类编
码自动适配特殊票种。

remark

备注

String(0-200)

否

备注，校验规则字符长度

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符
长度。如果没有传值，票通平
台默认使用发票请求流水号
invoiceReqSerialNo 赋值

shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）
itemList

开票项目列表

goodsName

货物名称

数组或集合

是

最大 2000 行

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCo

对应税收分类

de

编码

specificationModel

对应规格型号

String(1-50)

是

统一编码表的信息，长度校验
规则为字符长度

String(1-40)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

meteringUnit

单位

String(1-20)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度

quantity

数量

16 位(精确到 8

否

位小数)
includeTaxFlag

含税标示

unitPrice

单价

票面信息，支持到小数点前 8
位。

String(1)

否

0：不含税，1：含税，默
认为 0 不含税

16 位(精确到 8

否

票面信息，支持到小数点前 8

位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

invoiceAmount

金额

10 位(精确到 2

是

票面信息，支持到小数点前 8

票通数电发票接口文档
位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

discountAmount

折扣金额

10 位(精确到 2

否

该商品行的折扣金额，传负数

否

票面信息，使用折扣金额进行

位小数)
discountTaxRateAmou

折扣税额

nt
preferentialPolicyF

10 位(精确到 2
位小数)

优惠政策标识

String(1-50)

计算
否

lag

空：不使用，1:使用
零税率标识为 0、1、2 时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，例如填
免税、不征税、简易征收

货物运输服务列表 goodsTransportList
goodsTransportList

货物运输服务

数组或集合

是

货物运输服务列表

是

运输工具种类。

列表
transportToolType

运输工具种类

String（4）

铁路运输、公路运输、水路运
输、航空运输、管道运输、其
他运输工具
transportToolBrand

运输工具牌号

String（1-100）

是

运输工具牌号

departurePlace

起运地

String(1-100)

是

起运地。省市（县）区。例如：
上海市黄浦区/四川省绵阳市
涪城区/广东省河源市和平县

destinationPlace

到达地

String(1-100)

是

到达地。省市（县）区。例如：
上海市黄浦区/四川省绵阳市
涪城区/广东省河源市和平县

transportGoodsName

运输货物名称

String(1-80 字
符)

报文示例：

是

运输货物名称

票通数电发票接口文档
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "82",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": "010 - 1234567 ",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "备注",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"takerName": "XXX",
"takerTel": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"specialInvoiceKind": "09",
"itemList": [{
"goodsName": "国内道路货物运输服务",
"taxClassificationCode": "3010102020100000000",
"specificationModel": "",
"meteringUnit": "",
"quantity": "1.00",
"includeTaxFlag": "1",
"unitPrice": "100",
"invoiceAmount": "100.00",
"taxRateValue": "0.09"
}],
"goodsTransportList": [{
"transportToolType": "公路运输",
"transportToolBrand": "京 A88888",
"departurePlace": "上海市黄浦区",
"destinationPlace": "广东省河源市和平县",
"transportGoodsName": "木材",
}]
}

票通数电发票接口文档

2.25.3.

响应报文

响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水

类型

必填

说明

String(20)

是

4 位平台简称+16 位随机数

String

否

不定长，Base64 字符串，电子

号
qrCodePath

二维码 url

发票该值必传
qrCode

二维码图片

String

否

Base64 字符串

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.25.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

票通数电发票接口文档
8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.25.5.

适用税收分类编码

税收分类编码

商品和服务名称

商品和服务
分类简称

增值税税率

征收率

3010102010100000000

国内铁路货物运输服务

运输服务

9%

3%

3010102010200000000

国际铁路货物运输服务

运输服务

9%

3%

3010102010300000000

港澳台铁路货物运输服务

运输服务

9%

3%

3010102020100000000

国内道路货物运输服务

运输服务

9%

3%

3010102020200000000

国际道路货物运输服务

运输服务

9%

3%

3010102020300000000

港澳台道路货物运输服务

运输服务

9%

3%

3010102990100000000

国内其他陆路货物运输服务

运输服务

9%

3%

3010102990200000000

国际其他陆路货物运输服务

运输服务

9%

3%

3010102990300000000

港澳台其他陆路货物运输服务

运输服务

9%

3%

3010202010000000000

国内水路货物运输服务

运输服务

9%

3%

3010202020000000000

国际水路货物运输服务

运输服务

9%

3%

3010202030000000000

港澳台水路货物运输服务

运输服务

9%

3%

3010203020000000000

水路货物运输期租业务

运输服务

9%

3%

3010204020000000000

水路货物运输程租业务

运输服务

9%

3%

3010301020100000000

国内航空货物运输服务

运输服务

9%

3%

3010301020200000000

国际航空货物运输服务

运输服务

9%

3%

3010301020300000000

港澳台航空货物运输服务

运输服务

9%

3%

3010301030200000000

航空货物运输湿租业务

运输服务

9%

3%

3010502010200000000

无运输工具承运铁路货物运输服务

运输服务

9%

3%

3010502020200000000

无运输工具承运道路货物运输服务

运输服务

9%

3%

3010503020000000000

无运输工具承运水路货物运输服务

运输服务

9%

3%

3010504020000000000

无运输工具承运航空货物运输服务

运输服务

9%

3%

3010506020000000000

无运输工具承运货物联运运输服务

运输服务

9%

3%

3010599020000000000

其他无运输工具承运货物运输业务

运输服务

9%

3%

3010602000000000000

货物联运服务

运输服务

9%

3%

3019902000000000000

其他货物运输服务

运输服务

9%

3%

2.26. 开具建筑服务蓝字数电发票
2.26.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

备注
POST 方式提交

票通数电发票接口文档
接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt

字符编码

2.26.2.

UTF-8

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长
度，不能包含<>字符

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字

naturalPersonFlag

是否开具给自

String（1）

否

然人

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人
识别号”)，该张发票将在受票
方自然人个人票夹中展示。

buyerAddress

购买方地址

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度，
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerTel

购买方电话

String(1-20)

否

票面信息，无默认，长度校验
规则为字符长度，只能是数字、

票通数电发票接口文档
中英文括号、中英文横杠。
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。
buyerBankName

购买方开户行

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

buyerBankAccount

购买方银行账

String(1-50)

否

号

票面信息，无默认，长度校验
规则为字符长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的开户行及
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

sellerBankAccount

销货方银行账
号

String(1-50)

否

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银

票通数电发票接口文档
行账号信息（如有多条取默认
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。
showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示
注：最终版式文件销方银行账
户取税局维护的开户行及账号

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示
注：最终版式文件上的销方地
址电话取税局维护的地址电话

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，

票通数电发票接口文档
则使用该复核人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置
takerName

收票人名称

String(1-10)

否

客户信息，长度校验规则为字
符长度

takerTel

收票人手机号

String(11)

否

客户信息，长度校验规则为字
符长度

takerEmail

收票人邮箱

String(4-50)

否

客户信息，填写后，票通会给
客户发送发票邮件，不填写则
不发送，长度校验规则为字符
长度

specialInvoiceKind

特殊票种

String(2)

否

特殊票种，默认为空。
03：建筑服务。
如果不传，会根据税收分类编
码自动适配特殊票种。

remark

备注

String(0-200)

否

备注，校验规则字符长度

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符
长度。如果没有传值，票通平
台默认使用发票请求流水号
invoiceReqSerialNo 赋值

shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）,只能一行
itemList

开票项目列表

goodsName

货物名称

数组或集合

是

只能一行

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCo

对应税收分类

de

编码

quantity

数量

String(1-50)

是

规则为字符长度
16 位(精确到 8

否

位小数)
includeTaxFlag

含税标示

unitPrice

单价

统一编码表的信息，长度校验
票面信息，支持到小数点前 8
位。

String(1)

否

0：不含税，1：含税，默
认为 0 不含税

16 位(精确到 8

否

票面信息，支持到小数点前 8

位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

票通数电发票接口文档
invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

discountAmount

折扣金额

10 位(精确到 2

否

该商品行的折扣金额，传负数

否

票面信息，使用折扣金额进行

位小数)
discountTaxRateAmou

折扣税额

nt
preferentialPolicyF

10 位(精确到 2
位小数)

优惠政策标识

String(1-50)

计算
否

lag

空：不使用，1:使用
零税率标识为 0、1、2 时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税

特定业务--建筑服务（buildService），建筑服务相关的税收分类编码，必填
buildService

建筑服务

Object

是

特定业务建筑服务必填

landTaxItemNo

土地增值税项

String（0-20 字

否

土地增值税项目编号

目编号

符）

建筑服务发生

String（4-100）

是

建筑服务发生地，格式：省市

buildServicePlace

地

区（县）。
例如：上海市黄浦区/四川省绵
阳市涪城区/广东省河源市和
平县

detailedAddress

详细地址

String（1-100

否

字符）
buildProjectName

建筑项目名称

String（1-80 字

不动产详细地址。例如：东江
北路 68 号

是

建筑项目名称

是

跨地(市)标志。

符）
crossCitySign

跨地(市)标志

String(1)

0：否；
1：是

票通数电发票接口文档
taxDeclareManageNum

跨区域涉税事

String(1-50)

项报验管理编
号

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "82",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": "010 - 1234567 ",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "备注",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"takerName": "XXX",
"takerTel": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"itemList": [{
"goodsName": "安装服务",
"taxClassificationCode": "3050200000000000000",
"quantity": "1.00",
"includeTaxFlag": "1",
"unitPrice": "100",
"invoiceAmount": "100.00",
"taxRateValue": "0.09"
}],
"buildService": {
"landTaxItemNo": "2324567",
"buildServicePlace": "四川省绵阳市涪城区",
"detailedAddress": "东江北路 68 号",
"buildProjectName": "某某大厦",
"crossCitySign": "0"
}
}

否

跨区域涉税事项报验管理编
号。跨地(市)标志为 1 时必填

票通数电发票接口文档

2.26.3.

响应报文

响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水

类型

必填

说明

String(20)

是

4 位平台简称+16 位随机数

String

否

不定长，Base64 字符串，电子

号
qrCodePath

二维码 url

发票该值必传
qrCode

二维码图片

String

否

Base64 字符串

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.26.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

8021

发票请求流水号已存在，请更换发票请求流水号

票通数电发票接口文档
8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.26.5.

适用税收分类编码

税收分类编码

商品和服务名称

商品和服务分类简称

增值税税率

征收率

3050100000000000000

工程服务

建筑服务

9%

3%

3050200000000000000

安装服务

建筑服务

9%

3%

3050300000000000000

修缮服务

建筑服务

9%

3%

3050400000000000000

装饰服务

建筑服务

9%

3%

3059900000000000000

其他建筑服务

建筑服务

9%

3%

2.27. 开具不动产销售蓝字数电发票
2.27.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt
字符编码

2.27.2.

UTF-8

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长

票通数电发票接口文档
度，不能包含<>字符
buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字

naturalPersonFlag

是否开具给自

String（1）

否

然人

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人
识别号”)，该张发票将在受票
方自然人个人票夹中展示。

buyerAddress

购买方地址

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度，
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerTel

购买方电话

String(1-20)

否

票面信息，无默认，长度校验
规则为字符长度，只能是数字、
中英文括号、中英文横杠。
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerBankName

购买方开户行

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

buyerBankAccount

购买方银行账

String(1-50)

否

号

票面信息，无默认，长度校验
规则为字符长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字

票通数电发票接口文档
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。
sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的开户行及
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

sellerBankAccount

销货方银行账

String(1-50)

否

号

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银
行账号信息（如有多条取默认
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示
注：最终版式文件销方银行账
户取税局维护的开户行及账号

showBuyerAddrTel

是否显示购方

String(1)

否

是否显示购方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示
1:显示

showSellerAddrTel

是否显示销方

String(1)

否

是否显示销方地址电话到发票

地址电话到发

备注，默认 0 不显示

票备注

0:不显示

票通数电发票接口文档
1:显示
注：最终版式文件上的销方地
址电话取税局维护的地址电话
account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该复核人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

takerName

收票人名称

String(1-10)

否

客户信息，长度校验规则为字
符长度

takerTel

收票人手机号

String(11)

否

客户信息，长度校验规则为字
符长度

takerEmail

收票人邮箱

String(4-50)

否

客户信息，填写后，票通会给
客户发送发票邮件，不填写则
不发送，长度校验规则为字符
长度

specialInvoiceKind

特殊票种

String(2)

否

特殊票种，默认为空。
05：不动产销售服务。
如果不传，会根据税收分类编
码自动适配特殊票种。

remark

备注

String(0-200)

否

备注，校验规则字符长度

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符
长度。如果没有传值，票通平

票通数电发票接口文档
台默认使用发票请求流水号
invoiceReqSerialNo 赋值
shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）,行数要与不动产销售特定信息的 realEstateSaleList 行数保持一致
itemList

开票项目列表

数组或集合

是

行数要与不动产销售特定信息
的行数保持一致

goodsName

货物名称

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCo

对应税收分类

de

编码

quantity

数量

String(1-50)

是

规则为字符长度
16 位(精确到 8

是

位小数)
includeTaxFlag

含税标示

unitPrice

单价

统一编码表的信息，长度校验
票面信息，支持到小数点前 8
位。

String(1)

否

0：不含税，1：含税，默
认为 0 不含税

16 位(精确到 8

是

票面信息，支持到小数点前 8

位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

discountAmount

折扣金额

10 位(精确到 2

否

该商品行的折扣金额，传负数

否

票面信息，使用折扣金额进行

位小数)
discountTaxRateAmou

折扣税额

nt
preferentialPolicyF

10 位(精确到 2
位小数)

优惠政策标识

String(1-50)

计算
否

lag

空：不使用，1:使用
零税率标识为 0、1、2 时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，

票通数电发票接口文档
2：不征税，
3：普通零税率
vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税

不动产销售特定信息列表 realEstateSaleList
realEstateSaleList

不动产销售特

数组或集合

是

定信息列表
realEstateUnitCode

不动产销售特定信息列表，行
数要与 itemList 的行数一致

不动产单元代

String（0-28 字

码/网签合同备

符）

否

不动产单元代码/网签合同备
案编号

案编号
region

不动产地址省

String （ 4-100

市区（县）

字符）

是

不动产地址省市区（县），格
式：省市区（县）。
例如：上海市黄浦区/四川省绵
阳市涪城区/广东省河源市和
平县

detailedAddress

详细地址

String（1-100

是

字符）
crossCitySign

跨地(市)标志

String(1)

不动产详细地址。例如：东江
北路 68 号

是

跨地(市)标志。
0：否；
1：是

landTaxItemNo

土地增值税项
目编号

String（0-20 字

否

土地增值税项目编号

符）

assessedTaxPrice

核定计税价格

String（0-20）

否

核定计税价格

actualAmountWithTax

实际成交含税

String（0-20）

否

实际成交含税金额。注：核定

金额

计税价格不为空时实际成交含
税金额也不能为空

titleNo
areaUnit

房屋产权证书/

String（0-40 字

不动产权证号

符）

面积单位

String

否

房屋产权证书/不动产权证号

是

面积单位。
平方千米
平方米
孔公里
公顷
亩
h㎡
k㎡
㎡

共同购买方信息列表 realEstateSaleTogetherBuyerList
realEstateSaleToget

共同购买方信

herBuyerList

息列表

togetherBuyerName

共同购买方

togetherBuyerIdType

共同购买方证
件类型

数组或集合

否

共同购买方信息列表

String(100)

是

共同购买方

String(3)

是

共同购买方证件类型。见码表
3.1 证件类型

票通数电发票接口文档
togetherBuyerIdNo

共同购买方证

String(20)

件号码

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "82",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": "010 - 1234567 ",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "备注",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"takerName": "XXX",
"takerTel": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"itemList": [{
"goodsName": "房地产开发住宅",
"taxClassificationCode": "5010101000000000000",
"quantity": "100.00",
"includeTaxFlag": "1",
"unitPrice": "100",
"invoiceAmount": "10000.00",
"taxRateValue": "0.09"
}],
"realEstateSaleList": [{
"realEstateUnitCode": "2324567",
"region": "四川省绵阳市涪城区",
"detailedAddress": "东江北路 68 号",
"crossCitySign": "0",
"landTaxItemNo": "013213",
"assessedTaxPrice": "10000",
"actualAmountWithTax": "10000",
"titleNo": "123456734567",
"areaUnit": "平方米"

是

共同购买方证件号码

票通数电发票接口文档
}],
"realEstateSaleTogetherBuyerList": [{
"togetherBuyerName": "张三",
"togetherBuyerIdType": "201",
"togetherBuyerIdNo": "110110198912120178"
}]
}

2.27.3.

响应报文

响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水

类型

必填

说明

String(20)

是

4 位平台简称+16 位随机数

String

否

不定长，Base64 字符串，电子

号
qrCodePath

二维码 url

发票该值必传
qrCode

二维码图片

String

否

Base64 字符串

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.27.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

票通数电发票接口文档
8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.27.5.

适用税收分类编码

税收分类编码

商品和服务名称

商品和服务分类简称

增值税税率

征收率

5010101000000000000

房地产开发住宅

不动产

9%

5%

5010102000000000000

取得的住宅

不动产

9%

5%

5010103000000000000

房改房

不动产

9%

5%

5010199000000000000

其他住房

不动产

9%

5%

5010201000000000000

房地产开发商业用房

不动产

9%

5%

5010202000000000000

取得的商业用房

不动产

9%

5%

5010299000000000000

其他商业用房

不动产

9%

5%

5019900000000000000

其他建筑物

不动产

9%

5%

5020000000000000000

构筑物

不动产

9%

5%

5030000000000000000

其他不动产

不动产

9%

5%

2.28. 红字发票确认单申请
2.28.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/applySpecialInvRed
InfoTable.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/applySpecialInvRedInfoT
able.pt

字符编码

UTF-8

备注
POST 方式提交

票通数电发票接口文档

2.28.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称
纳税人识别号

类型

必填

说明

String(15-20)

是

纳税人识别号，销方申请填销
方税号，购方申请填购方税号

redApplySerialNo

红字确认单申请

String(20)

是

流水号

红字确认单申请流水号，4 位
平台简称+16 位随机数，可以
用来调用查询接口查询确认单
信息

redReason

冲红原因

String(2)

是

冲红原因。
01：开票有误；
03：服务中止；
04：销售折让

blueInvoiceCode

原发票代码

String(12)

否

原发票代码，冲红增值税发票
管理系统开具的发票或数电纸
票时必填

blueInvoiceNo

原发票号码

String(8)

否

原发票号码，冲红增值税发票
管理系统开具的发票或数电纸
票时必填

blueAllEleInvNo

原数电发票号码

String(20)

否

数电发票号码

blueInvoiceDate

原发票开票日期

String(19)

否

原发票开票日期。
格式 yyyyMMdd。
购方申请必传。销方申请时如
果需要冲红非票通平台开具的
发票，此值必传。

invoiceKind

发票种类代码

String（2）

否

开具红字确认单的发票种类。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）。
默认蓝票的发票种类代码。购
方申请必填。

buyerTaxpayerNum

购买方税号

String(15-20)

否

购买方税号

sellerTaxpayerNum

销方纳税人识别

String（15-20）

否

销方纳税人识别号

String(1)

是

申请来源。

号
applySource

申请来源

0：销方申请；
1：购方申请。
account

确认单录入人员

String(50)

否

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，取蓝票的开票账号。

票通数电发票接口文档

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"redApplySerialNo": "XXXX5678901234567891",
"redReason": "01",
"blueInvoiceCode": "123456789012",
"blueInvoiceNo": "12345678",
"blueAllEleInvNo": "12345678901212345678",
"invoiceDate": "2022-09-28 08:15:54",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"sellerTaxpayerNum": "91XXXXXXXXXXXXX31",
"applySource": "0",
"account": "185XXXXXXXX"
}

2.28.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

redApplySerialNo

红字信息表申请流

String(20)

是

可以用来调用查询接口查询红

水号

字信息表单号

redBillNo

红字信息表编号

String（20）

否

申请成功此值必填

processState

红字确认单状态

String(2)

否

红字发票信息确认单确认状。
0：审核中，调用 2.29 查看红
字发票确认单接口查询结果；
4：处理失败；
5：已冲红；
6：冲红中；
7：冲红失败；
81：无需确认，可冲红；
82：销方录入待购方确认；
83：购方录入待销方确认；
84：购销双方已确认，可冲红；
85：作废（销方录入购方否认）
；
86：作废（购方录入销方否认）
；
87：作废（超 72 小时未确认）；
88：作废（发起方撤销）；
89：作废（确认后撤销）；
90：作废（异常凭证）。

statusMsg

报文示例：
{

状态描述

String（500）

否

状态描述

票通数电发票接口文档
"redApplySerialNo": "7bba2c42554a4e74b37ee099a64658c7",
"redBillNo": "31010422081000100081",
"processState": "81"
}

2.28.4.

业务错误码

错误码（code）

含义说明（msg）

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8003

找不到对应的发票

6006

该发票不可冲红

6005

该蓝票已经冲红，不可冲红

6003

该蓝票已经作废，不可冲红

8025

信息表申请流水号重复

2.29. 查看红字发票确认单
2.29.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/querySpecialInvoic
eRedInfo.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/querySpecialInvoiceRedI
nfo.pt
字符编码

UTF-8

2.29.2.

请求报文

请求参数-业务报文部分：
字段

名称

taxpayerNum

纳税人识别号

redApplySerialNo

红字确认单申请流
水号

类型及长度

必填

说明

String(15-20)

是

当前纳税人识别号

String(20)

是

红字确认单申请流水号

票通数电发票接口文档

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"redApplySerialNo": "XXXX5678901234567891"
}

2.29.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

当前纳税人识别号

redApplySerialNo

红字确认单申请

String(20)

是

红字确认单申请流水号

流水号
account

录入人员账号

String(50)

否

录入人员账号

applySource

申请来源

String(1)

是

申请来源，确认单的发起方。
0：销方申请；
1：购方申请。

redReason

冲红原因

String(2)

是

冲红原因。
01：开票有误；
03：服务中止；
04：销售折让

processState

红字发票确认单

String（2）

是

状态

红字发票确认单状态
0：审核中；
4：处理失败；
5：已冲红；
6：冲红中；
7：冲红失败；
81：无需确认；
82：销方录入待购方确认；
83：购方录入待销方确认；
84：购销双方已确认；
85：作废（销方录入购方否认）
；
86：作废（购方录入销方否认）
；
87：作废（超 72 小时未确认）；
88：作废（发起方撤销）；
89：作废（确认后撤销）；
90：作废（异常凭证）

statusMsg

状态描述

String（500）

否

状态描述

redInvConfirmationId

红字确认单 id

String(50)

是

红字发票信息确认单 id

redBillNo

红字通知单编号

String（100）

是

红字通知单编号

sellerTaxpayerNum

销售方纳税人识

String(15-20）

是

销售方纳税人识别号

String(2-40）

是

销售方名称

别号
sellerName

销售方名称

票通数电发票接口文档
buyerTaxpayerNum

购买方纳税人识

String(15-20）

否

购买方纳税人识别号

别号
buyerName

购买方名称

String(2-40）

是

购买方名称

invoiceAmount

合计不含税金额

String（16）

是

红 字 确 认 单合 计 不 含 税金 额
（负数）

invoiceTaxAmonut

合计税额

String（16）

是

红字确认单合计税额（负数）

invoiceTotalAmount

价税合计

String（16）

是

红字确认单价税合计（负数）

invoiceKind

发票种类代码

String（2）

否

发票种类代码。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

blueInvoiceCode

蓝票代码

String（10 或 12）

否

蓝票代码

blueInvoiceNo

蓝票号码

String（8）

否

蓝票号码

blueAllEleInvNo

蓝票数电发票号

String(20)

是

蓝票数电发票号码

String（19）

是

蓝票开票日期

码
blueInvoiceDate

蓝票开票日期

yyyy-MM-dd HH:mm:ss
redInvoiceSerailNo

红票流水号

String(20)

否

红票流水号

redInvoiceCode

红票代码

String（10 或 12）

否

红票代码

redInvoiceNo

红票号码

String（8）

否

红票号码

redAllEleInvNo

红票数电发票号

String(20)

否

红票数电发票号码

String（19）

否

红票开票日期

码
redInvoiceDate

红票开票日期

yyyy-MM-dd HH:mm:ss
applyTime

填开时间

String(19)

是

红字信息表填开时间
yyyy-MM-dd HH:mm:ss

confirmName

确认方名称

String(100)

否

确认方名称

confirmDate

确认日期

String(10)

否

确认日期，格式 yyyy-MM-dd

itemList

项目信息

数组

是

itemName

项目名称

String(1-100)

是

项目名称

itemCode

税收分类编码

String(1-50)

是

税收分类编码

selfItemCode

自行编码

String(1-50)

否

自行编码

unitName

项目单位

String(1-32)

否

项目单位

specificationModel

规格型号

String(1-40)

否

规格型号

itemPrice

项目单价

String(1-16)

否

保留小数点后 8 位

taxIncludeFlag

含税标志

String（1）

否

0：不含税；
1：含税。
默认 0 不含税。

itemQuantity

项目数量

String(1-16)

否

保留小数点后 8 位

itemAmount

项目金额

String(1-16)

是

保留小数点后 2 位

itemTaxRate

税率

String(4)

是

保留小数点后 2 位，例如 0.16

itemDeduction

扣除额

String(1-16)

否

保留小数点后 2 位

itemTaxAmount

项目税额

String(1-16)

是

保留小数点后 2 位

benefitsFlag

优惠政策标识

String(1)

是

0：不享受优惠；

票通数电发票接口文档
1：享受优惠
zeroTaxRateFlag

零税率标识

String(1)

否

空：非零税率，
0：出口零税，
1：免税，
2：不征税，
3：普通零税率

addedTaxSpecial

增值税特殊管理

String(50)

否

增值税特殊管理

orderNo

项目序号

String(11)

是

用来表示项目的先后顺序

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"redApplySerialNo": "XXXX5678901234567891",
"applySource": "0",
"redReason": "01",
"processState": "84",
"redInvConfirmationId": "7bba2c42554a4e74b37ee099a64658c7",
"redBillNo": "31010422081000100081",
"sellerTaxpayerNum": "91XXXXXXXXXXXXX31",
"sellerName": "北京 XXXXXXXXXX 公司",
"buyerTaxpayerNum": "91XXXXXXXXXXXXX32",
"buyerName": "北京 XXXXXXXXXX 公司",
"invoiceAmount": "-43.26",
"invoiceTaxAmonut": "-1.54",
"invoiceTotalAmount": "-44.80",
"invoiceKind": "81",
"blueAllEleInvNo": "12345678901212345678",
"blueInvoiceDate": "2022-09-28 08:15:54",
"confirmName": "北京 XXXXXXXXXX 公司",
"confirmDate": "2022-10-19",
"itemList": [{
"itemName": "*油料*喜之郎果冻",
"unitName": "袋",
"specificationModel": "葡萄+苹果 200g",
"itemPrice": "1.72413793",
"taxIncludeFlag": "0",
"itemQuantity": "-1.00000000",
"itemAmount": "-1.72",
"itemTaxRate": "0.16",
"itemTaxAmount": "-0.28",
"itemCode": "1010103020000000000",
"benefitsFlag": "0",
"orderNo": "1"
}, {

票通数电发票接口文档
"itemName": "*谷物*天然酵母面包甜橙味",
"unitName": "袋",
"specificationModel": "70g",
"itemPrice": "5.90909091",
"taxIncludeFlag": "0",
"itemQuantity": "-1.00000000",
"itemAmount": "-5.91",
"itemTaxRate": "0.10",
"itemTaxAmount": "-0.59",
"itemCode": "1010101040000000000",
"benefitsFlag": "0",
"orderNo": "2"
}]
}

2.29.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8026

红字确认单不存在

2.30. 开具红字数电发票
2.30.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/issueRedSpecialInvoice.
pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/issueRedSpecialInvoice.pt

字符编码

2.30.2.

UTF-8

请求报文

请求参数-业务报文部分：

备注
POST 请求

票通数电发票接口文档

字段

名称

类型及长度

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

开票方纳税人识别号

invoiceReqSerialNo

发票请求流水号

String(20)

是

红字发票请求流水号 4 位平台
简称+16 位随机数，唯一

blueInvoiceCode

蓝票代码

String（12）

否

蓝票代码，冲红税控发票或数
电纸质发票时必填

blueInvoiceNo

蓝票号码

String（8）

否

蓝票号码，冲红税控发票或数
电纸质发票时必填

blueAllEleInvNo

原数电发票号码

String(20)

否

数电发票号码

redBillNo

红字信息表编号

String（100）

是

红字信息表编号

account

开票人员账号

String(50)

否

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，取确认单录入账号。

takerName

收票人名称

String(1-10)

否

收票人名称，长度校验规则为
字符长度

takerTel

收票人手机号

String(11)

否

收票人手机号，长度校验规则
为字符长度，若在票通平台设
置了红字发票发送短信且企业
有可用短信条数，填写该值则
发送短信

takerEmail

收票人邮箱

String(4-50)

否

收票人邮箱，长度校验规则为
字符长度，若在票通平台设置
了红字发票发送邮件，填写该
值则发送邮件

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"blueAllEleInvNo": "12345678901212345678",
"redBillNo": "31010422081000100081",
"account": "185XXXXXXXX"
}

2.30.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

票通数电发票接口文档
invoiceReqSerialNo

发票请求流水

String(20)

是

4 位平台简称+16 位随机数

String

否

不定长，Base64 字符串，电子

号
qrCodePath

二维码 url

发票该值必传
qrCode

二维码图片

String

否

Base64 字符串

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.30.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.31. 红字发票确认单审核
2.31.1.
项目

调用说明
说明内容

备注

票通数电发票接口文档
调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

POST 请求

http://fpkj.testnw.vpiaotong.cn/tp/openapi/confirmRedInvConfirm
ation.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/confirmRedInvConfirmation
.pt
字符编码

UTF-8

2.31.2.

请求报文

请求参数-业务报文部分：
字段

名称

类型及长度

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

开票方纳税人识别号

redBillNo

红字信息表编号

String（20）

是

红字信息表编号

confirmType

确认类型

String(12)

是

确认类型。
0：拒绝；
1：确认；

account

处理人员账号

String(50)

否

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，取确认单录入账号。

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"redBillNo": "31010422081000100081",
"confirmType": "1",
"account": "185XXXXXXXX"
}

2.31.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

开票方纳税人识别号

redBillNo

红字信息表编号

String（20）

否

红字信息表编号

confirmType

确认类型

String(12)

是

确认类型。
0：拒绝；
1：确认；

票通数电发票接口文档
resultCode

结果代码

String(4)

是

获取结果代码。
0000：确认成功。
其他：确认失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定

是

确认结果描述

长)

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"redBillNo": "31010422081000100081",
"confirmType": "1",
"resultCode": "0000",
"resultMsg": "确认成功"
}

2.31.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

2.32. 红字发票确认单撤销
2.32.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/revokeRedInfoTable.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/revokeRedInfoTable.pt

字符编码

UTF-8

2.32.2.

请求报文

请求参数-业务报文部分：

备注
POST 请求

票通数电发票接口文档

字段

名称

类型及长度

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

开票方纳税人识别号

redBillNo

红字信息表编号

String(20)

是

红字信息表编号

account

撤销人员账号

String(50)

否

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，取确认单录入账号。

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"redBillNo": "31010422081000100081",
"account": "185XXXXXXXX"
}

2.32.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

纳税人识别号

String(6-20)

是

纳税人识别号

redBillNo

红字信息表编号

String(20)

是

红字信息表编号

resultCode

结果代码

String(4)

是

结果代码。
6666：撤销成功；
9999：撤销失败。详情见结果
描述

resultMsg

结果描述

不定长

是

结果描述

报文示例：
{
"taxpayerNum": "500102192801051381",
"redBillNo": "31010422081000100081",
"resultCode": "6666",
"resultMsg": "撤销成功！"
}

2.32.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

票通数电发票接口文档
8022

企业已被禁用

2.33. 红字发票确认单查询（下载）
2.33.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/downloadSpecialInv
RedInfoTable.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/downloadSpecialInvRedIn
foTable.pt
字符编码

UTF-8

2.33.2.

请求报文

请求参数-业务报文部分：
字段

名称

类型及长度

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

当前纳税人识别号

businessSerialNo

业务流水号

String(10-30)

是

业务流水号

queryType

查询类型

String（1）

否

查询类型。
0：增值税专用发票红字信息表
下载；
1：数电发票确认单下载。
默认增值税专用发票红字信息
表。

reciprocalName

对方纳税人名称

String(1-100)

否

对方纳税人名称

applyDateStart

填开日期起

String（8）

是

填开日期起。格式 yyyyMMdd

applyDateEnd

填开日期至

String（8）

是

填开日期至。格式 yyyyMMdd

redBillRange

下载范围

String(1)

是

下载范围。
0：全部（包括本企业填写和其
他企业填写的红字确认单）；
1：本企业填写的红字信息表
（包括本企业作为销方和购方
填写的红字确认单）；
2：其他企业填写的红字信息表
（其他企业作为购方和销方填
写的红字确认单）；

票通数电发票接口文档
redBillNo

红字发票信息确认

String(20)

否

红字发票信息确认单编号

单编号

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"businessSerialNo": "20210402165800000002",
"reciprocalName": "对方纳税人名称",
"applyDateStart": "20221001",
"applyDateEnd": "20221031",
"redBillRange": "0"
}

2.33.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

当前纳税人识别号

businessSerialNo

业务流水号

String(10-30)

是

业务流水号

resultCode

结果代码

String（4）

是

结果代码。
0000：发送红字确认单查询指
令成功，请稍后根据业务流水
号查询结果；
9999：查询失败，失败原因见
resultMsg。

resultMsg

结果信息描述

不定长

是

结果信息描述

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"businessSerialNo": "20210402165800000002",
"resultCode": "0000",
"resultMsg": "发送红字确认单查询指令成功，请稍后根据业务流水号查询结果！"
}

2.33.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

票通数电发票接口文档

2.34. 获取红字发票确认单查询（下载）结果
通过该接口查询专票红字确认单查询下载结果。
该接口需要与 2.11 红字发票确认单查询
（下
载）配合使用。

2.34.1. 调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/open
api/queryRedInfoTableDownloadResult.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/q
ueryRedInfoTableDownloadResult.pt
字符编码

2.34.2.

UTF-8

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

纳税人识别号

String(6-20)

是

纳税人识别号

businessSerialNo

业务流水号

String(10-30)

是

业务流水号

报文示例：
{
"taxpayerNum": "500102201007206608",
"businessSerialNo": "20210402165800000002"
}

2.34.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

taxpayerNum

纳税人识别号

String(15-20)

是

当前纳税人识别号

businessSerialNo

业务流水号

String(10-30)

是

业务流水号

resultCode

结果代码

String（4）

是

结果代码。

票通数电发票接口文档
0000：查询成功；
9999：查询失败，失败原因见
resultMsg。
resultMsg

结果信息描述

不定长

是

结果信息描述

redInfoTableList

红字信息表列表

数组

否

红字信息表列表

redApplySerialNo

红字确认单申请

String(20)

是

红字确认单申请流水号

流水号
taxpayerNum

纳税人识别号

String(15-20)

是

纳税人识别号

account

录入人员账号

String(50)

否

录入人员账号

applySource

申请来源

String(1)

是

申请来源，确认单的发起方。
0：销方申请；
1：购方申请。

redReason

冲红原因

String(2)

是

冲红原因。
01：开票有误；
03：服务中止；
04：销售折让

processState

红字发票确认单

String（2）

是

状态

红字发票确认单状态
4：处理失败；
5：已冲红；
6：冲红中；
7：冲红失败；
81：无需确认；
82：销方录入待购方确认；
83：购方录入待销方确认；
84：购销双方已确认；
85：作废（销方录入购方否认）
；
86：作废（购方录入销方否认）
；
87：作废（超 72 小时未确认）；
88：作废（发起方撤销）；
89：作废（确认后撤销）；
90：作废（异常凭证）；

statusMsg

状态描述

String（500）

否

状态描述

redInvConfirmationId

红字确认单 id

String(50)

是

红字发票信息确认单 id

redBillNo

红字通知单编号

String（100）

是

红字通知单编号

sellerTaxpayerNum

销售方纳税人识

String(15-20）

是

销售方纳税人识别号

别号
sellerName

销售方名称

String(2-40）

是

销售方名称

buyerTaxpayerNum

购买方纳税人识

String(15-20）

否

购买方纳税人识别号

别号
buyerName

购买方名称

String(2-40）

是

购买方名称

invoiceAmount

合计不含税金额

String（16）

是

红 字 确 认 单合 计 不 含 税金 额
（负数）

invoiceTaxAmonut

合计税额

String（16）

是

红字确认单合计税额（负数）

invoiceTotalAmount

价税合计

String（16）

是

红字确认单价税合计（负数）

票通数电发票接口文档
invoiceKind

发票种类代码

String（2）

否

发票种类代码。
81：电子发票（增值税专用发
票）
82：电子发票（普通发票）

blueInvoiceCode

蓝票代码

String（10 或 12）

否

蓝票代码

blueInvoiceNo

蓝票号码

String（8）

否

蓝票号码

blueAllEleInvNo

蓝票数电发票号

String(20)

是

蓝票数电发票号码

String（19）

是

蓝票开票日期

码
blueInvoiceDate

蓝票开票日期

yyyy-MM-dd HH:mm:ss
redInvoiceSerailNo

红票流水号

String(20)

否

红票流水号

redInvoiceCode

红票代码

String（10 或 12）

否

红票代码

redInvoiceNo

红票号码

String（8）

否

红票号码

redAllEleInvNo

红票数电发票号

String(20)

否

红票数电发票号码

String（19）

否

红票开票日期

码
redInvoiceDate

红票开票日期

yyyy-MM-dd HH:mm:ss
applyTime

填开时间

String(19)

是

红字信息表填开时间
yyyy-MM-dd HH:mm:ss

confirmName

确认方名称

String(100)

否

确认方名称

confirmDate

确认日期

String(10)

否

确认日期，格式 yyyy-MM-dd

itemList

项目信息

数组

是

itemName

项目名称

String(1-100)

是

项目名称

itemCode

税收分类编码

String(1-50)

是

税收分类编码

selfItemCode

自行编码

String(1-50)

否

自行编码

unitName

项目单位

String(1-32)

否

项目单位

specificationMod

规格型号

String(1-40)

否

规格型号

itemPrice

项目单价

String(1-16)

否

保留小数点后 8 位

taxIncludeFlag

含税标志

String（1）

否

0：不含税；

el

1：含税。
默认 0 不含税。
itemQuantity

项目数量

String(1-16)

否

保留小数点后 8 位

itemAmount

项目金额

String(1-16)

是

保留小数点后 2 位

itemTaxRate

税率

String(4)

是

保留小数点后 2 位，例如 0.16

itemDeduction

扣除额

String(1-16)

否

保留小数点后 2 位

itemTaxAmount

项目税额

String(1-16)

是

保留小数点后 2 位

benefitsFlag

优惠政策标识

String(1)

是

0：不享受优惠；
1：享受优惠

zeroTaxRateFlag

零税率标识

String(1)

否

空：非零税率，
0：出口零税，
1：免税，
2：不征税，
3：普通零税率

票通数电发票接口文档
addedTaxSpecial

增值税特殊管理

String(50)

否

增值税特殊管理

orderNo

项目序号

String(11)

是

用来表示项目的先后顺序

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"businessSerialNo": "20210402165800000002",
"resultCode": "0000",
"resultMsg": "红字确认单查询成功！",
"redInfoTableList": [{
"redApplySerialNo": "XXXX5678901234567891",
"taxpayerNum": "91XXXXXXXXXXXXX31",
"applySource": "0",
"redReason": "01",
"processState": "84",
"redInvConfirmationId": "7bba2c42554a4e74b37ee099a64658c7",
"redBillNo": "31010422081000100081",
"sellerTaxpayerNum": "91XXXXXXXXXXXXX31",
"sellerName": "北京 XXXXXXXXXX 公司",
"buyerTaxpayerNum": "91XXXXXXXXXXXXX32",
"buyerName": "北京 XXXXXXXXXX 公司",
"invoiceAmount": "-43.26",
"invoiceTaxAmonut": "-1.54",
"invoiceTotalAmount": "-44.80",
"invoiceKind": "81",
"blueAllEleInvNo": "12345678901212345678",
"blueInvoiceDate": "2022-09-28 08:15:54",
"confirmName": "北京 XXXXXXXXXX 公司",
"confirmDate": "2022-10-19",
"itemList": [{
"itemName": "*油料*喜之郎果冻",
"unitName": "袋",
"specificationModel": "葡萄+苹果 200g",
"itemPrice": "1.72413793",
"taxIncludeFlag": "0",
"itemQuantity": "-1.00000000",
"itemAmount": "-1.72",
"itemTaxRate": "0.16",
"itemTaxAmount": "-0.28",
"itemCode": "1010103020000000000",
"benefitsFlag": "0",
"orderNo": "1"
}, {
"itemName": "*谷物*天然酵母面包甜橙味",

票通数电发票接口文档
"unitName": "袋",
"specificationModel": "70g",
"itemPrice": "5.90909091",
"taxIncludeFlag": "0",
"itemQuantity": "-1.00000000",
"itemAmount": "-5.91",
"itemTaxRate": "0.10",
"itemTaxAmount": "-0.59",
"itemCode": "1010101040000000000",
"benefitsFlag": "0",
"orderNo": "2"
}]
}]
}

2.34.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8022

企业已被禁用

8009

企业注册/修改中不能操作

8995

数据校验不通过(对应参考详细信息)

2.35. 切换数电企业
通过该接口切换一个数电账号下面的关联的企业（只支持同一个地区的切换，比如只能从
四川的企业切换到四川的企业），开票过程中我们会根据当前数电账号绑定的企业的开票情况进
行自动调度切换企业，广东（除深圳）、天津、浙江（除宁波）、湖北的企业无需使用这个接口
做切换。调用该接口前建议调用 2.8.查询数电账号认证状态查询当前数电账号是否可以切换到
当前企业。
举个例子：目前数电账号 zhangsan 在四川省的企业甲做了登录认证，可以使用该接口切换
到四川省的企业乙，无需在企业乙做登录认证，可以在企业乙使用数电账号 zhangsan 开票，开
票过程中可能需要做风险认证。该接口的目的是减少同一个数电账号绑定了同一个地区的多家企
业，在多个企业之间来回做登录认证。

2.35.1. 调用说明
项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/open

备注
POST 方式提交

票通数电发票接口文档
api/changeEnterprise.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/c
hangeEnterprise.pt
字符编码

2.35.2.

UTF-8

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

纳税人识别号

String(15-20)

是

纳税人识别号，要切换到的企
业税号

account

登录账户

String(50)

是

电子税局登录账号

名称

长度

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823"
}

2.35.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

别号
account

登录账户

String(50)

是

电子税局登录账号

resultCode

结果代码

String(4)

是

结果代码
0000：切换成功。
其他：切换失败，失败原因见
resultMsg

resultMsg

结果描述

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"resultCode": "0000",
"resultMsg": "数电企业切换成功"
}

String(不定长)

是

切换结果描述

票通数电发票接口文档

2.35.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开
通

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

3001

电子税局账号尚未在平台登记，请先在平台登记

8047

开票终端已到期，请联系客服续费

8052

当前终端已暂停开票，请联系销售人员

3001

电子税局账号尚未在平台登记，请先在平台登记

2.36. 初始化红字信息确认单
通过该接口调用税局接口初始化红字确认单，将返回蓝票的入账状态、增值税用途代码、
消费税用途代码以及蓝票剩余可冲红的明细和金额。企业可根据返回的初始化红字信息确认单选
择编辑要冲红的发票明细（前提是该发票支持部分冲红）。如果不调用该接口，开具红票的时候
票通系统将会自动调用该接口初始化红字信息确认单以校验开票数据。如果是全额冲红，建议使
用 2.10 快捷冲红数电发票接口。
该接口将要调用税局接口，需保持数电账号处于登录状态。

2.36.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/initRed
InvConfirmation.pt
正式地址：

备注
POST 方式提交

票通数电发票接口文档
https://fpkj.vpiaotong.com/tp/openapi/initRedInvCo
nfirmation.pt
字符编码

UTF-8

2.36.2.

请求报文

请求参数-业务报文部分：
字段

名称

taxpayerNum

纳税人识别号

applySource

申请来源

类型

必填

说明

String(15-20)

是

纳税人识别号

String(1)

否

申请来源。
0：销售方；
1：购买方。
默认 0 销售方。

invoiceCode

税控蓝字发票代

String(10

码

12)

或

否

需冲红原发票代码，冲红增值
税发票管理系统开具的发票或
数电纸票时必填

invoiceNo

税控蓝字发票号

String(8)

否

码

需冲红原发票号码，冲红增值
税发票管理系统开具的发票或
数电纸票时必填

blueAllEleInvNo

蓝字数电票号码

String(20)

否

需冲红蓝字数电票号码，冲红
数电发票时必填

blueInvoiceDate

蓝字发票开票日

String(8)

否

期

蓝字发票开票日期，格式
yyyyMMdd。冲红非票通平台开
具的发票时必填

account

电子税局登录账

String(50)

号

否

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，取蓝票的开票账号，
若蓝票的开票账号不再使用，
取企业现有的。

报文示例：
{
"taxpayerNum": "91511XXXXXXXXXXP0K",
"applySource": "0",
"blueAllEleInvNo": "24512000000013218818",
"account": "185XXXX2888"
}

2.36.3.

响应报文

票通数电发票接口文档
响应参数-业务报文部分：
字段
resultCode

名称
结果代码

类型

必填

说明

String(4)

是

获取结果代码。
0000：获取成功。
其他：获取失败，失败原因
见 resultMsg
以 下 字 段 只 有 resultCode
为 0000 的情况下必填的字
段才会有值

resultMsg

结果描述

String(不定长)

是

确认结果描述

taxpayerNum

纳税人识别号

String(15-20)

是

纳税人识别号

applySource

申请来源

String(1)

否

申请来源。
0：销售方；
1：购买方。

sellerTaxpayerNum

销售方纳税人

String(15-20）

是

销售方纳税人识别号

识别号
sellerName

销售方名称

String(2-40）

是

销售方名称

buyerTaxpayerNum

购买方纳税人

String(15-20）

否

购买方纳税人识别号

识别号
buyerName

购买方名称

String(2-40）

是

购买方名称

invoiceCode

税控蓝字发票

String(10 或 12)

否

需冲红原发票代码，冲红增

代码

值税发票 管理系统开具 的
发票时必填

invoiceNo

税控蓝字发票

String(8)

否

号码

需冲红原发票号码，冲红增
值税发票 管理系统开具 的
发票时必填

blueAllEleInvNo

蓝字数电票号

String(20)

否

码
blueInvoiceDate

蓝字发票开票

红数电发票时必填
String(8)

是

日期
blueInvoiceKind

蓝字发票种类

需冲红蓝字数电票号码，冲
蓝字发票开票日期，
格式 yyyy-MM-dd HH:mm:ss

String(2)

是

蓝字发票种类。
10：增值税电子普通发票；
04：增值税纸质普通发票；
01：增值税纸质专用发票；
08：增值税电子专用发票；
81：数电票（增值税专用发
票）；
82：数电票（普通发票）

blueInvAmount

蓝字发票合计

String(20)

是

保留小数点后 2 位

String(20)

是

保留小数点后 2 位

String(20)

是

保留小数点后 2 位

金额
blueInvTaxAmount

蓝字发票合计
税额

blueInvTotalAmount

蓝字发票价税

票通数电发票接口文档
合计
invoiceAmount

红字冲销金额

String(20)

是

保留小数点后 2 位

invoiceTaxAmount

红字冲销税额

String(20)

是

保留小数点后 2 位

invoiceTotalAmount

红字冲销价税

String(20)

是

保留小数点后 2 位

String(2)

否

特殊票种。

合计
specialInvoiceKind

特殊票种

为空：普票发票；
00：普通发票；
08：成品油发票；
02：农产品收购发票；
03：建筑服务；
04：货物运输服务；
05：不动产销售服务；
06：不动产租赁服务；
09：旅客运输服务；
12：自产农产品销售；
20：农产品
taxRateFlag

税率标识

String(1)

是

税率标识。
0：普通征税；
2：差额征税；
3：差额征税-全额开票

vatPurposeCode

增值税用途代

增值税用途代码

是

码

增值税用途代码。
00：已勾选未确认；
01：已确认；
03：未勾选。

gstPurposeCode

消费税用途代

消费税用途代码

是

码

消费税用途代码。
00：未勾选；
01：已勾选。

entryStatusCode

入账状态代码

入账状态代码

是

入账状态代码。
00：未入账；
01：已入账。

itemList 红冲明细
blueInvOrderNo

蓝字发票明细

String（1-4）

是

序号

蓝字发票明细序号，需要冲
红的蓝字 发票开票项目 的
序号，从 1 开始，

goodsName

项目名称

String(1-100)

是

项目名称

taxClassificationCo

税收分类编码

String(1-50)

是

税收分类编码

specificationModel

规格型号

String(1-40)

否

规格型号

meteringUnit

单位

String(1-20)

否

票面信息

quantity

数量

String(1-16)

否

保留小数点后 8-13 位，数

de

据来自税局
includeTaxFlag

含税标示

unitPrice

单价

String(1)

是

含税标示。0：不含税

String(1-16)

否

保留小数点后 8-13 位，数

票通数电发票接口文档
据来自税局
invoiceAmount

金额

String(20)

是

保留小数点后 2 位

taxRateValue

税率

String(4)

是

票面信息，例：0.05

taxRateAmount

税额

String(20)

是

保留小数点后 2 位

preferentialPolicyF

优惠政策标识

String(1-50)

否

优惠政策标识。

lag

0：不使用；
1：使用。

zeroTaxFlag

零税率标识

String(1)

否

零税率标识。
税率为 0 时该值必填。
空：非零税率，
1：免税；
2：不征税；
3：普通零税率。

vatSpecialManage

增值税特殊管

String(0-100)

理

否

增值税特殊管理。
preferentialPolicyFlag
优惠政策标识位 1 时必填

报文示例：
{
"resultCode": "0000",
"resultMsg": "成功",
"taxpayerNum": "91511XXXXXXXXXXP0K",
"applySource": "0",
"sellerTaxpayerNum": "91511XXXXXXXXXXP0K",
"sellerName": "四川 XXXXXXXXX 分公司",
"buyerTaxpayerNum": "91511XXXXXXXXXXX00H",
"buyerName": "巴中市 XXXX 有限责任公司",
"blueAllEleInvNo": "24512000000013218818",
"blueInvoiceDate": "2024-01-22 09:51:59",
"blueInvoiceKind": "82",
"blueInvAmount": "800",
"blueInvTaxAmount": "0",
"blueInvTotalAmount": "800",
"invoiceAmount": "-800",
"invoiceTaxAmount": "0",
"invoiceTotalAmount": "-800",
"specialInvoiceKind": "00",
"taxRateFlag": "0",
"vatPurposeCode": "03",
"gstPurposeCode": "00",
"entryStatusCode": "00",
"itemList": [{
"blueInvOrderNo": "1",
"taxClassificationCode": "3040201030000000000",

票通数电发票接口文档
"goodsName": "*信息技术服务*电子发票开具平台维护费",
"quantity": "-1.00000000",
"unitPrice": "800.00000000",
"includeTaxFlag": "0",
"invoiceAmount": "-800",
"taxRateValue": "0",
"taxRateAmount": "0",
"preferentialPolicyFlag": "1",
"zeroTaxFlag": "1",
"vatSpecialManage": "免税"
}]
}

2.36.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8001

开票处理失败,开票企业不存在

8002

找不到对应的税号信息

8003

找不到对应的发票

8004

找不到对应的开票企业信息，请检查税号

6005

该蓝票已经冲红，不可冲红

6006

原发票不可冲红

3001

电子税局账号尚未在平台登记，请先在平台登记

2.37. 快捷冲红数电发票（全额冲红、部分冲红）
通过该接口快捷冲红数电发票，支持全额冲红和部分冲红，建议调用该接口之前先调用
2.36 初始化红字信息确认单接口以获取可冲红的发票明细及金额。系统将会缓存红字确认
单初始化信息 30 分钟。调用该冲红接口时，如果未查询到需冲红发票的红字确认单初始化
信息，系统将自动初始化红字信息确认单，若初始化失败，将返回红字确认单尚未初始化的
错误。
规则：

票通数电发票接口文档

● 对应数电蓝字发票带折扣行时，将折扣金额、税额分摊反映在对应的项目名称行上，
再和红字发票进行比对。
● 蓝字增值税专用发票只能用增值税专用发票冲红；蓝字普通发票只能用普通发票进
行冲红。
● 当蓝字发票对应的“增值税优惠用途标签”为“待农产品全额加计扣除”或“已用
于农产品全额加计扣除”的，必须全额红冲；“待农产品部分加计扣除”或“已用于农产品
部分加计扣除”的，第一次红冲只能对未加计部分全额冲红或对这张蓝票全额红冲，第二次
红冲仅允许对剩余部分（即已加计部分）全额红冲。
● “冲红原因”为“开票有误”时，必须全额冲红，并且明细单价、金额、数量必须
和蓝字发票保持一致。
● “红冲原因”为“销货退回”时，只允许修改数量，不允许修改单价。
● “红冲原因”为“服务中止”时，允许修改总金额和数量，不允许修改单价。
● “红冲原因”为“销售折让”时，不能修改单价和数量，单价和数量置空，只允许
修改金额。
● 商品服务编码为以 1、2 开头的冲红原因不允许选择“服务中止”，商品服务编码为
以 3 开头的冲红原因不允许选择“销售退回”，兼营销售则不对红字原因进行控制。

2.37.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/issueR
edAllInv.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/issueRedAll
Inv.pt
字符编码

UTF-8

2.37.2.

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

票通数电发票接口文档
taxpayerNum

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(20)

是

红票请求流水号 4 位平台简称

别号
invoiceReqSerialNo

发票请求流水号

+16 位随机数
invoiceCode

发票代码

String(12)

否

需冲红原发票代码，冲红增值
税发票管理系统开具的发票或
数电纸票时必填

invoiceNo

发票号码

String(8)

否

需冲红原发票号码，冲红增值
税发票管理系统开具的发票或
数电纸票时必填

blueAllEleInvNo

原数电发票号码

String(20)

否

需冲红原数电发票号码，冲红
数电发票时必填

blueInvoiceDate

蓝字发票开票日

String(8)

否

期

蓝字发票开票日期，格式
yyyyMMdd。冲红非票通平台开
具的发票时必填

redReason

冲红原因

String(1-100)

是

冲红原因，不传默认 01
01：开票有误
02：销货退回
03：服务中止
04：销售折让

account

电子税局登录账

String(50)

否

号

电子税局登录账号（手机号或
身份证号）。不传值取蓝票的，
如果没有查询到对应蓝票的数
电账号，将优先取企业当前无
需认证的数电账号

invoiceKind

发票种类代码

String（2）

否

开具红字发票种类。
81：数电票（增值税专用发票）
82：数电票（普通发票）。
默认蓝票的发票种类代码。
此字段目的解决数电发票冲红
增值税发票，只有企业不再使
用增值税系统时才可以跨票种
冲红。
数电票（普通发票）可以冲红
数电票（普通发票）、增值税
电子普通发票、增值税纸质普
通发票。
数电票（增值税专用发票）可
以冲红数电票（增值税专用发
票）、增值税电子专用发票、
增值税纸质专用发票。
如果没填，冲红的是税控发票，
将根据普票冲红普票、专票冲
红专票的规则赋值发票种类。

票通数电发票接口文档
takerName

收票人名称

String(1-10)

否

收票人名称，长度校验规则为
字符长度

takerTel

收票人手机号

String(11)

否

收票人手机号，长度校验规则
为字符长度，若在票通平台设
置了红字发票发送短信且企业
有可用短信条数，填写该值则
发送短信

takerEmail

收票人邮箱

String(4-50)

否

收票人邮箱，长度校验规则为
字符长度，若在票通平台设置
了红字发票发送邮件，填写该
值则发送邮件

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

开票项目列表信息（itemList）
itemList

开票项目列表

数组或集合

是

blueInvOrderNo

蓝字发票明细序

String（1-4）

是

号

蓝字发票明细序号，需要冲红
的蓝字发票开票项目的序号，
从 1 开始，取 2.36 初始化红字
确认单返回的
blueInvOrderNo。将使用该序
号匹配对应的商品名称、税收
分类编码、单价和税率，仅数
量和金额、税额是可以变化的。

goodsName

项目名称

String(1-100)

否

票面信息，取蓝票的

taxClassificationCod

税收分类编码

String(1-50)

否

税收分类编码，取蓝票的

specificationModel

规格型号

String(1-40)

否

规格型号，取蓝票的

meteringUnit

单位

String(1-20)

否

票面信息，取蓝票的

quantity

数量

16 位(精确到 8

否

票面信息，支持到小数点前 8

e

位小数)

位,数量只能为负数。成品油发
票数量不能为空，数量和单价
必须同时为空或同时不为空

includeTaxFlag

含税标示

String(1)

否

含税标示。
0：不含税，
1：含税，
默认为 0 不含税

unitPrice

单价

16 位(精确到 8
位小数)

否

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税,单价只能为正数。
成品油发票数量不能为空，数
量和单价必须同时为空或同时
不为空。如果蓝字发票含有折

票通数电发票接口文档
扣金额的，单价为（原金额+
折扣金额）除以数量
invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税,金额只能为负数。

taxRateValue

税率

4 位(精确到 2

是

位小数)
taxRateAmount

税额

10 位(精确到 2

票面信息，例：0.05。取蓝票
的

否

位小数)

票面信息，如果不填写，默认
会根据税率计算税额，如果填
写此值会直接使用此税额。税
额不能为正数

deductionAmount

差额开票扣除额

10 位(精确到 2

否

位小数)
preferentialPolicyFl

优惠政策标识

String(1-50)

差额开票扣除额。蓝票为差额
票此项需要传值。大于等于 0。

否

ag

优惠政策标识。
0：不使用，
1：使用
零税率标识为 0、1、2 时该值
必填 1。
取蓝票的

zeroTaxFlag

零税率标识

String(1)

否

零税率标识。
税率为 0 时该值必填。
空：非零税率，
1：免税，
2：不征税，
3：普通零税率。
取蓝票的

vatSpecialManage

增值税特殊管理

String(0-100)

否

增值税特殊管理。
preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税。
取蓝票的

报文示例：
被冲红的蓝票如下：

票通数电发票接口文档

{
"taxpayerNum": "98699536313822895951",
"invoiceReqSerialNo": "XXXX5678901234567891",
"blueAllEleInvNo": "24699500000006789129",
"redReason": "01",
"definedData": "自定义数据",
"itemList": [{
"blueInvOrderNo": "1",
"goodsName": "稻谷 1",
"taxClassificationCode": "1070101010100000000",
"specificationModel": "规格 1",
"meteringUnit": "单位 1",
"quantity": "-1.00",
"includeTaxFlag": "0",
"unitPrice": "119.27",
"invoiceAmount": "-119.27",
"taxRateValue": "0.13",
"taxRateAmount": "-10.73"
},
{
"blueInvOrderNo": "2",
"goodsName": "稻谷 2",
"taxClassificationCode": "1070101010100000000",
"specificationModel": "规格 2",
"meteringUnit": "单位 2",
"quantity": "-1.00",
"includeTaxFlag": "0",
"unitPrice": "77.98",
"invoiceAmount": "-77.98",
"taxRateValue": "0.13",
"taxRateAmount": "-7.02"
},

票通数电发票接口文档
{
"blueInvOrderNo": "4",
"goodsName": "稻谷 3",
"taxClassificationCode": "1070101010100000000",
"specificationModel": "规格 3",
"meteringUnit": "单位 3",
"quantity": "-1.00",
"includeTaxFlag": "0",
"unitPrice": "59.63",
"invoiceAmount": "-59.63",
"taxRateValue": "0.13",
"taxRateAmount": "-5.37"
}
]
}

2.37.3.

响应报文

响应参数-业务报文部分：
字段

名称

类型

必填

说明

invoiceReqSerialNo

发票请求流水

String(20)

是

4 位平台简称+16 位随机数

号
qrCodePath

二维码 url

String

是

不定长，Base64 字符串

qrCode

二维码图片

String

否

扫码打开查看发票开票状

Base64
redApplySerialNo

红字确认单申

态
String(20)

请流水号

否

红字确认单申请流水号，如
果受理成功，该值必填。可
以使用该字段调用 2.29.查
看红字发票确认单接口查
看红字确认单信息

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "XXXXXXXXXXXXXXXXXXXXXXXX",
"qrCode": "XXXXXXXXXXXXXXXXXXXXXXXX",
"redApplySerialNo": "P1234567891234567890"
}

2.37.4.

业务错误码

从业务中抽取代码并进行定义

票通数电发票接口文档

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8001

开票处理失败,开票企业不存在

8002

找不到对应的税号信息

8003

找不到对应的发票

8004

找不到对应的开票企业信息，请检查税号

3001

电子税局账号尚未在平台登记，请先在平台登记

6003

对应的发票已作废或作废中

6005

该蓝票已经冲红，不可冲红

6006

原发票不可冲红

6015

红字发票合计金额只能为负数

6016

红字发票税额应小于等于 0

6017

“冲红原因”为“开票有误”时，必须全额冲红，并且明细单价、金额、
数量必须和蓝字发票保持一致

6018

商品税收分类编码为以 1、2 开头的冲红原因不允许选择“服务中止”

6019

商品税收分类编码为以 3 开头的冲红原因不允许选择“销售退回”

6020

当蓝字发票对应的“增值税用途标签”为空、“消费税用途标签”为“未
勾选库存”、“入账状态标签”为“未入账”或“已入账撤销”时，红字
信息只允许销售方发起（除非蓝字发票为收购发票）且只能进行全额冲红

6021

“冲红原因”为“销货退回”或“服务终止”时，只允许修改数量，不允
许修改单价

6022

红字发票开票项目明细金额绝对值不能大于对应蓝字发票明细金额

6023

红字发票开票项目税率要和对应蓝字发票开票项目税率保持一致

6024

红字发票开票项目明细税额绝对值不能大于对应蓝字发票明细税额

6025

对应蓝字发票明细数量不为空时红字发票开票项目明细数量不能为空

6026

红字发票开票项目明细数量绝对值不能大于对应蓝字发票明细数量

6027

初始化红字确认单失败(具体失败原因见实际返回的错误描述)

2.38. 红字确认单申请（支持全额、部分；销方、购方申请）
通过该接口申请红字发票确认单，支持全额申请和部分金额申请，支持销售方申请和购
买方申请。建议调用该接口之前先调用 2.36 初始化红字信息确认单接口以获取可冲红的发
票明细及金额。系统将会缓存红字确认单初始化信息 30 分钟。调用该申请接口时，如果未
查询到需冲红发票的红字确认单初始化信息，系统将自动初始化红字信息确认单，若初始化

票通数电发票接口文档

失败，将返回红字确认单尚未初始化的错误。
规则：
● 对应数电蓝字发票带折扣行时，将折扣金额、税额分摊反映在对应的项目名称行上，
再和红字发票进行比对。
● 蓝字增值税专用发票只能用增值税专用发票冲红；蓝字普通发票只能用普通发票进
行冲红。
● 当蓝字发票对应的“增值税优惠用途标签”为“待农产品全额加计扣除”或“已用
于农产品全额加计扣除”的，必须全额红冲；“待农产品部分加计扣除”或“已用于农产品
部分加计扣除”的，第一次红冲只能对未加计部分全额冲红或对这张蓝票全额红冲，第二次
红冲仅允许对剩余部分（即已加计部分）全额红冲。
● “冲红原因”为“开票有误”时，必须全额冲红，并且明细单价、金额、数量必须
和蓝字发票保持一致。
● “红冲原因”为“销货退回”时，只允许修改数量，不允许修改单价。
● “红冲原因”为“服务中止”时，允许修改总金额和数量，不允许修改单价。
● “红冲原因”为“销售折让”时，不能修改单价和数量，单价和数量置空，只允许
修改金额。
● 商品服务编码为以 1、2 开头的冲红原因不允许选择“服务中止”，商品服务编码为
以 3 开头的冲红原因不允许选择“销售退回”，兼营销售则不对红字原因进行控制。
● 购方申请的情况：只有购方做了用途确认，才允许购买方发起红冲。

2.38.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/redInv
ConfirmationApply.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/redInvConfi
rmationApply.pt

字符编码

UTF-8

备注
POST 方式提交

票通数电发票接口文档

2.38.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称
纳税人识别号

类型

必填

说明

String(15-20)

是

纳税人识别号，销方申请填销
方税号，购方申请填购方税号

redApplySerialNo

红字确认单申请

String(20)

是

流水号

红字确认单申请流水号，4 位
平台简称+16 位随机数，可以
用来调用查询接口查询确认单
信息

invoiceCode

发票代码

String(12)

否

需冲红原发票代码，冲红增值
税发票管理系统开具的发票或
数电纸票时必填

invoiceNo

发票号码

String(8)

否

需冲红原发票号码，冲红增值
税发票管理系统开具的发票或
数电纸票时必填

blueAllEleInvNo

原数电发票号码

String(20)

否

需冲红原数电发票号码，冲红
数电发票时必填

blueInvoiceDate

蓝字发票开票日

String(8)

否

期

蓝字发票开票日期，格式
yyyyMMdd。冲红非票通平台开
具的发票时必填，购方申请必
填

redReason

冲红原因

String(1-100)

是

冲红原因，不传默认 01
01：开票有误
02：销货退回
03：服务中止
04：销售折让

applySource

申请来源

String(1)

是

申请来源。
0：销方申请；
1：购方申请。

account

电子税局登录账
号

String(50)

否

电子税局登录账号（手机号或
身份证号）。不传值取蓝票的，
如果没有查询到对应蓝票的数
电账号，将优先取企业当前无
需认证的数电账号

票通数电发票接口文档
invoiceKind

发票种类代码

String（2）

否

开具红字发票种类。
81：数电票（增值税专用发票）
82：数电票（普通发票）。
默认蓝票的发票种类代码。
此字段目的解决数电发票冲红
增值税发票，只有企业不再使
用增值税系统时才可以跨票种
冲红。
数电票（普通发票）可以冲红
数电票（普通发票）、增值税
电子普通发票、增值税纸质普
通发票。
数电票（增值税专用发票）可
以冲红数电票（增值税专用发
票）、增值税电子专用发票、
增值税纸质专用发票。
如果没填，冲红的是税控发票，
将根据普票冲红普票、专票冲
红专票的规则赋值发票种类。

开票项目列表信息（itemList）
itemList

开票项目列表

数组或集合

是

blueInvOrderNo

蓝字发票明细序

String（1-4）

是

号

蓝字发票明细序号，需要冲红
的蓝字发票开票项目的序号，
从 1 开始，取 2.36 初始化红字
确认单返回的
blueInvOrderNo。将使用该序
号匹配对应的商品名称、税收
分类编码、单价和税率，仅数
量和金额、税额是可以变化的。

goodsName

项目名称

String(1-100)

否

票面信息，取蓝票的

taxClassificationCod

税收分类编码

String(1-50)

否

税收分类编码，取蓝票的

specificationModel

规格型号

String(1-40)

否

规格型号，取蓝票的

meteringUnit

单位

String(1-20)

否

票面信息，取蓝票的

quantity

数量

16 位(精确到 8

否

票面信息，支持到小数点前 8

e

位小数)

位,数量只能为负数。成品油发
票数量不能为空，数量和单价
必须同时为空或同时不为空

includeTaxFlag

含税标示

String(1)

否

含税标示。
0：不含税，
1：含税，
默认为 0 不含税

unitPrice

单价

16 位(精确到 8
位小数)

否

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税

票通数电发票接口文档
标示 includeTaxFlag，定义此
字段为含税,单价只能为正数。
成品油发票数量不能为空，数
量和单价必须同时为空或同时
不为空。如果蓝字发票含有折
扣金额的，单价为（原金额+
折扣金额）除以数量
invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税,金额只能为负数。

taxRateValue

税率

4 位(精确到 2

是

位小数)
taxRateAmount

税额

10 位(精确到 2

票面信息，例：0.05。取蓝票
的

否

位小数)

票面信息，如果不填写，默认
会根据税率计算税额，如果填
写此值会直接使用此税额。税
额不能为正数

deductionAmount

差额开票扣除额

10 位(精确到 2

否

位小数)
preferentialPolicyFl

优惠政策标识

String(1-50)

差额开票扣除额。蓝票为差额
票此项需要传值。大于等于 0。

否

ag

优惠政策标识。
0：不使用，
1:使用
零税率标识为 0、1、2 时该值
必填 1。
取蓝票的

zeroTaxFlag

零税率标识

String(1)

否

零税率标识。
税率为 0 时该值必填。
空：非零税率，
1：免税，
2：不征税，
3：普通零税率。
取蓝票的

vatSpecialManage

增值税特殊管理

String(0-100)

否

增值税特殊管理。
preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税。
取蓝票的

报文示例：
被冲红的蓝票如下：

票通数电发票接口文档

{
"taxpayerNum": "98699536313822895951",
"redApplySerialNo": "XXXX5678901234567891",
"blueAllEleInvNo": "24699500000006789129",
"redReason": "01",
"itemList": [{
"blueInvOrderNo": "1",
"goodsName": "稻谷 1",
"taxClassificationCode": "1070101010100000000",
"specificationModel": "规格 1",
"meteringUnit": "单位 1",
"quantity": "-1.00",
"includeTaxFlag": "0",
"unitPrice": "119.27",
"invoiceAmount": "-119.27",
"taxRateValue": "0.13",
"taxRateAmount": "-10.73"
},
{
"blueInvOrderNo": "2",
"goodsName": "稻谷 2",
"taxClassificationCode": "1070101010100000000",
"specificationModel": "规格 2",
"meteringUnit": "单位 2",
"quantity": "-1.00",
"includeTaxFlag": "0",
"unitPrice": "77.98",
"invoiceAmount": "-77.98",
"taxRateValue": "0.13",
"taxRateAmount": "-7.02"
},
{

票通数电发票接口文档
"blueInvOrderNo": "4",
"goodsName": "稻谷 3",
"taxClassificationCode": "1070101010100000000",
"specificationModel": "规格 3",
"meteringUnit": "单位 3",
"quantity": "-1.00",
"includeTaxFlag": "0",
"unitPrice": "59.63",
"invoiceAmount": "-59.63",
"taxRateValue": "0.13",
"taxRateAmount": "-5.37"
}
]
}

2.38.3.

响应报文

响应参数-业务报文部分：

字段

名称

类型

必填

说明

redApplySerialNo

红字信息表申请流

String(20)

是

可以用来调用查询接口查询红

水号

字信息表单号

redBillNo

红字信息表编号

String（20）

否

申请成功此值必填

processState

红字确认单状态

String(2)

否

红字发票信息确认单确认状。
0：审核中，调用 2.29 查看红
字发票确认单接口查询结果；
4：处理失败；
5：已冲红；
6：冲红中；
7：冲红失败；
81：无需确认，可冲红；
82：销方录入待购方确认；
83：购方录入待销方确认；
84：购销双方已确认，可冲红；
85：作废（销方录入购方否认）
；
86：作废（购方录入销方否认）
；
87：作废（超 72 小时未确认）；
88：作废（发起方撤销）；
89：作废（确认后撤销）；
90：作废（异常凭证）。

statusMsg

报文示例：
{

状态描述

String（500）

否

状态描述

票通数电发票接口文档
"redApplySerialNo": "XXXX5678901234567891",
"redBillNo": "31010422081000100081",
"processState": "81"
}

2.38.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8001

开票处理失败,开票企业不存在

8002

找不到对应的税号信息

8003

找不到对应的发票

8004

找不到对应的开票企业信息，请检查税号

3001

电子税局账号尚未在平台登记，请先在平台登记

6003

对应的发票已作废或作废中

6005

该蓝票已经冲红，不可冲红

6006

原发票不可冲红

6015

红字发票合计金额只能为负数

6016

红字发票税额应小于等于 0

6017

“冲红原因”为“开票有误”时，必须全额冲红，并且明细单价、金额、
数量必须和蓝字发票保持一致

6018

商品税收分类编码为以 1、2 开头的冲红原因不允许选择“服务中止”

6019

商品税收分类编码为以 3 开头的冲红原因不允许选择“销售退回”

6020

当蓝字发票对应的“增值税用途标签”为空、“消费税用途标签”为“未
勾选库存”、“入账状态标签”为“未入账”或“已入账撤销”时，红字
信息只允许销售方发起（除非蓝字发票为收购发票）且只能进行全额冲红

6021

“冲红原因”为“销货退回”或“服务终止”时，只允许修改数量，不允
许修改单价

6022

红字发票开票项目明细金额绝对值不能大于对应蓝字发票明细金额

6023

红字发票开票项目税率要和对应蓝字发票开票项目税率保持一致

6024

红字发票开票项目明细税额绝对值不能大于对应蓝字发票明细税额

6025

对应蓝字发票明细数量不为空时红字发票开票项目明细数量不能为空

6026

红字发票开票项目明细数量绝对值不能大于对应蓝字发票明细数量

6027

初始化红字确认单失败(具体失败原因见实际返回的错误描述)

票通数电发票接口文档

2.39. 机动车车辆信息查询
通过该接口查询机车架号是否可以开具发票。在开具机动车销售统一发票前，需要调用
此接口来补全字段。

2.39.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryM
otorVehicleInfo.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryMotorV
ehicleInfo.pt
字符编码

UTF-8

2.39.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

别号
account

数电账号

String(50)

否

数电账号，电子税局登录账号

vehicleIdentificatio

车辆识别代号/车

String(17)

是

车辆识别代号/车架号码

nNo

架号码

invoiceKind

发票种类

String（2）

是

发票种类
81：数电票（增值税专用发票）
87：数电纸质发票（机动车销
售统一发票）

报文示例：
{
"taxpayerNum": "91XX5678901234567891",
"account": "185XXXXXX",
"vehicleIdentificationNo": "LURTAVBA4FA078503",
"invoiceKind": "87"
}

票通数电发票接口文档

2.39.3.

响应报文

响应参数-业务报文部分：

字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识别

String(15-20)

是

销售方纳税人识别号

String(17)

是

车辆识别代号/车架号码

String(4)

是

结果代码。

号
vehicleIdentificati

车辆识别代号/车

onNo

架号码

resultCode

结果代码

0000：查询成功。
其他：查询失败，失败原因
见 resultMsg 。 resultCode
为 0000 时以下必填字段才会
有值。
resultMsg

结果描述

String(不定长)

是

查询结果描述

productionPlace

产地

String(10)

否

产地

tonnage

车辆吨位

String(10)

否

车辆吨位

vehicleTypeCode

车辆类型代码

String(100)

是

车辆类型代码

vehicleSourceCode

车辆来源代码

String(100)

否

车辆来源代码

brandAndModel

厂牌型号

String(140)

是

厂牌型号

engineNo

发动机号码

String(160)

是

发动机号码

qualifiedNo

合格证号

String(50)

是

合格证号

ledgerVehicleIdNoUu

机动车台账车辆识

String(100)

是

机动车台账车辆识别代号

id

别代号 uuid

importCertificateNo

进口证明书号

String(16)

否

进口证明书号

manufacturer

生产企业名称

String(100)

是

生产企业名称

commercialInspectio

商检单号

String(60)

否

商检单号

dutyPaidProofNo

完税凭证号码

String(100)

否

完税凭证号码

maxCapacity

限乘人数

String(11)

是

限乘人数

taxAuthorityNo

主管税务机关代码

String(20)

是

主管税务机关代码

taxAuthorityName

主管税务机关名称

String(100)

是

主管税务机关名称

uuid

nNo

报文示例：
{
"taxpayerNum": "91XX5678901234567891",
"vehicleIdentificationNo": "LURTAVBA4FA078503",
"resultCode": "0000",
"resultMsg": "查询成功",
"productionPlace": "",
"tonnage": "0",
"vehicleTypeCode": "乘用车及客车",

票通数电发票接口文档
"vehicleSourceCode": "00",
"brandAndModel": "红旗牌 HQ00000001",
"engineNo": "AAPGPGM000588",
"qualifiedNo": "YU633PA000078588",
"ledgerVehicleIdNoUuid": "1702998000745035859",
"importCertificateNo": "",
"manufacturer": "中国第一汽车集团有限公司",
"commercialInspectionNo": "",
"dutyPaidProofNo": "",
"maxCapacity": "5",
"taxAuthorityNo": "144011105",
"taxAuthorityName": "国家税务总局广州市白云区税务局石井税务所"
}

2.39.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

3001

销售方电子税局账号尚未在发票平台完成绑定，请先在发票平台完成绑定

2.40. 开具数电专票机动车特定业务
通过该接口开具数电票（增值税专用发票）机动车特定业务。

2.40.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt

字符编码

UTF-8

备注
POST 方式提交

票通数电发票接口文档

2.40.2.

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
81：数电票（增值税专用发票）

buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长
度，不能包含<>字符

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字。开具农产品
收购发票时必填。

naturalPersonFlag

是否开具给自

String（1）

否

然人

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人
识别号”)，该张发票将在受票
方自然人个人票夹中展示。

buyerAddress

购买方地址

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度，
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerTel

购买方电话

String(1-20)

否

票面信息，无默认，长度校验
规则为字符长度，只能是数字、
中英文括号、中英文横杠。
buyerAddress、buyerTel 两个
字段总长度不超 100 位 GBK 字
节。

buyerBankName

购买方开户行

String(1-100)

否

票面信息，无默认，长度校验
规则为 GBK 字节长度。

票通数电发票接口文档
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。
buyerBankAccount

购买方银行账

String(1-50)

否

号

票面信息，无默认，长度校验
规则为字符长度。
buyerBankName、
buyerBankAccount 两个字段总
长度不超 100 位 GBK 字节。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的开户行及
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

sellerBankAccount

销货方银行账
号

String(1-50)

否

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银
行账号信息（如有多条取默认
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

票通数电发票接口文档
showBuyerBank

是否显示购方

String(1)

否

是否显示购方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示

showSellerBank

是否显示销方

String(1)

否

是否显示销方开户行及账号到

开户行及账号

发票备注，默认 0 不显示

到发票备注

0:不显示
1:显示
注：最终版式文件销方银行账
户取税局维护的开户行及账号

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该复核人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度。若需要显示到备注，需
要在企业版开票设置进行设置

takerName

收票人名称

String(1-10)

否

客户信息，长度校验规则为字
符长度

takerTel

收票人手机号

String(11)

否

客户信息，长度校验规则为字
符长度

takerEmail

收票人邮箱

String(4-50)

否

客户信息，填写后，票通会给
客户发送发票邮件，不填写则
不发送，长度校验规则为字符
长度

specialInvoiceKind

特殊票种

String(2)

是

14：机动车

remark

备注

String(0-200)

否

备注，校验规则字符长度

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口

票通数电发票接口文档
中会按照定义返回，长度校验
规则为字符长度
tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符
长度。如果没有传值，票通平
台默认使用发票请求流水号
invoiceReqSerialNo 赋值

shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）
itemList

开票项目列表

goodsName

货物名称

数组或集合

是

最大 2000 行（包括折扣行）。

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCo

对应税收分类

de

编码

specificationModel

车辆识别代号/

String(1-50)

是

统一编码表的信息，长度校验
规则为字符长度

String(17)

是

车架号码

车辆识别代号/车架号码，建议
使用 2.39 机动车车辆信息查
询接口查询该车辆识别代号/
车架号码是否可开票

meteringUnit

单位

String(1-20)

是

单位，只能填“辆”

quantity

数量

1位

是

只能为 1

includeTaxFlag

含税标示

String(1)

否

0：不含税，1：含税，默
认为 0 不含税

unitPrice

单价

16 位(精确到 8

是

票面信息，支持到小数点前 8

位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税

invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

discountAmount

折扣金额

10 位(精确到 2
位小数)

否

该商品行的折扣金额，传负数。
差额征税-差额开票不支持折
扣。

票通数电发票接口文档
discountTaxRateAmou

折扣税额

10 位(精确到 2

nt

否

位小数)

deductionAmount

差额开票扣除

10 位(精确到 2

金额

票面信息，使用折扣金额进行
计算

否

位小数)

差额开票扣除金额，填写时为
差额开票。如果不填，
variableLevyProofList 有数
据，将按差额开票。

preferentialPolicyF

优惠政策标识

String(1-50)

否

lag

空：不使用，1:使用
零税率标识为 1、2 时该值必填
1。增值税特殊管理有值时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税、简易征收等

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "81",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"buyerAddress": "北京市海淀区 XXXXXX15 号 5 层",
"buyerTel": ""010-1234567",
"buyerBankName": "XXXX 银行",
"buyerBankAccount": "9878XXXXXX45666",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "备注",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"takerName": "XXX",
"takerTel": "XXXXXXX",
"takerEmail": "XXXXX@qq.com",
"itemList": [{
"goodsName": "超豪华小汽车",
"taxClassificationCode": "1090305010800000000",

票通数电发票接口文档
"specificationModel": "LVA12345678901234",
"meteringUnit": "辆",
"quantity": "1",
"includeTaxFlag": "1",
"unitPrice": "1000000",
"invoiceAmount": "1000000.00",
"taxRateValue": "0.13"
}
]
}

2.40.3.

响应报文

响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水

类型

必填

说明

String(20)

是

4 位平台简称+16 位随机数

String

否

不定长，Base64 字符串，电子

号
qrCodePath

二维码 url

发票该值必传
qrCode

二维码图片

String

否

Base64 字符串

扫码查看发票开票状态，二维
码的内容是 qrCodePath，电子
发票该值必传

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890",
"qrCodePath": "xxxxxxxxxxxxx",
"qrCode": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

2.40.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

票通数电发票接口文档
8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

8017

折扣税额和税率不匹配

8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

2.41. 查询纸质未开发票代码号码
通过该接口查询当前未开具的纸票代码号码。

2.41.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryP
aperInvStock.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryPaperI
nvStock.pt
字符编码

UTF-8

2.41.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(50)

否

数电账号，电子税局登录账号

别号
account

数电账号

票通数电发票接口文档
invoiceKind

发票种类代码

String（2）

是

发票种类代码
87：数电纸质发票（机动车销
售统一发票）

报文示例：
{
"taxpayerNum": "91XX5678901234567891",
"account": "185XXXXXX",
"invoiceKind": "87"
}

2.41.3.

响应报文

响应参数-业务报文部分：

字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(4)

是

结果代码。

别号
resultCode

结果代码

0000：查询成功。
其他：查询失败，失败原因见
resultMsg 。 resultCode 为
0000 时以下必填字段才会有
值。
resultMsg

结果描述

String(不定长)

是

查询结果描述

invoiceType

发票种类

String（12）

是

发票种类

invoiceCode

发票代码

String(12)

是

发票代码

invoiceNo

发票号码

String(8)

是

发票号码

invoiceSurplusNum

剩余份数

String(8)

是

剩余份数

报文示例：
{
"taxpayerNum": "91XX5678901234567891",
"resultCode": "0000",
"resultMsg": "查询成功",
"invoiceType": "03",
"invoiceCode": "123456789012",
"invoiceNo": "10000001",
"invoiceSurplusNum": "99"
}

票通数电发票接口文档

2.41.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

3001

销售方电子税局账号尚未在发票平台完成绑定，请先在发票平台完成绑定

2.42. 开具数电纸质发票（机动车销售统一发票）
调用该接口之前，需要调用 2.39 机动车车辆信息查询接口根据车辆识别代号/车架号码
查询车辆相关信息。

2.42.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/invoiceBlue.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/invoiceBlue.pt
字符编码

2.42.2.

UTF-8

请求报文

请求参数-业务报文部分：
字段

名称

类型

必填

说明

是

销售方纳税人识别号,长度校

开票基本信息
taxpayerNum

销售方纳税人

String(15-20)

识别号

验规则为字符长度，只能包括
大写英文字母或数字

invoiceReqSerialNo

发票请求流水

String(20)

是

号

4 位平台简称+16 位随机数,长
度校验规则为字符长度，只能
包括英文字母或数字，唯一

invoiceIssueKindCode

开具发票种类

String(1-2)

是

开具发票种类。
87：数电纸质发票（机动车销

票通数电发票接口文档
售统一发票）
buyerName

购买方名称

String(1-100)

是

票面信息，发票抬头，无默认
长度校验规则为 GBK 字节长
度，不能包含<>字符

buyerTaxpayerNum

购买方纳税人

String(15-20)

否

识别号

票面信息，无默认,长度校验规
则为字符长度，只能包括大写
英文字母或数字

naturalPersonFlag

是否开具给自

String（1）

否

然人

是否开具给自然人。默认 0。
0：否；
1：是。电子税局勾选“是”时
的提示：请您确认受票方为自
然人，并在纳税人识别号档次
填入“自然人纳税人识别号”
(自然人受票方可登录个人所
得税 APP 查看“自然人纳税人
识别号”)，该张发票将在受票
方自然人个人票夹中展示。

sellerAddress

销货方地址

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的企业开票
地址电话信息（如有多条取默
认的，没有默认取最后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerTel

销货方电话

String(1-20)

否

票面信息，长度校验规则为字
符长度，只能是数字、中英文
括号、中英文横杠。如果不传
值，取平台企业开票设置中的
企业开票地址电话信息（如有
多条取默认的，没有默认取最
后一条）。
sellerAddress、sellerTel 两
个字段总长度不超 100 位 GBK
字节。

sellerBankName

销货方开户行

String(1-100)

否

票面信息，
长度校验规则为 GBK
字节长度。如果不传值，取平
台企业开票设置中的开户行及
银行账号信息（如有多条取默
认的，如有一条则使用该开户
行及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

票通数电发票接口文档
sellerBankAccount

销货方银行账

String(1-50)

否

号

票面信息，长度校验规则为字
符长度。如果不传值，取平台
企业开票设置中的开户行及银
行账号信息（如有多条取默认
的，如有一条则使用该开户行
及银行账号信息）。
sellerBankName、
sellerBankAccount 两个字段
总长度不超 100 位 GBK 字节。

account

开票人税局账

String(50)

否

号

电子税局登录账号（手机号或
身份证号），必须是通过 2.1
接口进行用户登记的账号。如
果不填，随机取已在票通平台
登记的账号。

casherName

收款人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的收款人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该收款人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度

reviewerName

复核人名称

String(1-16)

否

票面信息，如果不填写，则默
认开票设置中的复核人（如果
设置了多条，取默认的，没有
默认的则为空；如果有一条，
则使用该复核人）；如果填入
则根据填入信息填入票面信
息，长度校验规则为 GBK 字节
长度

remark

备注

String(0-200)

否

备注，固定值“一车一票”

definedData

自定义数据

String(0-200)

否

自定义数据，在发票推送接口
中会按照定义返回，长度校验
规则为字符长度

tradeNo

订单号

String(0-200)

否

订单号，长度校验规则为字符
长度。如果没有传值，票通平
台默认使用发票请求流水号
invoiceReqSerialNo 赋值

shopNum

门店编号

String（6-20）

否

门店编号，取值集团版门店编
号，没有则不用填写。只允许
字母、数字

开票项目列表信息（itemList）,只能一行
itemList

开票项目列表

数组或集合

是

只能一行

票通数电发票接口文档
goodsName

货物名称

String(1-100)

是

票面信息，此项不填写时默认
为 taxClassificationCode 对
应的名称，长度校验规则为字
符长度

taxClassificationCo

对应税收分类

de

编码

quantity

数量

String(1-50)

是

统一编码表的信息，长度校验
规则为字符长度

16 位(精确到 8

否

位小数)

票面信息，支持到小数点前 8
位。可以不填写，填写的话必
须是 1

includeTaxFlag

含税标示

unitPrice

单价

String(1)

否

0：不含税，1：含税，默
认为 0 不含税

16 位(精确到 8

否

票面信息，支持到小数点前 8

位小数)

位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

invoiceAmount

金额

10 位(精确到 2

是

位小数)

票面信息，支持到小数点前 8
位,默认为不含税，可通过含税
标示 includeTaxFlag，定义此
字段为含税。

taxRateValue

税率

4 位(精确到 2 位

是

票面信息，例：0.13

否

票面信息，如果不填写，默认

小数)
taxRateAmount

税额

10 位(精确到 2
位小数)

会根据税率计算税额，如果填
写此值会直接使用此税额,可
通过含税标示
includeTaxFlag，定义此字段
为含税

preferentialPolicyF

优惠政策标识

String(1-50)

否

lag

空：不使用，1:使用
零税率标识为 0、1、2 时该值
必填 1。

zeroTaxFlag

零税率标识

String(1)

否

税率为 0 时该值必填。空：非
零税率，
1：免税，
2：不征税，
3：普通零税率

vatSpecialManage

增值税特殊管

String(0-100)

否

理

preferentialPolicyFlag 优惠
政策标识位 1 时必填，填免税、
不征税

机动车信息（motorVehicle）开具机动车销售统一发票时必填
motorVehicle

机动车信息

Object

是

机动车销售统一发票时必填

brandAndModel

厂牌型号

String(140)

是

厂牌型号，校验 GBK 字节长度

productionPlace

产地

String(10)

否

产地，校验 GBK 字节长度

qualifiedNo

合格证号

String(50)

否

合格证号，校验 GBK 字节长度

importCertificateNo

进口证明书号

String(16)

否

进口证明书号，校验 GBK 字节

票通数电发票接口文档
长度
commercialInspectio

商检单号

String(60)

否

商检单号，校验 GBK 字节长度

发动机号码

String(160)

否

发动机号码，校验 GBK 字节长

nNo
engineNo

度
vehicleIdentificati

车辆识别代号/

onNo

车架号码

taxAuthorityNo

主管税务机关

String(17)

是

车辆识别代号/车架号码

String(20)

是

主管税务机关代码

String(100)

是

主管税务机关名称

String(100)

否

完税凭证号码，校验 GBK 字节

代码
taxAuthorityName

主管税务机关
名称

dutyPaidProofNo

完税凭证号码

长度
tonnage

车辆吨位

String(10)

否

车辆吨位，校验 GBK 字节长度

maxCapacity

限乘人数

String(11)

否

限乘人数，校验 GBK 字节长度

报文示例：
{
"taxpayerNum": "91XXXXXXXXXXXXX31",
"invoiceReqSerialNo": "XXXX5678901234567890",
"invoiceIssueKindCode ": "82",
"buyerName": "北京 XXXXX 技术有限公司",
"buyerTaxpayerNum": "9211XXXXXXX365M",
"sellerAddress": "北京海淀区 XXX 路 15 号",
"sellerTel": "010-7654321",
"sellerBankName": "XXXXX 银行",
"sellerBankAccount": "6217XXXXXXX0678",
"remark": "一车一票",
"tradeNo": "DEMO1111111111",
"definedData": "自定义数据",
"account": "185XXXXXXXX",
"itemList": [{
"goodsName": "电动汽车",
"taxClassificationCode": "1090309000000000000",
"includeTaxFlag": "1",
"invoiceAmount": "300000.00",
"taxRateValue": "0.13"
}],
"motorVehicle": {
"brandAndModel": "红旗牌 HQ00000001",
"productionPlace": "",
"qualifiedNo": "YU633PA000078588",
"importCertificateNo": "",
"commercialInspectionNo": "",

票通数电发票接口文档
"engineNo": "AAPGPGM000588",
"vehicleIdentificationNo": "LURTAVBA4FA078503",
"taxAuthorityNo": "144011105",
"taxAuthorityName": "国家税务总局广州市白云区税务局石井税务所",
"dutyPaidProofNo": "",
"tonnage": "",
"maxCapacity": "5"
}
}

2.42.3.

响应报文

响应参数-业务报文部分：
字段

名称

invoiceReqSerialNo

发票请求流水

类型

必填

String(20)

是

说明
4 位平台简称+16 位随机数

号

报文示例：
{
"invoiceReqSerialNo": "XXXX5678901234567890"
}

2.42.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

9997

纳税人识别号无效

8993

开票请求处理失败(对应参考返回的详细信息)

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8004

找不到对应的开票企业信息，请检查税号

8005

找不到对应的税收分类编码，请参照税收分类编码表，检查编码号

8006

找不到对应的税率，请输入正确的税率

8007

折扣金额不可大于对应商品行金额/折扣金额和折扣率不匹配

8008

优惠政策不为空时，增值税特殊管理不能为空

8009

企业注册/修改中不能开票

8011

税额与税率不匹配

8012

差额开票抵扣金额过大，不能超过价税合计金额

8013

差额开票只允许单个商品行

8014

税率为 0 时，零税率标示必须选择

8015

不存在对应的零税率标示

8016

单价数量金额不匹配

票通数电发票接口文档
8021

发票请求流水号已存在，请更换发票请求流水号

8040

该发票请求流水号正在处理中，请稍后查询开票结果

3001

销售方电子税局账号尚未在发票平台完成绑定，请先在发票平台完成绑定

2.43. 获取数电账号绑定微信二维码
通过该接口获取数电账号绑定微信的二维码，扫描二维码可以将数电账号和微信号绑
定，该数电账号开票时若触发登录预警或风险预警，将会通过微信公众号消息通知绑定该数
电账号的微信用户，用户可以通过微信公众号完成登录或风险认证。一个数电账号只可以使
用一个微信号绑定，最后扫描绑定二维码的微信用户将绑定该数电账号，之前绑定的将会自
动解绑。

2.43.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/getTax
BureauAccountBindQrcode.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/getTaxBurea
uAccountBindQrcode.pt
字符编码

UTF-8

2.43.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(50)

是

数电账号，电子税局登录账号

别号
account

数电账号

报文示例：
{
"taxpayerNum": "91XX5678901234567891",
"account": "185XXXXXX"
}

票通数电发票接口文档

2.43.3.

响应报文

响应参数-业务报文部分：

字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(50)

是

电子税局登录账号（手机号或

别号
account

登录账户

身份证号）
resultCode

结果代码

String(4)

是

获取结果代码。
0000：获取成功。
其他：获取失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

是

获取结果描述

qrcodeImgUrl

二维码图片 url

String(不定长)

否

二维码图片 url，base64 字符
串，访问该 url 直接可以返回
二维码图片

qrcodePath

二维码内容

String(不定长)

否

二维码内容，base64 字符串，
需要自行转为二维码

failureTime

失效时间

String(不定长)

否

失效时间。
格式 yyyy-MM-dd HH:mm:ss

报文示例：
{
"taxpayerNum": "500102192801051381",
"account": "185XXXXXX",
"resultCode": "0000",
"resultMsg": "获取成功",
"qrcodePath": "aHR0cDovL3dlaXhpbi5xcS5jb20vcS8wMnNMRTB0enY0YjYtMWQzQXUxQWNI",
"qrcodeImgUrl":
"aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL2NnaS1iaW4vc2hvd3FyY29kZT90aWNrZXQ9Z1FGVjhEd0FBQUFBQUFB
QUFTNW9kSFJ3T2k4dmQyVnBlR2x1TG5GeExtTnZiUzl4THpBeWMweEZNSFI2ZGpSaU5pMHhaRE5CZFRGQlkwZ0FBZ
1JEVi1kakF3UUFqU2NB",
"failureTime": "2023-03-25 20:11:04"
}

2.43.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

票通数电发票接口文档
9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

3001

销售方电子税局账号尚未在发票平台完成绑定，请先在发票平台完成绑定

2.44. 查询建筑服务跨区域涉税事项报验管理编号信息
如果开具建筑服务发票时，跨地市标识为“是”时，需要填写跨区域涉税事项报验管理
编号，通过该接口可以查询跨区域涉税事项报验管理编号信息。

2.44.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 方式提交

http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryC
rossRegionTaxRelatedManageInfo.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryCrossR
egionTaxRelatedManageInfo.pt
字符编码

UTF-8

2.44.2.

请求报文

请求参数-业务报文部分：
必
字段

名称

类型

说明
填

taxpayerNum

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

别号
account

数电账号

String(50)

否

数电账号，电子税局登录账号

taxDeclareManageNumPrefix

跨区域涉税事项

String(0-50)

否

跨区域涉税事项报验管理编号

报验管理编号前

前缀

缀
taxDeclareManageNumYear

跨区域涉税事项

String(0-50)

否

报验管理编号年

跨区域涉税事项报验管理编号
年份

份
taxDeclareManageNumNo

跨区域涉税事项
报验管理编号具
体的号

String(0-50)

否

跨区域涉税事项报验管理编号
具体的号

票通数电发票接口文档
counterpartyTaxpayerNum

合同对方纳税人

String(6-20)

否

合同对方纳税人识别号

String(0-100)

否

合同对方纳税人名称

String(6)

否

跨区域经营地行政区划代码。

识别号
counterpartyTaxpayerName

合同对方纳税人
名称

crossRegionCode

跨区域经营地行
政区划代码

taxRelatedEffectiveStart

例：北京市东城区：110101

跨区域涉税事项

String(19)

否

有效期起
taxRelatedEffectiveEnd

跨区域涉税事项有效期起。
格式 yyyy-MM-dd HH:mm:ss

跨区域涉税事项

String(19)

否

有效期至

跨区域涉税事项有效期至。
格式 yyyy-MM-dd HH:mm:ss

projectName

工程项目名称

String(0-100)

否

工程项目名称

entryDateStart

报告开具期限起

String(19)

是

报告开具期限起。
格式 yyyy-MM-dd HH:mm:ss

entryDateEnd

报告开具期限止

String(19)

是

报告开具期限止。
格式 yyyy-MM-dd HH:mm:ss

pageNum

页码

int

是

页码

pageSize

每页数据条数

int

是

每页数据条数。数值：10、20、
50

税局截图：

报文示例：
{
"taxpayerNum": "98699536313822895951",
"account": "185XXXXXX",
"taxRelatedEffectiveStart": "2024-08-27 00:00:00",
"taxRelatedEffectiveEnd": "2024-08-27 23:59:59",
"entryDateStart": "2024-08-27 00:00:00",
"entryDateEnd": "2024-08-27 23:59:59",
"pageNum": "1",
"pageSize": "10"
}

2.44.3.

响应报文

响应参数-业务报文部分：

字段
taxpayerNum

名称

类型

必填

销售方纳税人识

String(15-20)

是

说明
销售方纳税人识别号

票通数电发票接口文档
别号
resultCode

结果代码

String(4)

是

结果代码。
0000：查询成功。
其他：查询失败，失败原因见
resultMsg 。 resultCode 为
0000 时以下必填字段才会有
值。

resultMsg

结果描述

String(不定长)

是

查询结果描述

total

总条数

int

否

总条数

pageNum

页码

int

否

页码

pageSize

每页数据条数

int

否

每页数据条数

taxRelatedManageInfoList 跨区域涉税事项报验管理信息明细
taxRelatedManageInfoL

跨区域涉税事项

ist

报验管理信息明

数组

否

跨区域涉税事项报验管理信
息明细

细
taxDeclareManageNum

跨区域涉税事项

String(0-50)

否

报验管理编号

跨区域涉税事项报验管理编
号

registrationNum

登记序号

String(0-50)

否

登记序号

streetAdminCode

街道行政代码

String(0-50)

否

街道行政代码

streetAdminName

街道行政名称

String(0-50)

否

街道行政名称

crossRegionCode

跨区域经营地行

String(6)

否

跨区域经营地行政区划代码

政区划代码
crossRegionBusiAddr

跨区域经营地址

String(0-200)

否

跨区域经营地址

projectName

工程项目名称

String(0-100)

否

工程项目名称

updateTime

修改日期

String(19)

否

修改日期。
格式 yyyy-MM-dd HH:mm:ss

validFlag

有效标志

String(1)

否

有效标志
Y：有效；
N：无效

destroyFlag

作废标志

String(1)

否

作废标志
N：未作废；
Y：已作废

taxRelatedEffectiveStart

跨区域涉税事项

String(19)

否

有效期起
taxRelatedEffectiveEnd

跨区域涉税事项

格式 yyyy-MM-dd HH:mm:ss
String(19)

有效期止

报文示例：
{
"taxpayerNum": "98699536313822895951",
"resultCode": "0000",
"resultMsg": "查询成功",
"total": "1",
"pageNum": "1",

跨区域涉税事项有效期起。

否

跨区域涉税事项有效期止。
格式 yyyy-MM-dd HH:mm:ss

票通数电发票接口文档
"pageSize": "10",
"taxRelatedManageInfoList": [{
"taxDeclareManageNum": "郑税一分 税跨报 〔2023〕 31000 号",
"registrationNum": "10114101000241901001",
"crossRegionCode": "410491",
"crossRegionBusiAddr": "平顶山市 XXXX 处理厂",
"updateTime": "2023-05-06 11:56:21",
"validFlag": "Y",
"destroyFlag": "N",
"taxRelatedEffectiveStart": "2025-04-28 00:00:00",
"taxRelatedEffectiveEnd": "2025-06-30 00:00:00"
}]
}

2.44.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

3001

销售方电子税局账号尚未在发票平台完成绑定，请先在发票平台完成绑定

2.45. 查询数电账号列表
根据该接口查询某个税号绑定的数电账号信息。

2.45.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/listTaxBureauAccou
nt.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/listTaxBureauAccount.pt

字符编码

UTF-8

备注
POST 方式提交

票通数电发票接口文档

2.45.2.

请求报文

请求参数-业务报文部分：
字段

名称

taxpayerNum

纳税人识别号

类型

必填

说明

String(15-20)

是

销售方纳税人识别号,长度校
验规则为字符长度，只能包括
大写英文字母或数字

account

数电账号

String(50)

否

电子税局登录账号

类型

必填

说明

报文示例：
{
"taxpayerNum": "9151XXXXXXXX652"
}

2.45.3.

响应报文

响应参数-业务报文部分：
字段

名称

数组或列表
taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

account

登录账户

String(50)

是

电子税局登录账号

name

姓名

String(20)

是

姓名

identityType

登录身份类型

String(2)

是

登录身份类型。
01：法定代表人
02：财务负责人
03：办税员
04：涉税服务人员
05：管理员
07：领票人
09：开票员
99：其他人员

operationProposed

操作建议

String(1)

是

操作建议,注意：该操作建议是
根据账号状态和不同地区的登
录方式区分出来的,并非和账
号状态一一对应。
0：无需认证；
1：需扫码认证；
2：需扫码或短信认证；
3：需短信认证

authStatus

账号状态

String(1)

是

账号状态
0：无需认证；

票通数电发票接口文档
1：风险认证；
2：登录认证；
3：风险+登录认证
注：目前是根据调用税局返回
的结果判断的账号状态，风险
认证只有开具发票才能得知。
switchable

可切换状态

String(1)

是

当前企业是否可切换。
0：不可切换；
1：可切换，代表该数电账号在
该地区的其他企业有登录状
态，当前企业不需要做登录认

证，如果有开票，会自动调度
切换到当前企业开票。
wechatUserBindSta

是否绑定微信公众号

String(1)

是

是否绑定票通云服务微信公众
号。

tus

0：否；
1：是。
lastAuthSuccTime

最新认证成功（登录认

String(19)

否

证或风险认证）时间

最新认证成功（登录认证或风
险认证）时间
格式 yyyy-MM-dd HH:mm:ss

loginAuthStatus

登录认证状态

String(1)

是

登录认证状态。
0：未登录；
1：已登录

lastLoginAuthTime

最新登录认证时间

String(19)

否

最新登录认证时间。
格式 yyyy-MM-dd HH:mm:ss

riskAuthStatus

风险认证状态

String(1)

是

风险认证状态。
0：未认证；
1：已认证

lastRiskAuthTime

最新风险认证时间

String(19)

否

最新风险认证时间。
格式 yyyy-MM-dd HH:mm:ss

报文示例：
[{
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6823",
"name": "张三",
"identityType": "09",
"authStatus": "0",
"operationProposed": "0",
"switchable": "0",
"wechatUserBindStatus": "1",
"lastAuthSuccTime": "2024-08-26 18:12:18",
"loginAuthStatus": "1",
"lastLoginAuthTime": "2024-07-25 19:18:32",

票通数电发票接口文档
"riskAuthStatus": "1",
"lastRiskAuthTime": "2024-08-26 18:12:18"
}, {
"taxpayerNum": "9151XXXXXXXX652",
"account": "189XXXX6828",
"name": "李四",
"identityType": "09",
"authStatus": "2",
"operationProposed": "2",
"switchable": "0",
"wechatUserBindStatus": "0",
"lastAuthSuccTime": "2024-08-26 18:12:18",
"loginAuthStatus": "0",
"lastLoginAuthTime": "2024-07-25 19:18:32",
"riskAuthStatus": "1",
"lastRiskAuthTime": "2024-08-26 18:12:18"
}]

2.45.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）
8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8004

企业尚未绑定该第三方平台，请联系平台客服绑定

8022

企业已被禁用

8009

企业注册/修改中不能开票（企业尚未审核通过），请联系平台客服审核开通

3001

电子税局账号尚未在平台登记，请先在平台登记

2.46. 退出电子税局登录
通过该接口退出发票平台的电子税局登录，解决短信登录后使用电子税局时被挤掉线的
问题。登录电子税局前，需要使用该接口先将平台的电子税局登录状态退出。

2.46.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/logout
Etax.pt
正式地址：

备注
POST 方式提交

票通数电发票接口文档
https://fpkj.vpiaotong.com/tp/openapi/logoutEtax.
pt
字符编码

UTF-8

2.46.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(50)

是

数电账号，电子税局登录账号

类型

必填

说明

String(15-20)

是

纳税人识别号

String(50)

是

电子税局登录账号（手机号或

别号
account

数电账号

报文示例：
{
"taxpayerNum": "91XX5678901234567891",
"account": "185XXXXXX"
}

2.46.3.

响应报文

响应参数-业务报文部分：

字段

名称

taxpayerNum

纳税人识别号

account

数电账号

身份证号）
resultCode

结果代码

String(4)

是

退出结果代码。
0000：退出成功。
其他：退出失败，失败原因见
resultMsg

resultMsg

结果描述

String(不定长)

报文示例：
{
"taxpayerNum": "500102192801051381",
"account": "185XXXXXX",
"resultCode": "0000",
"resultMsg": "退出成功"
}

是

退出结果描述

票通数电发票接口文档

2.46.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

验签失败

9998

平台编码无效

9997

纳税人识别号无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

3001

销售方电子税局账号尚未在发票平台完成绑定，请先在发票平台完成绑定

2.47. 查询企业信息
2.47.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：

备注
POST 请求

http://fpkj.testnw.vpiaotong.cn/tp/openapi/getEnterpriseInfo.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/getEnterpriseInfo.pt
字符编码

UTF-8

接口描述

通过该接口查询企业信息

2.47.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型及长度

必填

销售方纳税人识

String(15-20)

是

别号

报文示例：
{
"taxpayerNum": "91400108MA0043365M15"
}

说明
销售方纳税人识别号

票通数电发票接口文档

2.47.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

String(4-100)

是

销售方企业名称，长度校验规

别号
enterpriseName

销售方企业名称

则为 GBK 字节长度
regionCode

地区编码

cityName

市(地区)名称

String(2)

是

省级编码，编码表见下

String(1-20)

是

市(地区)名称(参照提供的地
区表)，直辖市为地区名

enterpriseAddress

详细地址

String(1-85)

是

公司地址，长度校验规则为 GBK
字节长度

invitationCode

邀请码

String(6-10)

否

代理商邀请码

reviewStatus

审核状态

String(1)

是

审核状态。
0：待审核；
1：审核通过；
2：审核不通过；
3：审核中

reviewOpinion

审核意见

String(0-200)

否

审核意见

invoiceKind

开通的发票种类

String(不定

否

开通的发票种类。多个用|分

长)

割。
10：电子普票；
04：纸质普票；
01：纸质专票；
12：机动车销售统一发票；
9：区块链电子发票；
08：电子专票
81：数电票（增值税专用发票）
82：数电票（普通发票）

invoiceLayoutFileType

电子发票版式文

String(3)

否

件类型

电子发票版式文件类型。
pdf：pdf 格式;
ofd：ofd 格式。

blockchainInvSingleQuota

区块链单张发票限
额

blockchainInvDailyQuota

区块链日开票限
额

blockchainInvMonthlyQuota

serviceStatus

区块链月开票限

20 位(精确到 2

否

位小数)
20 位(精确到 2

块链发票必传。
否

位小数)
20 位(精确到 2

额

位小数)

服务状态

String(1)

区块链单张发票限额。开通区
区块链日开票限额。开通区块
链发票必传。

否

区块链月开票限额。开通区块
链发票必传。

是

服务状态。
0：已禁用；
1：正常

票通数电发票接口文档
terminalList 设备列表
diskType

税控设备类型

String（1）

是

1：金税盘
2：税控盘
3：UKEY
4：区块链电票
5：数电发票

extensionNum

分机号

String（1-3）

否

分机号，区块链电票、全电发
票为空

machineCode

税盘编号

String（12）

否

税盘编号，区块链电票、全电
发票为空

available

是否可用

String（1）

否

设备是否可用。1：可用；0：
过期禁用

serviceStartTime

服务起始时间

String(14)

否

服务起始时间。
格式：yyyyMMddHHmmss

serviceEndTime

服务截止时间

String(14)

否

服务截止时间。
格式：yyyyMMddHHmmss

报文示例：
{
"taxpayerNum": "91400108MA0043365M15",
"enterpriseName": "北京票通信息技术有限公司深圳分公司 15",
"regionCode": "44",
"cityName": "深圳市",
"enterpriseAddress": "深圳市南山区桃源街道福光社区学苑大道 1088 号",
"invitationCode": "W31FP4",
"reviewStatus": "1",
"reviewOpinion": "就是通过",
"invoiceKind": "10",
"invoiceLayoutFileType": "pdf",
"serviceStatus": "1",
"terminalList": [{
"diskType": "1",
"machineCode": "661565723941",
"extensionNum": "0",
"serviceStartTime": "20210125142641",
"serviceEndTime": "20210125142641",
"available": "1"
}]
}

2.47.4.

业务错误码

从业务中抽取代码并进行定义

票通数电发票接口文档

错误（code） 含义说明（msg）
0000

处理成功

9999

验签失败

9998

平台编码无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

2.48. 企业审核结果推送
2.48.1.

调用说明

项目

说明内容

调用关系

票通平台调用第三方平台

调用方式

https

接口地址

第三方平台提供

字符编码

UTF-8

备注
POST 方式提交

接口描述

2.48.2.

请求报文

请求参数-业务报文部分：
字段

名称

长度

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

enterpriseName

销售方企业名称

String(4-40)

是

销售方企业名称

code

注册状态

String(4)

是

注册状态：
0000 审核通过
9991 审核不通过

msg

注册状态描述

String(1-100)

报文示例：
{
"taxpayerNum": "9120931023801231",
"enterpriseName": "北京票通信息技术有限公司",
"code": "0000",
"msg": "审核通过"
}

是

注册状态描述

票通数电发票接口文档

2.48.3.

响应报文

响应参数-业务报文部分：
字段

名称

长度

必填

说明

taxpayerNum

销售方纳税人识别号

String(15-20)

是

销售方纳税人识别号

enterpriseName

销售方企业名称

String(2-40)

是

销售方企业名称

示例报文：
{
"taxpayerNum": "9120931023801231",
"enterpriseName": "北京票通信息技术有限公司"
}

2.48.4.

业务错误码

从业务中抽取代码并进行定义

错误码（code）

含义说明（msg）

0000

成功

9999

系统内部异常

2.49. 查询企业开户行及账号
通过该接口查询企业开户行及账号信息，优先查询企业在票通平台维护的开户行及账
号；如果没有维护，则查询在电子税局维护的开户行及账号，查询在电子税局维护的开户行
及账号信息时需要数电账号处于已登录认证的状态。该接口用于解决企业没有维护开户行及
账号信息导致开票失败的问题，可以先通过该接口查询，若票通平台和电子税局都没有维护
开户行及账号，需要提醒企业维护。

2.49.1.

调用说明

项目

说明内容

调用关系

第三方平台调用票通平台

调用方式

https

接口地址

测试地址：
http://fpkj.testnw.vpiaotong.cn/tp/openapi/queryEnterpriseBankInfo
.pt
正式地址：
https://fpkj.vpiaotong.com/tp/openapi/queryEnterpriseBankInfo.pt

字符编码

UTF-8

备注
POST 请求

票通数电发票接口文档
接口描述

通过该接口查询企业信息

2.49.2.

请求报文

请求参数-业务报文部分：
字段
taxpayerNum

名称

类型及长度

必填

销售方纳税人识

String(15-20)

是

说明
销售方纳税人识别号

别号

报文示例：
{
"taxpayerNum": "91400108MA0043365M15"
}

2.49.3.

响应报文

响应参数-业务报文部分：
字段
taxpayerNum

名称

类型

必填

说明

销售方纳税人识

String(15-20)

是

销售方纳税人识别号

别号
bankList 开户行列表
bankName

企业开户行

String(1-100)

是

企业开户行

bankAccount

银行账号

String(1-50)

否

银行账号

source

来源

String(1)

是

来源。
1：票通平台；
2：电子税局

报文示例：
{
"taxpayerNum": "98699536313822895951",
"bankList": [{
"bankName": "XXXXXXX 银行 XX 支行",
"bankAccount": "6111888888888888",
"source": "1"
}]
}

2.49.4.

业务错误码

从业务中抽取代码并进行定义

错误（code） 含义说明（msg）

票通数电发票接口文档
0000

处理成功

9999

验签失败

9998

平台编码无效

8996

业务异常，请联系运维

8995

数据校验不通过(对应参考详细信息)

8002

找不到对应的税号信息（企业尚未注册），请检查税号是否正确

8104

企业尚未绑定该第三方平台，请联系平台客服绑定

3. 码表
3.1. 证件类型
证件类型代码

证件类型名称

101

组织机构代码证

102

营业执照

103

税务登记证

199

其他单位证件

201

居民身份证

202

军官证

203

武警警官证

204

士兵证

205

军队离退休干部证

206

残疾人证

207

残疾军人证（1-8 级）

208

外国护照

210

港澳居民来往内地通行证

212

中华人民共和国往来港澳通行证

213

台湾居民来往大陆通行证

214

大陆居民往来台湾通行证

215

外国人居留证

216

外交官证

217

使（领事）馆证

218

海员证

219

香港永久性居民身份证

220

台湾身份证

221

澳门特别行政区永久性居民身份证

222

外国人身份证件

224

就业失业登记证

225

退休证

226

离休证

票通数电发票接口文档
227

中国护照

228

城镇退役士兵自谋职业证

229

随军家属身份证明

230

中国人民解放军军官转业证书

231

中国人民解放军义务兵退出现役证

232

中国人民解放军士官退出现役证

233

外国人永久居留身份证（外国人永久居留证）

234

就业创业证

235

香港特别行政区护照

236

澳门特别行政区护照

237

中华人民共和国港澳居民居住证

238

中华人民共和国台湾居民居住证

239

《中华人民共和国外国人工作许可证》（A 类）

240

《中华人民共和国外国人工作许可证》（B 类）

241

《中华人民共和国外国人工作许可证》（C 类）

291

出生医学证明

299

其他个人证件

3.2. 农产品收购发票销方证件类型
证件类型代码

证件类型名称

201

居民身份证

208

外国护照

210

港澳居民来往内地通行证

213

台湾居民来往大陆通行证

215

外国人居留证

219

香港永久性居民身份证

220

台湾身份证

221

澳门特别行政区永久性居民身份证

233

外国人永久居留身份证（外国人永久居留证）

103

税务登记证

299

其他个人证件

