发票云(标准版)API文档
旗舰版标准版智能特性
旗舰版标准版智能特性
🤖 AI Support​​
  1. 报销
  • 整体介绍
  • 对接约定
  • 授权
    • 获取AccessToken
      POST
  • 开票
    • 产品介绍
    • 开发指南
    • 税控&数电同步开票
      • 业务场景下接口调用顺序
      • 1.01.读取税盘信息(czlx-7)
      • 1.02 .读取票种信息(czlx-30)
      • 1.03.发票开具(czlx-3)
      • 1.04.发票作废(czlx-6)
      • 1.05.发票查询(czlx-5)
      • 1.06.发票打印(czlx-4)
      • 1.07.专用发票申请红字信息表(czlx-20)
      • 1.08.查询专用发票申请红字信息表(czlx-18)
      • 1.09.批量打印(czlx-32)
      • 1.11.机动车销售统一发票开具(czlx-40)
      • 1.12.机动车销售统一发票查询(czlx-41)
      • 1.13.机动车销售统一发票红冲(czlx-42)
      • 1.15.核定票种查询(czlx-51)
      • 1.21.二手车-发票开具(czlx-43)
      • 1.22.二手车-发票查询(czlx-44)
      • 1.23.二手车-发票红冲(czlx-45)
      • 1.30 .查询授信额度接口(czlx-122)
      • 2.01.电子发票开具(czlx-110) ,【注】开数电票请对接:1.03.发票开具(czlx-3)
      • 2.02.电子发票信息查询(czlx-113)
      • 2.03.电子发票红冲 (只支持全额红冲)(czlx-114)
      • 2.04.刷新PDF(czlx-115)
      • 2.05.查询电子发票余量(czlx-116)
      • 3.01.查询税收分类编码信息(czlx-504)
      • 3.03.获取打印机列表(czlx-901)
    • 数电异步开票
      • 异步开票-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. 报销

发票助手移动端-h5对接

收票对接流程图#

image.png

对接约定#

测试环境:
var baseUrl = https://api-dev.piaozone.com/test
var STATIC_URL = https://imgshow-master.piaozone.com
正式环境:
var baseUrl = https://api.piaozone.com
var STATIC_URL = https://img-expense.piaozone.com
对接过程中需要: 发票云授权标识(client_id)、授权密钥(client_secret)、加密密钥(encrypt_key)进行授权,每个环境的授权不同,获取方式可以找实施人员协助提供
image.png
接口返回约定: 若无特别说明,接口返回如下

引入socket库#

STATIC_URL + /static/gallery/socket.io.js
STATIC_URL + /static/public/js/pwy-socketio-v2.js

打开发票云H5#

注:单据界面 点击 “导入发票” 跳转到发票界面时,单据界面不能关闭,否者发票数据无法推送到单据界面, (推送、接收数据参考下方‘企业微信嵌入发票云界面 Demo’)

地址#

baseUrl + /m4-web/dd/wap/index

参数说明#

参数名是否必须长度类型备注
userKey是32String通过 userkey 接口获取
socketName是32Stringsocket 建立时的名字(linkkey 接口获取)
app是-String钉钉: dingding 企业微信: qywx 其他: other
wechatCard否-String发票云界面卡包功能标志,默认 flase; 显示 true
model是-String发票云界面扫码功能标志 默认 yes,隐藏 no (仅支持了钉钉,其他app不支持)
attach否-String发票云界面附件功能标志,默认 yes,隐藏 no (像星空云有自己的附件系统,不使用发票云的)
title否-String设置需要通过encodeUrl()进行编码;默认显示“金蝶发票云”,通过iframe打开设置title无效
注:以上功能(wechatCard:卡包,attach:附件, model:扫码)配置,也可以通过商家平台(进项发票管理/发票助手配置)进行配置

打开发票云界面接口调用#

获取userkey#

