发票云(标准版)API文档
旗舰版标准版智能特性
旗舰版标准版智能特性
🤖 AI Support​​
  1. 税控&数电同步开票
  • 整体介绍
  • 对接约定
  • 授权
    • 获取AccessToken
  • 开票
    • 产品介绍
    • 开发指南
    • 税控&数电同步开票
      • 业务场景下接口调用顺序
      • 1.01.读取税盘信息(czlx-7)
        POST
      • 1.02 .读取票种信息(czlx-30)
        POST
      • 1.03.发票开具(czlx-3)
        POST
      • 1.04.发票作废(czlx-6)
        POST
      • 1.05.发票查询(czlx-5)
        POST
      • 1.06.发票打印(czlx-4)
        POST
      • 1.07.专用发票申请红字信息表(czlx-20)
        POST
      • 1.08.查询专用发票申请红字信息表(czlx-18)
        POST
      • 1.09.批量打印(czlx-32)
        POST
      • 1.11.机动车销售统一发票开具(czlx-40)
        POST
      • 1.12.机动车销售统一发票查询(czlx-41)
        POST
      • 1.13.机动车销售统一发票红冲(czlx-42)
        POST
      • 1.15.核定票种查询(czlx-51)
        POST
      • 1.21.二手车-发票开具(czlx-43)
        POST
      • 1.22.二手车-发票查询(czlx-44)
        POST
      • 1.23.二手车-发票红冲(czlx-45)
        POST
      • 1.30 .查询授信额度接口(czlx-122)
        POST
      • 2.01.电子发票开具(czlx-110) ,【注】开数电票请对接:1.03.发票开具(czlx-3)
        POST
      • 2.02.电子发票信息查询(czlx-113)
        POST
      • 2.03.电子发票红冲 (只支持全额红冲)(czlx-114)
        POST
      • 2.04.刷新PDF(czlx-115)
        POST
      • 2.05.查询电子发票余量(czlx-116)
        POST
      • 3.01.查询税收分类编码信息(czlx-504)
        POST
      • 3.03.获取打印机列表(czlx-901)
        POST
    • 数电异步开票
      • 异步开票-v4
      • 查询异步开票结果-v4
    • 扫码开票
      • 上传销售单模式扫码开票
        • 接入指南
        • 1.token获取
        • 2.上传发票销售单接口
        • 3.回推接口地址
      • 自定义扫码开票
        • 接入指南
        • 1.对接方按规则组装二维码链接
        • 2.查询开票明细
        • 3.回推接口地址
    • 企业级-发票云销项查询
      • 根据业务条件查询当前企业的销项发票
  • 收票
    • 开发指南
    • 发票数据规范
    • 发票数据
      • 机动车发票数据
      • 火车票数据
      • 火车票退票凭证数据
      • 财政电子票据数据
      • 客运票/轮船票数据
      • 其他发票数据
      • 完税证明数据
      • 飞机票数据
      • 数电发票(专票/普票)数据
      • 数电发票(铁路电子客票)数据
      • 数电发票(航空运输电子客票行程单)数据
      • 数电发票(机动车销售统一发票)数据
      • 数电发票(二手车销售统一发票)数据
      • 的士票数据
      • 定额发票数据
      • 通用机打(纸质/电子)发票数据
      • 过路过桥费数据
      • 二手车票数据
      • 专票和普票数据
      • 通行费发票数据
      • 海关缴款书数据
      • 发票文件数据
    • 企业级-发票云进项查询
      • 根据业务条件查询当前企业采集的发票
      • 根据代码号码查询当前企业采集的发票
      • 根据开票时间范围和采集时间范围查询当前企业采集的发票
      • 根据发票流水号或者发票代码号码查询当前企业采集的发票
      • 根据业务条件查询指定用户采集的发票
    • 税盘&数电票下载
      • 开发指南
      • 1、获取税款所属期信息
      • 2、进项发票表头采集
      • 3、发票不抵扣勾选
      • 4、海关缴款书抵扣勾选(税盘模式不支持)
      • 5、海关缴款书不抵扣勾选(税盘模式不支持)
      • 6、海关缴款书表头采集(税盘模式不支持)
      • 7、全量发票查询
      • 8、当前统计查询
      • 9、历史统计查询
      • 10、生成统计表
      • 11、撤销统计表
      • 12、确认统计表
      • 13、获取当前已勾选或往期已认证发票(税盘模式不支持)
      • 14、当期已勾选或往期已认证缴款书(税盘模式不支持)
      • 15、发票抵扣勾选
    • 电子凭证解析
      • billTypeCode表
      • 解析 + 验签 指定文件的xbrl信息
      • xbrl字符串转json
      • json转xbrl字符串
    • 发票异步下载
      • 进项全量发票采集-异步申请
      • 进项全量发票采集-异步结果查询
    • 发票数据规范
  • 查验识别
    • 开发指南
    • 发票查验(单张)
    • 发票查验(多张异步)
    • 发票识别+查验(单张)
    • 发票识别(多张)
    • 发票识别+查验(多张)
    • 返回状态码
  • 报销
    • 发票助手移动端-h5对接
    • 发票助手移动端-小程序对接
    • 第三方发票报销查询
    • 发票助手PC端对接
      • 对接流程
      • JS建立连接通道
      • 采集发票
      • 后端建立通道
      • 查看发票
      • 编辑单张发票
      • 分录操作
      • 常见问题
      • 获取userKey
      • 获取linkKey
      • 缓存单据
      • 保存单据
      • 更新单据状态
      • 根据发票流水号获取发票详细数据
      • 根据userkey查询单据下所有发票列表
      • 删除单据
      • 再次查验
      • 回写入账信息
      • 删除入账信息
  • 影像
    • 开发指南
    • 对接约定
    • 影像系统对接
    • 授权
      • 获取AccessToken(影像系统)
  • 档案
    • 异构系统接口定义
    • 发票返结构体
  1. 税控&数电同步开票

