百旺通接口文档
(v2.4.0)
2024年2月
1、 通信约定
- 所有的调用都采用POST方式。
- 除了获取token接口外,都需要参数token(小写)
- 路径中不含127.0.0.1的参数路径前加前缀http://invoice.xinshui.com.cn,不是以JSON进行传送,表单方式提交值: 参数1=值1&参数2=值…… 方式传送,含有127.0.01的,都是以JSON进行传送。
- Content-Type:application/x-www-form-urlencoded;charset=UTF-8。
- 返回值是以JSON形式返回,返回值中都有Result和Message节点,Result=1时,表示调用成功,0表示失败,Message,为调用信息。
- 参数都是用小写,如果文档自动转换成大写,请忽略大写。
- 需要进行base64加密的报文,比如:FPKJ中的data参数,JSON节点都用大写。
- 参数字段说明中,如果没有 “是否必需” 这一列,说明是必需要有的。
- POSTMAN的具体调用如下:
- 所有用到Base64的地方,都采用utf-8字符集加密。
- token是需要放在head头部。
2、获取token
说明:
获取平台token,有效期为一年,每次新的登陆会停止原有的token,在调用业务api时,如果返回中有Code字段(c是大写),并且Code值在2001-2009范围 ,那么需要重新获取一次token。
路径:
/NEWKP/LOGIN/GetToken
参数:
UserName=[用户名]&Password1=[密码]
请求示例:
UserName=FANSHI&Password1=Aa123456
返回值:
{
“Result”: “1”,
“Message”: “系统登陆成功。”,
“ID”: “[mOqngQUp9/IS5qvk5VuiUZoViBuHCN787eXqq0HcopVCdw43ZKyS8uz10lRwlsu7STs4ckgbKvaqZfvi5IRdYT5MvswRBUuWhijy0MtCyDZ/GLsg0wTSh//Jh Kt/6w9/n7FKCmhTFt1FRff4ESG8BgdEYVxGq/hg3P ssuWoIE=~1064deb4d310430490cfa8237e4d5d84~190ACA1704AF55AA9FE1E8DE908C11044820A1B6C0E56F1E]”
}
返回值说明:
1、获取到的ID,用于以下接口的header头的token参数。
2、获取到的ID,前后是有[]括起来的,请不要去掉中括号。
3、所有接口头部都需要加上token,如下图:
税控终端服务器
3.1、查询税控终端列表
说明:
查询税控终端列表
路径:
/NEWKP/TERM/LIST
参数:
无
字段说明
返回示例
{
“total”: “1”,
“rows”: [{
“nsrmc”: “开科思(上海)商务信息咨询有限公司”,
“nsrsbh”: “91310115563144366Q”,
“zdbh”: “661833075515”,
“zdlx”: “4”,
“spid”: “0a3beb40037d4bb29fe30295451d2171”,
“kpr”: “XXXX”,
“skr”: “XXXX”,
“fhr”: “XXXX”,
“ssdq”: “上海”,
“dqdm”: “3100”,
“dzdh”: “XXXX”,
“yhzh”: “XXXX”,
“deviceid”: “9B0AA29D99CE4231BEC1A713BCFE64FF”,
“online”: “在线”,
“lxsx”: “72”,
“kpjh”: “1”,
“dqrq”: “20210301”,
“dzfp”: {
“HasBuyInv”: “0”,
“HasRepData”: “1”,
“HasRetInv”: “0”,
“InvoiceLimit”: “99999.99”,
“IsLockTime”: “0”,
“LastRepDate”: “202103010000”,
“LockedDate”: “20210315”,
“MonthAmoutTotal”: “28955.66”,
“NextRepDate”: “20210401”,
“OffLineAmoutLeft”: “185000000.00”,
“OffLineAmoutLimit”: “185000000.00”
},
“ptfp”: {},
“zyfp”:{}
}],
“Result”: “1”,
“Message”: “SUCESS”
}
字段说明
rows是税控终端列表,具体字段如下:
字段 | 描述 |
nsrsmc | 企业的名称 |
nsrsbh | 企业的税号 |
zdbh | 税控终端的编号 |
zdlx | 税控终端的类型: 0: 未知类型2: 税控盘4: 金税盘6: 税务 UKey,8全电发票,01托管百旺,02托管ukey(全电发票可以直接在平台上增加发票种类,也可以单独一个终端类型) |
spid | 税盘ID |
kpr | 开票人 |
fhr | 复核人 |
skr | 收款人 |
ssdq | 所在地区名称 |
dqdm | 所在地区代码 |
dzdh | 地址电话 |
yhzh | 银行账号 |
deviceid | 机柜ID |
online | 在线状态 |
lxsx | 离线时限 |
kpjh | 对应开票机号 |
dqrq | 税盘日期 |
dzfp | 电子发票信息 |
zyfp | 专用发票信息 |
ptfp | 普通发票信息 |
dzfp、zyfp、ptfp节点信息
字段 | 描述 | 值 |
HasBuyInv | 是否有购入发票信息 | 1有,0无 |
HasRepData | 汇总报送资料 | 1有 0无 |
HasRetInv | 退回发票信息 | 1有,0无 |
InvoiceLimit | 单张发票限额 | |
IsLockTime | 是否到锁死期 | 1是,0未到 |
LastRepDate | 上次汇总报送日期 | |
LockedDate | 锁时日期 | |
MonthAmoutTotal | 本月正数金额 | |
NextRepDate | 下个汇总期 | |
OffLineAmoutLeft | 离线剩余金额 | |
OffLineAmoutLimit | 离线金额 |
3.1、注册税控终端
说明
把税盘注册到平台
路径
/NEWKP/TERM/REGISTRY
参数:
qymc =测试二十二&qysh =110101201701010022&ssdq =343434&zdbh =499012341234&zdlx=2&fhr=&kpr=&skr=&dzdh=&yhzh=&dzswjyh=&dzswjmm=
字段说明
字段 | 描述 |
qymc | 企业的名称 |
qysh | 企业的税号 |
ssdq | 所属省份 |
zdbh | 税控终端的编号 |
zdlx | 税控终端的类型:0: 未知类型2: 税控盘4: 金税盘6: 税务 UKey,01托管百旺,02托管ukey 8:全电发票 |
fhr | 复核人 |
skr | 收款人 |
kpr | 开票人 |
dzdh | 地址电话 |
yhzh | 银行账号 |
dzswjyh | 电子税务局用户 |
dzswjmm | 电子税务局密码 |
configid | 配置id,由服务商提供 |
正常返回示例
{
“Result”: “1”,
“Code”: “”,
“Message”: “”,
“spid”:””
}
字段 | 描述 |
spid | 税盘ID |
3.3、 注销税控终端
路径
/NEWKP/TERM/DELETE
参数:
spid=
字段说明
字段 | 描述 |
spid | 税盘ID。 |
返回示例
{“Result”:”1″,”Code”:””,”Message”:””}
3.4、 查询税控终端信息
路径
/NEWKP/TERM/INFO
参数:
spid=
字段说明
字段 | 描述 |
spid | 税盘ID。 |
返回示例
参见LIST
3.6、获取税盘ID
/NEWKP/TERM/SPINFO
参数:
qysh =110101201701010022&zdbh=499012341234
字段说明
字段 | 描述 |
qysh | 企业的税号 |
zdbh | 税控终端的编号 |
返回值:
{
“Result”: “1”,
“Code”: “”,
“Message”: “”,
“spid”:””
}
字段 | 描述 |
spid | 税盘ID |
3.7、RPA状态查询(数电)
/NEWKP/TERM/RPAZTCX
参数:
spid=
字段说明
字段 | 描述 |
spid | 税盘ID |
返回值:
{
“Result”: “1”,
“Message”: “状态正常”,
}
4.1、全电发票开具(含蓝字和红字发票)
路径
/NEWKP/KPGL/FPKJ
参数(注意用POST方式,不要用GET方式)
data=[发票报文json的base64]&spid=
说明:(注意:data有个[]),发票内容见下面内容
字段 | 描述 |
data | 发票报文json的base64,同时需要对base64用[]括号起来 |
spid | 税盘id |
发票报文JSON如下(注意:报文节点全大写):
[{
“XTLSH”: “单据号”,
“KHMC”: “客户名称”,
“KHSH”: “税号”,
“KHDZ”: “地址”,
“KHKHYHZH”: “客户银行账号”,
“FPZL”: “发票种类”,
“BZ”: “备注”,
“KPR”: “开票人”,
“SKR”: “收款人”,
“FHR”: “复核人”,
“QYKHYHZH”: “企业开户银行账号”,
“QYDZDH”: “企业地址电话”,
“YFPHM”: “红冲原发票号”,
“XXBBH”: “信息表编号”,
“QDBZ”: “清单标志”,
“KHYJ”: “客户邮件”,
“KHSJ”: “客户手机号”,
“JDC”: “机动车标识”,
“DBTS”: “代办退税标识”,
“ZSFS”:”特定业务标识”,
“ITEM”: [{
“CPMC”: “产品名称1”,
“CPXH”: “产品型号”,
“CPDW”: “产品单位”,
“SL”: “税率”,
“CPSL”: “数量”,
“BHSJE”: “不含税金额”,
“SE”: “税额”,
“FLBM”: “分类编码”,
“XSYH”: “税率优惠”,
“LSLBZ”: “零税率标识”,
“YHSM”: “优惠说明”,
“KCJE”:”0″
}, {
“CPMC”: “产品名称2”,
“CPXH”: “产品型号”,
“CPDW”: “产品单位”,
“SL”: “税率”,
“CPSL”: “数量”,
“BHSJE”: “不含税金额”,
“SE”: “税额”,
“FLBM”: “分类编码”,
“XSYH”: “税率优惠”,
“LSLBZ”: “零税率标识”,
“YHSM”: “优惠说明”,
“KCJE”:”0″
}],
“FJXX”[{
“MC”:”名称”,
“ LY”:”内容”},
{ “MC”:”名称”,
“LY”:”内容”}],
“TDYW”[{
“BDC_SF”:”不动产租赁省份”,
“BDC_XXDZ”:”不动产租赁详细地址”,
“BDC_QSRQ”:”不动产租赁起始日期”,
“BDC_JZRQ”:”不动产租赁截止日期”,
“BDC_KSBZ”:”不动产租赁跨市标志”,
“BDC_CQJH”:”不动产租赁产权证号”,
“BDC_PJDW”:”不动产租赁面积单位”,
“BDCXS_CQZH”:”不动产销售产品证号”,
“BDCXS_DQDZ”:”不动产销售所在省份地区”,
“BDCXS_XXDZ”:”不动产销售详细地址”,
“BDCXS_HTBH”:”不动产销售合同编号”,
“BDCXS_XMBH”:”不动产销售项目编号”,
“BDCXS_JSJG”:”不动产销售计税价格”,
“BDCXS_CJJE”:”不动产销售成交价格”,
“BDCXS_KQBZ”:”不动产销售跨区标志”,
“BDCXS_MJDW”:”不动产销售面积单位”,
“LKYS_CXR”:”旅客运输出行人”,
“LKYS_CXRZJLX”:”旅客运输证件类型”,
“LKYS_CXRZJHM”:”旅客运输证件号码”,
“LKYS_CXRQ”:”旅客运输出行日期”,
“LKYS_CFD”:”旅客运输出发地”,
“LKYS_DDD”:”旅客运输到达地”,
“LKYS_JTGJLX”:”旅客运输交通工具类型”,
“LKYS_DJ”:”旅客运输等级”,
“HWYS_QYD”:”货物运输起运地”,
“HWYS_DDD”:”货物运输到达地”,
“HWYS_YSGJ”:”货物运输运输工具”,
“HWYS_YSGJTH”:”货物运输运输工具牌号”,
“HWYS_YSHWMC”:”货物运输货物名称”,
“GZFW_FSD”:”建筑服务发生地”,
“GZFW_XXDZ”:”发生地详细地址”,
“GZFW_XMMC”:”建筑项目名称”,
“GZFW_XMBH”:”土地增值税项目编号”,
“GZFW_KSBZ”:”跨地市标志”
},{}]
}]
字段 | 是否必需(否的节点,可以不带此节点) | 描述 | 说明 |
XTLSH | 是 | 单据号(相当于订单号) | 唯一字段 |
KHMC | 是 | 客户名称 | |
KHSH | 否 | 客户税号 | 专票(纸专、电专和全电专票)必传 |
KHDZ | 否 | 客户地址 | |
KHKHYHZH | 否 | 开户银行账号 | |
FPZL | 是 | 发票种类 | 004专票 007 普票 026 电票 028 电专 020 全电专票 021 全电普票 |
BZ | 否 | 备注 | |
KPR | 否 | 开票人 | |
SKR | 否 | 收款人 | |
FHR | 否 | 复核人 | |
QYKHYHZH | 否 | 销方银行账号 | |
QYDZDH | 否 | 销方地址电话 | |
YFPHM | 条件是 | 原发票号(原发票代码+原发票号码) | 红字发票必传,普票和电票必有,注意:含(代码)总共18位或20位。 |
XXBBH | 条件是 | 信息表编号 | 红字纸质专票(004)和电子专票(028)必传,普票电票和数电票不需要传。 |
QDBZ | 否 | 清单标志 | 默认为0 |
KHYJ | 否 | 客户邮件 | 自动发邮件 |
KHSJ | 否 | 客户手机 | |
JDC | 否 | 机动车标识 | 1为开具机动车专票 |
DBTS | 否 | 代办退税标识 | 1为开具代办退税发票 |
ZSFS | 否 | 特定业务标识 | BDCZL 不动产租赁BDCXS 不动产销售FWYS 货物运输LKYS 旅客运输GZFW 建筑服务 |
ITEM信息 | |||
CPMC | 是 | 产品名称 | 如果是折扣行,必需与正数行一致的名称 |
CPXH | 否 | 产品型号 | 如果是折扣行,此值为空 |
CPDW | 否 | 产品单位 | 如果是折扣行,此值为空 |
SL | 是 | 税率 | |
CPSL | 否 | 产品数量 | 红冲时为负,红冲时,不能有正数金额。 |
BHSJE | 是 | 不含税金额 | 红冲时为负 |
SE | 是 | 税额 | 红冲时为负 |
FLBM | 是 | 分类编码 | 必需到未级编码 |
XSYH | 否 | 税收优惠 | 有优惠1 无优惠0 |
LSLBZ | 否 | 零税率标识 | SL=0时需要设置1、免税(同时XSYH需设置成1),2、不征税(同时XSYH需设置成1),3、其它或0税率Sl<>0时,值为空 |
YHSM | 否 | 优惠政策说明 | |
KCJE | 否 | 扣除金额 | 差额开票时有用 |
返回示例
{
“Reulst”: “1”,
“Message”: “”,
“SucessList”: [{
“xtlsh”: “001”,
“fpzl”: “”,
“fpdm”: “1233456789012”,
“fphm”: “12345678”,
“kprq”: “2019-01-12T11:20:33”,
“skm”: “税控码”,
“jym”: “校验码”,
“ewm”: “二维码”,
“url”: “”,
“kpjg”: “”,
“kpfk”: “”
}],
“ErrList”: [{
“XTLSH”: “”,
“ErrMsg”: “”
}]
}
字段说明
字段 | 描述 |
SucessList | 成功列表 |
xtlsh | 单据号 |
fpdm | 发票代码 |
fphm | 发票号码 |
kprq | 开票日期 |
skm | 密文 |
jym | 校验码 |
jqbh | 机器编号 |
ewm | 二维码 |
url | 电子发票下载网址 |
kpjg | 开票结果1开票成功 0开票失败 |
kpfk | 开票反馈信息 |
ErrList | 失败列表 |
XTLSH | 系统流水号 |
ErrMsg | 错误信息 |
HaveSave | 是否接收数据成功 |
注意:
Result=0时,HaveSave=0时 说明数据异常,数据没有进行保存,无需调用后续的接口。
Result=0时 ,HaveSave=1时,说明数据正常,但可能是在开票过程中出现异常,这时候可以调用KPJG来查询开票状态。
HaveSave说明数据已经保存了下来,在开具全电发票时,系统会重试进行开具
Result=1时,不代表一定是开票成功,当离线开票或税盘不在线时可能代表接收成功,如果是批量开票时,还需要关注下ErrList这个值,此时有可能是部份成功,部份不成功。
唯一能确定开票成功开票的情况: SucessList列表并且发票号不是为空的情况,如果Result=1并且SucessList列表中返回的发票号码是空的,需要用异步获取开票结果进行获取开票状态。
返回报文参考例子:
数据错误报文:
{“Result”:”0″,”Message”:”折扣行的产品单位必需是空。”,”ErrList”:[{“XTLSH”:”144115188078156755″,”ErrMsg”:”折扣行的产品单位必需是空。 “,”HaveSave”:”0″}],”SucessList”:[]}
发票库存不足:
{“Result”:”0″,”Message”:”发票已经用完,请申领发票”,”ErrList”:[{“XTLSH”:”144115188078708534″,”ErrMsg”:”发票已经用完,请申领发票”}],”SucessList”:[]}
异步或税盘不在线时:
{“Result”:”1″,”Message”:”成功”,”ErrList”:[],”SucessList”:[{“xtlsh”:”144115188078732376″,”fpzl”:”026″,”fpdm”:””,”fphm”:””,”kprq”:””,”skm”:””,”jym”:””,”jqbh”:””,”ewm”:””,”url”:””,”kpjg”:”0″,”pdfxx”:””,”kpfk”:”数据保存成功”}]}
正常开具:
{“Result”:”1″,”Message”:”成功”,”ErrList”:[],”SucessList”:[{“xtlsh”:”144115188079268993″,”fpzl”:”026″,”fpdm”:”044002100411″,”fphm”:”22338521″,”kprq”:”20211026″,”skm”:”007+1-75\u003c0-42-+64847*2+5/+*11113*448/482-13\u003e\u003e+0173/9775922*4-\u003c+89/28424/-\u003c087/\u003c8**/\u003c183130*+1*130701+6\u003c+1998\u003c424″,”jym”:”06441947523575629741″,”jqbh”:”237001069144″,”ewm”:”01,01,044002100411,22338521,111.63,20211026,06441947523575629741,2C4A,”,”url”:”/KPGL/PDFXZ?XYM=06441947523575629741\u0026FPZL=026″,”kpjg”:”1″,”pdfxx”:”PDF生成成功”,”kpfk”:”开具成功”}]}
重复提交:
{“Result”:”0″,”Message”:”此单据已经开过发票, FPHM = 03100210041182467316:KPRQ =2021-10-25 00:00:00.000。”,”ErrList”:[{“XTLSH”:”144115188079291147″,”FPHM”:”03100210041182467316″,”KPRQ”:”2021-10-25 00:00:00.000″,”MW”:”[MDAqOTM1LTUyPjM8PjI4KzI8LTM5KzQxLy8wODw1MS0qKjM0OTkyMjUzMjE2PCs5ODw+NjcwODAzMjgrKjc1Ny0rMTc1NTYyPDkyLzY5Ny80Kz4qLTkwPjMxKzc2OTwyNDcwMTg0MCoxOS0+MTg0Pg==]”,”XYM”:”06182134178896463325″,”JQBH”:”587005306549″,”FPZL”:”026″,”ErrMsg”:”此单据已经开过发票, FPHM = 03100210041182467316:KPRQ =2021-10-25 00:00:00.000。 “,xtlsh”:”144115188079291147″,”fpzl”:”026″,”fpdm”:”031002100411″,”fphm”:”82467316″,”kprq”:”20211025,”skm”:”007+1-75\u003c0-42-+64847*2+5/+*11113*448/482-13\u003e\u003e+0173/9775922*4-\u003c+89/28424/-\u003c087/\u003c8**/\u003c183130*+1*130701+6\u003c+1998\u003c424″,”jym”:”06182134178896463325″,”jqbh”:”237001069144″,”ewm”:”01,01,044002100411, 82467316,111.63,20211025, 06182134178896463325,2C4A,”,”url”:”/KPGL/PDFXZ?XYM=06182134178896463325\u0026FPZL=026″,”kpjg”:”1″,”pdfxx”:”PDF生成成功”,”kpfk”:”开具成功”],”SucessList”:[]}
注意:参数是放在body上,不是在url上,如果在url上发票数据过长,会返回test,正确的写法如下:
4.2、重新审核单据(将待开票的数据重新提交开票)
路径
/NEWKP/KPGL/SHKP
参数:
spid=&data=
其中data是json报文进行base64编码
Json报文如下:
[{“FPZL”:”021″,”XTLSH”:”20230301194210136866″}]
字段 | 是否必需 | 描述 |
spid | 是 | spid |
data | 是 | json报文进行base64后的编码 |
FPZL | 是 | 发票种类 |
XTLSH | 是 | 单据号 |
注意:json是一个list,同时可以有多张单据审核。
返回值:
{“Result”:”1″,”Message”:”成功,离线开票模式!”,”ErrList”:[],”SucessList”:[]}
4.3、获取列表或信息(已开发票、未开发票、进行中的)
路径
/NEWKP/KPGL/FPLIST
参数:
fpzl=&qsrq=&jzrq=&mxbz=&qysh=&spid=&pageindex=&pagesize=&fpzt=& zfbz=&gjz=&isupload=&fphm=&xxbbh=&xtlsh=&iszsfp=&isfsfp=
字段 | 是否必需 | 描述 |
qsrq | 条件必需 | 起始日期(xtlsh 和 fphm为空时必需输入) |
jzrq | 条件必需 | 截止日期(xtlsh 和 fphm为空时必需输入) |
qysh | 条件必需 | 企业税号与spid其中一个不能为空 |
spid | 条件必需 | 税盘id 与qysh其中一个不能为空 |
mxbz | 是 | 1,需要获取明细 0不需要获取明细 |
fpzl | 否 | 发票种类 |
fpzt | 否 | 发票状态0 查询批量开票数据(待开票的)1 已开票(不传时默认),2开票中 |
zfbz | 否 | 作废标志0 未作废 1已作废 |
gjz | 否 | 关键字,搜索内容为 客户名称,发票号,流水号 |
isupload | 否 | 是否上传税务局 0 未上传 1已上传 |
fphm | 否 | 发票号,查询某张发票号 |
xxbbh | 否 | 信息表编号 |
xtlsh | 否 | 单据号 |
iszsfp | 否 | 正数发票 |
isfsfp | 否 | 负数发票 |
pageindex | 是 | 当前页 |
pagesize | 是 | 每页最大数 |
返回示例
{
“Result”: “1”,
“Message”: “成功”,
“total”: 1,
“rows”: [
{
“xtlsh”: “527dcfdfd3cac8271e29d9461995efa5”,
“spid”: “33d325019df04c21b2e6273b2ff143a3”,
“qysh”: “91440101340088133N”,
“xfyh”: “XXXX”,
“xfdz”: “XXXX”,
“fplxdm”: “004”,
“fpdm”: “4400203130”,
“fphm”: “37839682”,
“kprq”: “2021-03-07 00:00:00”,
“ghdwsbh”: “91440101340088133N”,
“ghdwmc”: “XXXX”,
“ghdwdzdh”: “chaingz”,
“ghdwyhzh”: “6666666666666666”,
“hjje”: “369”,
“hjse”: “47.97”,
“jshj “: “416.97”,
“url”: “”,
“skr”: “XXXX”,
“fhr”: “XXXX”,
“kpr”: “XXXX”,
“bz”: “bzxx”,
“yfpdm”: “”,
“yfphm”: “”,
“tzdbh”: “”,
“chfpdm”: “”,
“chfphm”: “”,
“spr”: “qq.com”,
“fpdyzt”: “0”,
“qdbz”: “0”,
“xym”: “”,
“jqbh”: “”,
“zfbz”: “0”,
“zfrq”: “”,
“fpmx”: [
{
“spmc”: “”,
“dj”: “”,
“sl”: “”,
“spsl”: “”,
“je”: “”,
“se”: “”,
“ggxh”: “”,
“dw”: “”,
“flbm”: “”,
“xsyh”: “”,
“lslbz”: “”,
“yhsm”: “”
}
]
}
]
}
返回结果字段说明
字段 | 描述 | 说明 |
xtlsh | 单据号 | 传过来的XTLSH |
spid | 税盘ID | |
qysh | 开票税号 | |
xfyh | 销方银行和账号 | |
xfdz | 销方地址电话 | |
fplxdm | 发票类型代码 | |
fpdm | 发票代码 | |
fphm | 发票号码 | |
kprq | 开票日期 | |
ghdwsbh | 购货单位识别号 | |
ghdwmc | 购货单位名称 | |
ghdwdzdh | 购货单位地址和电话 | |
ghdwyhzh | 购货单位银行账号 | |
hjje | 整张发票的合计不含税金额 | |
hjse | 整张发票的合计税额 | |
jshj | 整张发票的价税合计 | |
url | 电子发票的URL | |
skr | 收款人 | |
fhr | 复核人 | |
kpr | 开票人 | |
bz | 备注 | |
yfpdm | 原发票代码 | |
yfphm | 原发票号码 | |
tzdbh | 信息表编号 | |
chfpdm | 红冲发票代码 | |
chfphm | 红冲发票号码 | |
spr | 收件人(电子邮箱) | |
fpdyzt | 发票打印状态 | |
qdbz | 清单标志 | |
xym | 校验码 | |
jqbh | 机器编号 | |
zfbz | 作废标志 | |
zfrq | 作废日期 | |
fpmx | ||
spmc | 商品名称 | |
dj | 单价 | |
sl | 税率 | |
spsl | 数量 | |
je | 金额 | |
se | 税额 | |
ggxh | 规格型号 | |
dw | 单位 | |
flbm | 分类编码 | |
xsyh | 税收优惠 | |
lslbz | 零税率标识 | |
yhsm | 优惠说明 |
4.4、获取开票结果(异步方式)
路径
/NEWKP/KPGL/KPJG
参数
fpzl=&xtlsh=&spid=
字段说明:
字段 | 是否必需 | 描述 |
fpzl | 是 | 发票种类 |
xtlsh | 是 | 单据号 |
spid | 是 | 税盘ID |
返回:
{
“Result”: “1”,
“Message”: “”,
“XTLSH”: “001”,
“FPHM”: “123345678901212345678”,
“KPRQ”: “2019-01-12T11:20:33”,
“MW”: “税控码”,
“XYM”: “校验码”,
“JQBH”: “机器编号”,
“URL”: “”,
“SWQM”: “”
}
字段说明
字段 | 描述 |
XTLSH | 单据号 |
FPHM | 发票号码(18位或20位)含代码 |
KPRQ | 开票日期 |
MW | 密文 |
XYM | 校验码 |
JQBH | 机器编号 |
URL | 电子发票下载网址 |
1、FPKJ成功的接口才能来调用kpjg
Result=0 表示调用失败或开票失败,你需要注意message描述信息
Result=1 表示调用成功,并且开具成功
2、code=100,说明是调用错误,请认真看调用参数
3、Code=200 说明调用的结果是从缓存中取的数据
4、FPZT=0 表示数据当前在待审核中,FPZT=2 表示数据当前在进行中,FPZT=1表示当前数据在已开发票
5、FPZT=2可以隔一段时间再来查询一次,FPZT=0,可以将错误信息显示给用户,如果用户需要重新审核开具,调用审核接口,
6、Message中包括 身份认证已超时 时,需要重新扫脸了
5、按名称查税号(额外付费,非必要接口)
路径
/NEWKP/JCZL/ZNKHZL
参数
khmc=
字段 | 描述 |
khmc | 企业名称 |
返回{
“Result”:“1”,
“Message”:“成功”,
“KHZLList”:[
{
“AddressAndTel”:“深圳市南山区粤海街道滨海社区海天二路25号深圳湾创业投资大厦34层01B号 0755-36510101”,
“BankNameAndNo”:“招商银行深圳高新园支行 755913405210604”,
“clientName”:“深圳用友软件有限公司”,
“clientTaxNo”:“914403007954179686”,
“taxNo”:“233424ff4eaa4fc78e4edb14335e0f57”
},
{
“AddressAndTel”:“江西省南昌市红谷滩新区嘉言路668号语音服务中心(第1-8层) 0791-82220817”,
“BankNameAndNo”:“工行南昌火炬大道支行 1502007319000033101”,
“clientName”:“江西用友软件有限责任公司”,
“clientTaxNo”:“91360106674971815A”,
“taxNo”:“b7f28117bba24462afb2d9247d59e169”
}
]
}
6、智能编码(额外付费,非必要接口)
路径
/NEWKP/JCZL/ZNBM
参数
cpmc=
字段 | 描述 |
cpmc | 产品名称 |
返回:
{
“Result”:”1″,
“Message”:”调用成功”,
“FLBMList”:[
{“BM”:””,”MC”:””}
]
}
7、获取人脸二维码(非必要接口)
路径
/NEWKP/TERM/QRCODE
参数
spid=
字段 | 描述 |
spid | 税盘id |
返回报文:
{“Result”:”1″,”Message”:”正常”,”Qrcode”:”qrcode_id=GoxyDRLmU7tuqev4G6oAZcN7IPdfOiLVk0yDLgRmqagFAdAvmDp7i7Yobk7zzkNM\u0026areaPrefix=3502\u0026interfaceCode=0004″}
8、开票额度获取(非必要接口)
路径
/NEWKP/TERM/KPED
参数
spid=
字段 | 描述 |
spid | 税盘id |
返回报文:
{
“sysxed”: “5954311.37”,
“ysysxed”: “45688.63”,
“zsxed”: “6000000.00”,
“syzzfpzs”: “0”,
“ysyfpzs”: “0”,
“zfpzs”: “”,
“bykjlpzs”: “272”,
“fphjje”: “56989.08”,
“fpejse”: “7369.35”,
“sbbz”: “N”,
“zrbz”: “N”,
“Result”: “1”,
“Message”: “成功”
}
9、获取企业基本信息(非必要接口)
路径
/NEWKP/TERM/FACEINFO
参数
spid=
字段 | 描述 |
spid | 税盘id |
返回值:
{
“yjjb”: “01”,
“sxlb”: “3”,
“sfsl”: “N”,
“itsScanFlag”: “N”,
“kpxx”: “{\r\n \”nsrsbh\”: \”91440101MA5AR3WE9Y\”,\r\n \”djxh\”: \”10114401010000844416\”,\r\n \”qdbz\”: \”Y\”,\r\n \”rylb\”: \”09\”,\r\n \”ssdabh\”: \”91440101MA5AR3WE9Y\”,\r\n \”shxydm\”: null,\r\n \”provinceId\”: \”4400\”,\r\n \”nsrmc\”: \”广州斑马网络科技有限公司\”,\r\n \”nsrlx\”: \”1\”,\r\n \”scjydz\”: \”广州市天河区中山大道西6号、8号夹层自编TS-15房\”,\r\n \”zcdz\”: \”广州市天河区中山大道西6号、8号夹层自编TS-15房\”,\r\n \”scjydlxdh\”: \”13711485807\”,\r\n \”zcdyzbm\”: \”511356\”,\r\n \”zcdlxdh\”: \”13711485807\”,\r\n \”fddbrxm\”: null,\r\n \”djzclxdm\”: \”173\”,\r\n \”hydm\”: \”6519\”,\r\n \”ssjswjgdm\”: \”14400000000\”,\r\n \”dsjswjgdm\”: \”14401000000\”,\r\n \”qxjswjgdm\”: \”14401060000\”,\r\n \”swjgdm\”: \”14401060000\”,\r\n \”swjgmc\”: \”\”,\r\n \”jyfw\”: \”软件开发;显示器件销售;电子产品销售;企业管理咨询;供应链管理服务;票据信息咨询服务;财务咨询;图文设计制作;商务代理代办服务;市场主体登记注册代理;工商登记代理代办;品牌管理;企业管理;税务服务;信息咨询服务(不含许可类信息咨询服务);市场营销策划;人力资源服务(不含职业中介活动、劳务派遣服务);互联网数据服务;人工智能行业应用系统集成服务;数据处理和存储支持服务;人工智能基础软件开发;数字内容制作服务(不含出版发行);人工智能通用应用系统;人工智能应用软件开发;软件外包服务;人工智能理论与算法软件开发;智能机器人的研发;信息技术咨询服务;数据处理服务;大数据服务;物联网设备销售;软件销售;计算器设备销售;信息安全设备销售;互联网销售(除销售需要许可的商品);互联网设备销售;\”,\r\n \”cwfzrxm\”: \”方杨周\”,\r\n \”khhmc\”: null,\r\n \”yhzh\”: null,\r\n \”bsrxm\”: \”方杨周\”,\r\n \”ssglydm\”: \”14401002137\”,\r\n \”ssglyxm\”: \”\”,\r\n \”jdxzDm\”: \”440106006\”,\r\n \”djrq\”: \”2018-03-22 00:00:00\”,\r\n \”xdpsdqybz\”: \”\”,\r\n \”fxnsrlx\”: \”\”,\r\n \”xydj\”: \”\”,\r\n \”ckqyfldm\”: \”\”,\r\n \”zfjglxdm\”: \”0\”,\r\n \”nsryjjb\”: \”\”,\r\n \”dqsj\”: \”20230608\”,\r\n \”province\”: \”广东\”,\r\n \”fxnsrbz\”: \”\”,\r\n \”nsrztdm\”: \”03\”,\r\n \”yxqq\”: \”\”,\r\n \”yxqz\”: \”\”,\r\n \”sfkkjzzfp\”: \”Y\”,\r\n \”dqskssq\”: \”202306\”,\r\n \”sbzt\”: \”\”,\r\n \”kpr\”: \”汤小会\”,\r\n \”qyhyxz\”: [],\r\n \”xfsnsrlx\”: [],\r\n \”qysxed\”: null,\r\n \”tdys\”: [\r\n {\r\n \”tdyslxdm\”: \”03\”,\r\n \”tdyslxmc\”: \”建筑服务\”,\r\n \”xybz\”: null,\r\n \”yxbz\”: null\r\n },\r\n {\r\n \”tdyslxdm\”: \”04\”,\r\n \”tdyslxmc\”: \”货物运输服务\”,\r\n \”xybz\”: null,\r\n \”yxbz\”: null\r\n },\r\n {\r\n \”tdyslxdm\”: \”05\”,\r\n \”tdyslxmc\”: \”不动产销售\”,\r\n \”xybz\”: null,\r\n \”yxbz\”: null\r\n },\r\n {\r\n \”tdyslxdm\”: \”13\”,\r\n \”tdyslxmc\”: \”拖拉机和联合收割机\”,\r\n \”xybz\”: null,\r\n \”yxbz\”: null\r\n },\r\n {\r\n \”tdyslxdm\”: \”06\”,\r\n \”tdyslxmc\”: \”不动产经营租赁服务\”,\r\n \”xybz\”: null,\r\n \”yxbz\”: null\r\n },\r\n {\r\n \”tdyslxdm\”: \”09\”,\r\n \”tdyslxmc\”: \”旅客运输服务\”,\r\n \”xybz\”: null,\r\n \”yxbz\”: null\r\n }\r\n ],\r\n \”fpzldms\”: [\r\n {\r\n \”fpzldm\”: \”01\”,\r\n \”fpzlmc\”: \”增值税专用发票\”\r\n },\r\n {\r\n \”fpzldm\”: \”02\”,\r\n \”fpzlmc\”: \”普通发票\”\r\n }\r\n ],\r\n \”zgswskfjDm\”: null,\r\n \”xfdzdhyhzh\”: null,\r\n \”jzjtbz\”: \”N\”,\r\n \”yhxxList\”: [\r\n {\r\n \”yhzhxzDm\”: \”1110\”,\r\n \”yhyywdDm\”: \”102440120387\”,\r\n \”yhyywdmc\”: \”中国工商银行股份有限公司广州盈彩支行\”,\r\n \”yhzh\”: \”3602074909100033240\”\r\n }\r\n ],\r\n \”smkpid\”: \”?p=YmQ2YWJhNTVjNGMwYjJkMGNjYjdmMDM3ZDg2MjYwOGU0ZjI4ODcyY2IyYWY4ZTNlM2ZlNjVmZTMxZmY4ZmRhZjUxMDZhZjg3YzlmZDQ0MWY5MWE2NTliOGI2N2FjMGM1Ji0xJjQ0MDA&s=DPPT_SMKP&v=01&province=广东&smkpid=35ca195ee817f85d96db2c3a6213ec8c&provinceid=4400&kpdwmc=广州斑马网络科技有限公司&kpdwnsrsbh=91440101MA5AR3WE9Y&gndm=SMKP\”,\r\n \”proviceId\”: \”4400\”\r\n}”,
“Result”: “1”,
“Message”: “成功”
}
注意:这里有一个非常重要的字段,sfsl 是否扫脸,Y代表需要扫脸N代表不需要扫脸
10、登陆接口(非必要接口)
/NEWKP/TERM/LOGIN
参数
spid=&dzswjyh=&dzswjmm=&dlfs=
字段 | 描述 |
spid | 税盘id |
dzswjyh | 电子税务局账号 |
dzswjmm | 电子税务局密码 |
dlfs | 0 rpa端手工输入短信 1手机卡托管模式 2,调用方式输入短信,4、二维码扫脸登陆 |
返回报文:
{“Result”:”1″,”Message”:”正常登陆”}
返回说明:
调用此接口会根据不同的登陆模式(短信登陆或扫脸登陆)返回不同的DATA内容。
如果验证码登陆时:调用这个接口时,如果data返回的解密后不是手机号,说明已经登陆成功,无需获以验证码(系统已经在登陆状态),同理,扫脸登陆时也是一样
11、设置验证码(非必要接口)
/NEWKP/OTHER/SetSMS
参数
spid=&yzm=
字段 | 描述 |
spid | 税盘id |
yzm | 验证码 |
返回报文:
{“Result”:”1″,”Message”:”调用成功”}
调用此接口前,必需先调用10的LOGIN
12、二维码登陆等待(非必要接口)
说明:等待操作员扫脸
/NEWKP/TERM/EWMDD
参数
spid=
字段 | 描述 |
spid | 税盘id |
返回报文:
{“Result”:”1″,”Message”:”调用成功”}
调用说明:一般流程是:调用完10的LOGIN(此接口返回二维码的img)后,将二维码展示给操作者,然后调用此接口进行等待扫码完成。
13、短信申请(非必要接口)
/NEWKP/OTHER/SQSMS
参数
qysh=&sjh=&id=
字段 | 是否必需 | 描述 |
qysh | 是 | qysh=给每一个项目起一个id,没有格式要求 |
sjh | 否 | 手机号 |
id | 是 | 产生一个32位的唯一号,每个接口保持一致就行 |
返回报文:
{“Result”:”1″,”Message”:”申请成功”}
注:只有在申请成功时,才能调用获取短信验证码,如果是Result=0时,需要进行轮循调用,直到Result=1
Result=1成功后,需要开始 到目标网站(如税务局)发送 验证码,发送完后,用14来获取验证码
如果是 Result=1,如果是 目标网站(如税务局)发送 验证码 时,不能发送成功,如发送超频,那么,需要调用 终止短信申请15接口
14、获取短信验证码(非必要接口)
/NEWKP/OTHER/SMS
参数
id=
字段 | 是否必需 | 描述 |
id | 是 | 与SQSMS接口保持一致 |
返回报文:
{“Result”:”1″,”Message”:”获取成功”,”YZM”:”验证码”}
注意:
Result=1并且YZM=’’ (空)时需要等待2秒再轮循一次
Reulst=1 && YZM=有内容,中止轮循
Result=0时,终止轮循
15:终止短信申请(非必要接口)
/NEWKP/OTHER/SMSOK
参数
id=
字段 | 是否必需 | 描述 |
id | 是 | 与SQSMS接口保持一致 |
不用管返回
16、发票修复(非必要接口)
/NEWKP/KPGL/FPXF
参数
spid=&xfyf=
字段 | 是否必需 | 描述 |
spid | 是 | 税盘id |
xfyf | 否 | 修复月份,如202306 |
返回报文:
{“Result”:”1″,”Message”:”完成”}
注:这是一个异步的接口,调用完后,等几分钟再调用FPLIST获取发票结果
17、更新电局登陆信息
/NEWKP/TERM/SJMMGX
参数:
spid=&dzswjyh=&dzswjmm=&dzswjyh_jx=&dzswjmm_jx=
字段 | 是否必需 | 描述 |
spid | 是 | 税盘id |
dzswjyh | 是 | 电子税务局用户 |
dzswjmm | 是 | 电子税务局密码 |
dzswjyh_jx | 否 | 电子税务局用户(进项同步) |
dzswjmm_jx | 否 | 电子税务局密码(进项同步) |
返回报文:
{“Result”:”1″,”Message”:”完成”}
18、发送到微信卡包
/NEWKP/WX/SetInvoiceAUTHURL
参数:
spid=&orderid=&fpzl=
返回报文:
{“Result”:”1″,”Message”:”完成”,”URL”:””}
注意:返回的url,让用户在微信中打开。
附录:《省份代码》
序号 省市代码 省市名称 详细说明
1 1100 北京 直辖市
2 1200 天津 直辖市
3 3100 上海 直辖市
4 4403 深圳 直辖市
5 5000 重庆 直辖市
6 2102 大连 计划单列市
7 3702 青岛 计划单列市
8 3302 宁波 计划单列市
9 3502 厦门 计划单列市
10 3400 安徽
11 3500 福建
12 3600 江西
13 3700 山东
14 4100 河南
15 4200 湖北
16 4300 湖南
17 4400 广东
18 4500 广西
19 4600 海南
20 1400 山西
21 5100 四川
22 5200 贵州
23 5300 云南
24 5400 西藏
25 6100 陕西
26 6200 甘肃
27 6300 青海
28 6400 宁夏
29 6500 新疆
30 1500 内蒙
31 1300 河北
32 2100 辽宁
33 2200 吉林
34 2300 黑龙江
35 3200 江苏
36 3300 浙江