接口地址: baseUrl + /m4/fpzs/getUserKey
请求方式: POST
请求 content-type 格式: application/json
请求的全部参数:
参数名是否必须长度备注
billNumber是最大长度 55企业单据编号,可以为空,已经保存的单据传入可以方便查询出已经存在的票据
billType否最大长度 16 位报销单类型 说明如下 1.0.2 表格
branch_id否最大长度 50报销单分录 ID
bxd_key是最大长度 50报销单 ID
ghf_mc是最大长度100购货方名称(校验发票抬头是否一致时使用)
timestamp是固定长度13时间戳:用于签名验证
client_id是发票云授权标识(创建当前报销单的发票云授权标识,与查询单据发票时保持一致)
tin是最大长度20企业税号(校验发票税号是否一致时使用)
eid是最大长度 80 位,建议使用 32 位 uuid接入企业用户 ID,
sign是64签名, 签名规则见对接约定, clientSecret 和 clientId 由发票云分配
encType否1签名加密类型 0:MD5、1:SHA256、2:HMAC SHA256,不传默认MD5加密
random否最大长度 35随机码
ticketParam是固定长度 4过滤规则,格式如:1101
salerName否最大长度 100单据限制销方名称
salerTaxNo否最大长度 20单据限制销方税号
assembleByBillType否--是否按单据类型(billType)组装推送给APP的数据。 1:组装; 其他不组装
resource否--产品线来源:1发票云、2EAS、3Cloud、4苍穹、5星空、6k3w、7SAP、11泛微
phone否11手机号码, 企业用户ID存在时,绑定到用户信息上
参数说明
1、ticketParam
参数规则顺序: 0 不允许 1 允许
第 1 位:已报销过的发票是否允许导入
第 2 位:发票抬头与企业名称不一致的发票是否允许导入
第 3 位:发票抬头与税号不一致发票是否允许导入
第 4 位:发票查验不通过的发票是否允许导入
2、billType
参数值备注
Tra智能差旅行程单
Pur智能物品采购报销单
BizOut智能对公报销单
""费用报销单传空字符串
请求参数示例

获取 linkkey 接口#

请求方式:post
参数:无
接口地址:baseUrl + /m4/fpzs/getLinkKey
返回描述:

钉钉:打开发票云界面#

需引入钉钉 jsSDK: https://g.alicdn.com/dingding/dingtalk-jsapi/2.0.57/dingtalk.open.js

企业微信:嵌入发票云界面#

企业微信嵌入发票云界面 Demo#

http://imgdev-master.piaozone.com/static/fwh/html/socketDemo/index.html?userKey=${userKey}

其他第三方APP:嵌入发票云界面(如云之家,泛微等)#

msg消息返回格式#

消息格式: {"type":"updateInvoice", data: {}}
type为saveBill时为导入时的发票数据
费用单据的数据格式:billType为空字符串
智能差旅行程单的数据数据格式, billType为:Tra
智能物品采购单据-数据数据格式, billType为:Pur
智能对公单据-数据数据格式, billType为:BizOut

企业微信:调用卡包(电子发票)、扫码#

image.png
注:该电子发票功能仅适用企业微信内部自建应用,第三方ISV不适合;仅认证的企业微信账号并且企业激活人数超过200的企业才有接口权限(2022年/6月),如果认证的企业激活人数不超过200人请联系企业微信客服咨询。

引入企业微信库jsSDK#

http://res.wx.qq.com/open/js/jweixin-1.2.0.js

postMessage相关代码#

getWechatCardPackSign接口#

获取 wx.config 、wx.chooseInvoice 、wx.scanQRCode 方法所需参数
接口地址:baseUrl + /m10/thirdparty/wechat/getWechatCardPackSign
请求方式: POST
请求 content-type 格式: application/json
参数说明:
参数类型长度描述
corpidString-当前企业 ID , "企业微信后台--我的企业" 如:wwf21c817a9653e942
corpsecretString-当前自建应用的 Secret, "企业微信后台--应用管理"
urlString-当前主页的地址(用来生成签名 sign 所需,不明白的可以看 JsSDk 附录签名流程)
注:当前自建应用底部-“开发者接口”,需要设置当前页面的域名,否者调用卡包时会提示没有权限,新创建的自建应用还需要在“开发者接口”处设置“企业可信IP”
注:下方拉取电子发票列表可能会有些慢!自己看情况加 进度框

拉取微信电子发票列表#

拉取企业微信扫一扫#

常见问题处理
1,可以在当前页面添加 vonsole 插件方便调试!调试完再去掉
2,提示签名不通过时,可以在下方地址进行验证签名是否正确
https://work.weixin.qq.com/api/jsapisign

其他APP调用卡包(电子发票)、扫码#

注一:H5本身并不支持直接拉起微信电子票夹,需要APP支持拉取微信电子票夹的能力并封装给前端调用
1:首先处理微信对app的授权(已授权忽略),并封装js提供给前端调用
2:调用指令方式同上诉企业微信
3:其次改造上方“微信-电子发票”(搜关键字)处代码即可
注二:暂不支持除企业微信、钉钉App外的其他应用个性化扫码功能