1.03.发票开具(czlx-3)

测试环境(除税控、数电和扫码开票外的接口)
https://api-dev.piaozone.com/test
测试环境(除税控、数电和扫码开票外的接口)
https://api-dev.piaozone.com/test
POST
/
全电接口生产环境把接口地址改成https://api.piaozone.com/bill-websocket/v3/invoicewebsocket/push?taxNo=xxxxxxxxxxxxxx&clientId=xxxxxxxxxxxxxxxxxxxxxxxx
全电接口测试环境把接口地址改成https://api-dev.piaozone.com/test/bill-websocket/v3/invoicewebsocket/push?taxNo=当前企业税号&clientId=企业对应的发票云ClientId的值&paperInvoiceFlag=1&debugOpenInvoice=1

1. 发票金额算法:#

1.1 蓝票算法:#

不含税金额(四舍五入,保留两位小数)= 含税金额/(1+税率)
税额= 含税金额-不含税金额
不含税总金额=各行不含税金额相加
总税额 = 价税合计-不含税总金额
最后一项税额 = 总税额-(前n项税额之和)

1.2 红票算法:#

价税合计=取蓝票的价税合计
合计税额=取蓝票的合计税额
合计金额=取蓝票合计金额

2. 明细项:#

不含税金额(四舍五入,保留两位小数)= 含税金额/(1+税率)
税额= 含税金额-不含税金额
最后一项不含税金额 = 合计金额-(前n项不含税金额之和)
最后一项税额 = 合计税额-(前n项税额之和)

3. 误差规则#

单行商品明细 |单价×数量-金额|<=0.01 元
正常行或被折扣行:|不含税金额×税率-税额|<=0.06元
折扣行:|不含税金额×税率-税额|<=0.01元

4. 发票开具校验注意事项#

4.1 正数发票#

正数发票合计金额>0 ;
价税合计=合计金额+合计税额;
开票合计金额 与 明细行所有金额加起来要一致;
开票合计税额 与 明细行所有税额加起来要一致;
除折扣行外,正数发票的商品行金额必须大于0 ;
正数发票每行商品行金额均不能为0,税额不能为负数 ;
折扣行金额不能大于被折扣行金额。多行折扣情况下,折扣行金额不能大于各被折扣行金额之和。
正数发票金额为负的商品行(即折扣行),其上一行商品金额必须为正。
单价和数量同时为空,或都不能为空 ;
金额、税额、数量、单价必须是合法数字 ;
折扣行税率必须与被折扣行税率相同。多行折扣情况下,各被折扣行税率相同,且与折扣行税率相同。