报销单据与发票关系处理(重点)#

请查看接口文档 : 发票助手PC web端对接

报销单据上查看关联发票(重点)#

通过报销单 ID 查询#

接口地址:baseUrl + /m4/fpzs/bxdInvoices?bxd_key={报销单ID}&client_id={创建当前报销单的发票云授权标识}&timestamp={时间戳}&sign={签名}&ticketParam={发票校验过滤规则}
请求方式: GET
参数说明
参数类型长度描述
bxd_keyString最大长度50报销单 ID
client_idString最大长度30创建当前报销单的发票云授权标识
timestampString13时间戳
signString32签名规则见对接约定, clientSecret 和 clientId 由发票云分配
encTypeInt1签名加密类型 0:MD5、1:SHA256、2:HMAC SHA256,不传默认MD5加密
ticketParamString5发票校验过滤规则,格式如:11011
ticketParam 参数规则顺序: 0 不允许 1 允许
第1位:已被单据占用的发票是否允许导入
第2位:发票抬头与企业名称不一致的发票是否允许导入
第3位:发票抬头与税号不一致发票是否允许导入
第4位:发票查验不通过的发票是否允许导入
第5位: 个人发票是否允许导入
请求接口参数示例

单据分录上通过事件代码查询#

接口地址:baseUrl + /m4/fpzs/expense/invoices/certifacate/query?event_code=${eventCode}
请求方式: GET
参数说明
参数类型长度描述
envent_codeString-事件代码(如下接口获取)

获取事件代码 eventCode#

接口地址: baseUrl + /base/oauth/eventCode
请求方式: POST
请求 content-type 格式: application/json
参数说明
参数类型长度描述
client_idString最大长度30创建当前报销单的发票云授权标识
timestampString13时间戳
signString32签名规则见对接约定, clientSecret 和 clientId 由发票云分配
encTypeInt1签名加密类型 0:MD5、1:SHA256、2:HMAC SHA256,不传默认MD5加密
typeString22EXPENSE_SERIALNO_QUERY //固定值
buyerNameString最大长度100购方抬头
buyerTaxNoString最大长度20购方税号
ticketParamString5发票校验过滤规则,格式如:1101
certifacateSerialNosArray最大长度35附件流水号
invoiceSerialNosArray最大长度35发票流水号
expenseIdString最大长度30报销单ID
请求接口参数示例

单张发票查看发票详情界面#

页面路径:baseUrl + /m4-web/dd/wap/index?checkDetail=true&serialNo={userKey}
参数说明
参数类型长度描述
checkDetailString-固定值 true
serialNoString最大长度35发票流水号
userKeyString32生成规则查看 userKey 接口

票夹流程#

页面地址:baseUrl + /m4-web/ticket/wap/index?userKey={socketName}&app=qywx&model=yes
参数说明
参数类型长度描述
socketNameString32socket 建立时的名字(linkkey 接口获取)
userKeyString32生成规则查看 userKey 接口
image.png

单据删除发票云关联附件流程#

页面路径:baseUrl + /m4-web/fpzs/bill-attachments?bxd_key={client_id}&userKey=${userKey}
参数说明
参数是否必须类型长度描述
bxd_key是String最大长度50报销单 ID)
client_id是String最大长度30创建当前报销单的发票云授权标识
userKey是String32生成规则查看 userKey 接口
对接方式
参考文档4.打开发票云界面接口调用
点击“保存并返回”后msg消息返回格式

单据审核中只补附件流程#

背景:客户通过发票云采集发票到单据上后,发现发票少了附件,只能通过删除发票,重新打开发票云上传发票再上传附件,希望能通过单据信息直接补附件
页面路径:baseUrl + /m4-web/fpzs/supplemental/ticket?userKey={socketName}&app=${app}
请求方式: GET
参数说明
参数是否必须类型长度描述
userKey是String32生成规则查看 userKey 接口
socketName是String32socket 建立时的名字(linkkey 接口获取)
app是String-钉钉: dingding 企业微信: qywx 其他: other
对接方式
参考文档1.收票对接流程图
企业微信单据补附件Demo
http://imgdev-master.piaozone.com/static/fwh/html/socketDemo/bfj.html?userKey=${userKey}
返回的结果
msg消息返回格式
参考文档8.msg消息返回格式跟首页采集后推送格式一致
保存推送过来的发票附件信息和单据的关系
请查看接口文档 : 发票助手PC web端对接#10保存单据
上一页
返回状态码
下一页
发票助手移动端-小程序对接
Built with