4.2 负数发票#

负数发票合计金额<0 ;
价税合计=合计金额+合计税额;
开票合计金额 与 明细行所有金额加起来要一致;
开票合计税额 与 明细行所有税额加起来要一致;
负数发票的商品行金额必须小于0,税额不能为正数;
单价和数量同时为空,或都不能为空 ;
金额、税额、数量、单价必须是合法数字

4.3 关于发票红冲#

提示:本节内容适用税控票,数电票仅做参考
4.3.1. 开具负数增值税普通发票,必须在备注中注明 对应正数发票代码:XXXXXXXXXX 号码:YYYYYYYY 字样,其中X为发票左上角10位或 12位代码数字,Y为发票右上角 8 位号码数字
4.3.2. 开具负数增值税专用发票,必须在备注中注明开具红字增值税专用发票信息表编号XXXXXXXXXXXXXXXX,其中 X 为信息表编号。同时,数量、金额、税额为负数
4.3.3. 开具货物运输发票的负数票备注中注明开具红字货物运输业增值税专用发票信息表编号
XXXXXXXXXXXXXXX
,其中X 为信息表编号。
4.3.4. 开具机动车销售统一发票的负数票需在备注中注明对应正数发票代
码:XXXXXXXXXX 号码:YYYYYYYY
字样,其中“X”为发票左上角10 位
或12 位代码数字,“Y”为发票右上角8 位号码数字。

4.4 税收分类编码#

说明:商品和服务税收分类编码,详细编码信息可参考开票软件中的编码查询
API接口字段是否必须字段描述字段解释
ssflbm是商品编码有税务局统一规范的商品与服务代码
kce否扣除额对于征税对象全部数额中扣除的一定数额
lslbs否零税率标识空值->普通非零税率;0->出口退税; 1->免税; 2->不征收; 3->普通零税率
qyzbm否企业自编码由企业自定义的编码
ssyhzc是优惠政策标识0->不享受优惠政策,1->享受优惠政策
ssyhzcnr否优惠政策内容具体的优惠政策内容 当优惠政策标识为1时,必须填写优惠政策的具体内容
示例
null指代空值(以下表格不涵盖所有情况,只做示例作用)
类型零税率标识优惠政策标识优惠政策内容
普通非零税率null0null
普通零税率(税率=0)3nullnull
免税(税率=0)11免税
出口退税(税率=0)01出口退税

5. 差额征税发票注意事项#

如果BMB_BBH不为空,并且第一行商品明细中KCE不为空,则认为是差额征税发票。
差额征税蓝字发票:只允许一条商品行,如果存在折扣行,则最多两条。
差额征税红字发票:只允许一条商品行。
差额征税蓝字发票:第一行商品明细中KCE不能为负数,并且不能大于第一行商品的不含税金额。
差额征税红字发票:第一行商品明细中KCE不能为正数,并且不能大于第一行商品的不含税金额。
差额征税蓝字发票:备注中要增加“差额征税:20.00。”字样,如图1。
差额征税红字发票:备注中要增加“差额征税。”字样,如图2。
差额征税计算公式:不含税差额 = 不含税金额 - 扣除额; 税额 = 不含税差额*税率。 开具请求报文要按照上述计算公式计算税额,合计税额等,开票服务不进行相应计算,只进行误差校验。
图一:image.png
图二: image.png

请求参数

Query 参数

Header 参数

Body 参数application/json

示例
{
    "czlx": "3",
    "sfrz": {
        "client_id": "string",
        "client_secret": "string",
        "timestamp": "string"
    },
    "sjd": {
        "fpqqlsh": "string",
        "ddh": "string",
        "hsbz": "string",
        "hzqrdbh": "string",
        "kpzl": "string",
        "kplx": "string",
        "zsfs": "string",
        "qdbz": "string",
        "bz": "string",
        "yfpdm": "string",
        "yfphm": "string",
        "xhf_nsrsbh": "string",
        "xhf_mc": "string",
        "xhf_dz": "string",
        "xhf_dh": "string",
        "xhf_yhzh": "string",
        "ghf_nsrsbh": "string",
        "ghf_mc": "string",
        "ghf_sj": "string",
        "ghf_openid": "string",
        "ghf_dzdh": "string",
        "ghf_yhzh": "string",
        "gmfzrrbs": "string",
        "kpy": "string",
        "sky": "string",
        "fhr": "string",
        "hjbhsje": "string",
        "kphjse": "string",
        "jshjje": "string",
        "cezslxDm": "string",
        "kce": "string",
        "cepzmxList": [
            {
                "pzlx": "string",
                "fphm": "string",
                "fpdm": "string",
                "zzfphm": "string",
                "pzhm": "string",
                "kjrq": "string",
                "pzhjje": "string",
                "bckcje": "string",
                "bz": "string"
            }
        ],
        "tdyslxDm": "string",
        "bdczyTdys": {
            "cqzsh": "string",
            "bdcdz": "string",
            "bdcjtdz": "string",
            "zlqq": "string",
            "zlqz": "string",
            "kdsbz": "string",
            "dw": "string"
        },
        "bdcTdys": {
            "wqhtbabh": "string",
            "bdcdz": "string",
            "bdcjtdz": "string",
            "kdsbz": "string",
            "tdzzsxmbh": "string",
            "hdjsjg": "string",
            "sjcjhsje": "string",
            "cqzsh": "string",
            "dw": "string"
        },
        "lkysList": [
            {
                "qyd": "string",
                "ddd": "string",
                "cxr": "string",
                "cxrq": "string",
                "sfzjlx": "string",
                "sfzjhm": "string",
                "jtgjlx": "string",
                "dengj": "string"
            }
        ],
        "jzfwTdys": {
            "jzfwfsd": "string",
            "jzfwfsdjtdz": "string",
            "jzxmmc": "string",
            "tdzzsxmbh": "string",
            "kdsbz": "string",
            "kqysssxbyglbh ": "string"
        },
        "hwysfwdzfpmxbList": [
            {
                "qyd": "string",
                "ddd": "string",
                "ysgjzl": "string",
                "ysgjhp": "string",
                "yshwmc1": "string"
            }
        ],
        "items": [
            {
                "xmlx": "string",
                "xmdw": "string",
                "xmmc": "string",
                "xmsl": "string",
                "xmdj": "string",
                "xmje": "string",
                "sl": "string",
                "ggxh": "string",
                "se": "string",
                "taxcode": {
                    "kce": "string",
                    "lslbs": "string",
                    "qyzbm": "string",
                    "ssflbm": "string",
                    "ssyhzc": "string",
                    "ssyhzcnr": "string"
                },
                "hh": "string",
                "sm": "string"
            }
        ],
        "ghf_email": "string",
        "sgfp": "string",
        "hcyy": "string",
        "dylppz": "string",
        "dylpkprq": "string",
        "sfzsgmfyhzh": "string",
        "sfzsxsfyhzh": "string",
        "ncpsgzjlx": "string",
        "kjly": "string",
        "jazslxDm": "string",
        "sfzsxsfdzdh": "string",
        "sfzsgmfdzdh": "string"
    },
    "fjys": [
        {
            "fjysmc": "string",
            "fjyslx": "string",
            "fjysnr": "string"
        }
    ]
}

示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api-dev.piaozone.com/test/?name=&reqid=&taxNo=&clientId=&paperInvoiceFlag=&invoiceCopyType=2' \
--header 'Content-Type: application/json' \
--data-raw '{
    "czlx": "3",
    "sfrz": {
        "client_id": "string",
        "client_secret": "string",
        "timestamp": "string"
    },
    "sjd": {
        "fpqqlsh": "string",
        "ddh": "string",
        "hsbz": "string",
        "hzqrdbh": "string",
        "kpzl": "string",
        "kplx": "string",
        "zsfs": "string",
        "qdbz": "string",
        "bz": "string",
        "yfpdm": "string",
        "yfphm": "string",
        "xhf_nsrsbh": "string",
        "xhf_mc": "string",
        "xhf_dz": "string",
        "xhf_dh": "string",
        "xhf_yhzh": "string",
        "ghf_nsrsbh": "string",
        "ghf_mc": "string",
        "ghf_sj": "string",
        "ghf_openid": "string",
        "ghf_dzdh": "string",
        "ghf_yhzh": "string",
        "gmfzrrbs": "string",
        "kpy": "string",
        "sky": "string",
        "fhr": "string",
        "hjbhsje": "string",
        "kphjse": "string",
        "jshjje": "string",
        "cezslxDm": "string",
        "kce": "string",
        "cepzmxList": [
            {
                "pzlx": "string",
                "fphm": "string",
                "fpdm": "string",
                "zzfphm": "string",
                "pzhm": "string",
                "kjrq": "string",
                "pzhjje": "string",
                "bckcje": "string",
                "bz": "string"
            }
        ],
        "tdyslxDm": "string",
        "bdczyTdys": {
            "cqzsh": "string",
            "bdcdz": "string",
            "bdcjtdz": "string",
            "zlqq": "string",
            "zlqz": "string",
            "kdsbz": "string",
            "dw": "string"
        },
        "bdcTdys": {
            "wqhtbabh": "string",
            "bdcdz": "string",
            "bdcjtdz": "string",
            "kdsbz": "string",
            "tdzzsxmbh": "string",
            "hdjsjg": "string",
            "sjcjhsje": "string",
            "cqzsh": "string",
            "dw": "string"
        },
        "lkysList": [
            {
                "qyd": "string",
                "ddd": "string",
                "cxr": "string",
                "cxrq": "string",
                "sfzjlx": "string",
                "sfzjhm": "string",
                "jtgjlx": "string",
                "dengj": "string"
            }
        ],
        "jzfwTdys": {
            "jzfwfsd": "string",
            "jzfwfsdjtdz": "string",
            "jzxmmc": "string",
            "tdzzsxmbh": "string",
            "kdsbz": "string",
            "kqysssxbyglbh ": "string"
        },
        "hwysfwdzfpmxbList": [
            {
                "qyd": "string",
                "ddd": "string",
                "ysgjzl": "string",
                "ysgjhp": "string",
                "yshwmc1": "string"
            }
        ],
        "items": [
            {
                "xmlx": "string",
                "xmdw": "string",
                "xmmc": "string",
                "xmsl": "string",
                "xmdj": "string",
                "xmje": "string",
                "sl": "string",
                "ggxh": "string",
                "se": "string",
                "taxcode": {
                    "kce": "string",
                    "lslbs": "string",
                    "qyzbm": "string",
                    "ssflbm": "string",
                    "ssyhzc": "string",
                    "ssyhzcnr": "string"
                },
                "hh": "string",
                "sm": "string"
            }
        ],
        "ghf_email": "string",
        "sgfp": "string",
        "hcyy": "string",
        "dylppz": "string",
        "dylpkprq": "string",
        "sfzsgmfyhzh": "string",
        "sfzsxsfyhzh": "string",
        "ncpsgzjlx": "string",
        "kjly": "string",
        "jazslxDm": "string",
        "sfzsxsfdzdh": "string",
        "sfzsgmfdzdh": "string"
    },
    "fjys": [
        {
            "fjysmc": "string",
            "fjyslx": "string",
            "fjysnr": "string"
        }
    ]
}'

返回响应

🟢200成功
application/json
Body

示例
{"business_id":"","ddh":"3973283AC7B5884196D8","description":"开具成功","device_info":{"card_no":"661532817749","subid":0,"taxcode":"440301999999030"},"errcode":"0","is_duplicate":false,"lists":[{"description":"开具成功","errcode":"4011","fpdm":"044031800105","fphm":"00412435","hjbhsje":"100.00","jshjje":"113.00","jym":"76820754360221005394","kphjse":"13.00","kprq":"2021-09-22 16:12:59","pdfurl":"","qdbz":"0"}]}
修改于 2025-07-08 01:49:57
上一页
1.02 .读取票种信息(czlx-30)
下一页
1.04.发票作废(czlx-6)
Built with