# 数电发票API **Repository Path**: iYUN2/digital-invoice-api ## Basic Information - **Project Name**: 数电发票API - **Description**: 数电发票API,自动化开票,开发票API - **Primary Language**: 其他 - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 1 - **Created**: 2024-01-23 - **Last Updated**: 2024-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数电发票API 数电发票API,自动化开票,开发票API ## 接口规范 1、所有的调用都采用POST方式; 2、除了获取token接口外,都需要参数token(小写); 3、路径中不含127.0.0.1的参数不是以JSON进行传送,表单方式提交值: 参数1=值1&参数2=值…… 方式传送,含有127.0.01的,都是以JSON进行传送; 4、Content-Type:application/x-www-form-urlencoded;charset=UTF-8; 5、返回值是以JSON形式返回,返回值中都有Result和Message节点,Result=1时,表示调用成功,0表示失败,Message,为调用信息; 6、参数都是用小写,如果文档自动转换成大写,请忽略大写; 7、需要进行base64加密的字段,比如:FPKJ中的data参数,JSON节点都用大写; 8、参数字段说明中,如果没有 “是否必需” 这一列,说明是必需要有的; 9、所有用到Base64的地方,都采用utf-8字符集加密; 10、token是需要放在head头部。 ## 接口权限获取 请登陆 [https://pbs.net.cn](https://pbs.net.cn) ## 获取token 说明: 获取平台token,有效期为30天,每次新的登陆会停止原有的token,在调用业务api时,如果返回中有Code字段(c是大写),并且Code值在2001-2009范围 ,那么需要重新获取一次token。 请求路径:`/API/LOGIN/GetToken` ### 入参说明 |参数名|是否必须|说明| |---|---|---| |UserName|是|用户名| |Password|是|密码| ### 返回值: ``` { "Result": "1", "Message": "系统登陆成功。", "ID": "[S5qvk5VuiUZoViBuHCN787eXqq0HcopVCdw43Z]" } ``` ### 返回值说明: 1、获取到的ID,用于以下接口的header头的token参数。 2、获取到的ID,前后是有[]括起来的,请不要去掉中括号。 3、所有接口头部都需要加上token,如下图: ### 代码示例 ```js const qs = require('querystring') const url = 'https://api域名/API/LOGIN/GetToken' const params = { UserName:'您的UserName', Password:'您的Password' } const res = http.request(url, { data:qs.stringify(prarms), method:'POST', headers:{ 'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8' }, dataType:'json', contentType:'json' }) ``` ## 查询客户列表 请求路径:`/API/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|企业spid| |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|离线金额| ### 代码示例 ```js const qs = require('querystring') const url = 'https://api域名/API/TERM/LIST' const token = '登陆获取的token' const res = http.request(url, { method:'POST', headers:{ token, 'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8' }, dataType:'json', contentType:'json' }) ``` ## 添加客户 请求路径:`/API/TERM/REGISTRY` ### 字段说明 |字段|是否必须|描述| |---|---|---| |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 |企业spid| ### 代码示例 ```js const qs = require('querystring') const url = 'https://api域名/API/TERM/REGISTRY' const token = '登陆获取的token' const data = { qymc:'企业名称', qysh:'企业税号', ssdq:'所属省份代号', } const res = http.request(url, { data:qs.stringify(data), method:'POST', headers:{ token, 'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8' }, dataType:'json', contentType:'json' }) ``` ## 全电发票开具(含蓝字和红字发票) 请求路径:`/API/KPGL/FPKJ` ### 参数(注意用POST方式,不要用GET方式) 说明:(注意:data有个[]),发票内容见下面内容 |字段|描述| |---|---| |data| 发票数据json的base64,同时需要对base64用[]括号起来| |spid| 企业spid| post的数据最终格式为spid=客户的spid&data=[base64] ### 发票数据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": "144115188079268993", "fpzl": "026", "fpdm": "044002100411", "fphm": "22338521", "kprq": "20211026", "skm": "007+1-75<0-42-+64847*2+5/+*11113*448/482-13>>+0173/9775922*4-<+89/28424/-<087/<8**/<183130*+1*130701+6<+1998<424", "jym": "06441947523575629741", "jqbh": "237001069144", "ewm": "01,01,044002100411,22338521,111.63,20211026,06441947523575629741,2C4A,", "url": "/KPGL/PDFXZ?XYM=06441947523575629741&FPZL=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": " ", "jym": "06182134178896463325", "jqbh": "237001069144", "ewm": "01,01,044002100411, 82467316,111.63,20211025, 06182134178896463325,2C4A,", "url": "/KPGL/PDFXZ?XYM=06182134178896463325&FPZL=026", "kpjg": "1", "pdfxx": "PDF生成成功", "kpfk": "开具成功" } ], "SucessList": [ ] } ``` 注意:参数是放在body上,不是在url上,如果在url上发票数据过长,会返回test,正确的写法如下: ## 重新审核单据(将待开票的数据重新提交开票) 请求路径:`/API/KPGL/SHKP` 其中data是json,进行base64编码 Json数据如下: ``` [{"FPZL":"021","XTLSH":"20230301194210136866"}] ``` ### 字段说明 |字段|是否必需|描述| |---|---|---| |spid|是|spid| |data|是|json数据进行base64后的编码| |FPZL|是|发票种类| |XTLSH|是|单据号| 注意:json是一个array/list,同时可以有多张单据审核。 ### 返回值: ``` { "Result": "1", "Message": "成功,离线开票模式!", "ErrList": [ ], "SucessList": [ ] } ``` ## 获取列表或信息(已开发票、未开发票、进行中的) 请求路径:`/API/KPGL/FPLIST` ### 参数: |字段|是否必需|描述| |---|---|---| |qsrq|条件必需|起始日期(xtlsh 和 fphm为空时必需输入)| |jzrq|条件必需|截止日期(xtlsh 和 fphm为空时必需输入)| |qysh|条件必需|企业税号与spid其中一个不能为空| |spid|条件必需|企业spid 与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|企业spid| |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|优惠说明| ## 获取开票结果(异步方式) 请求路径:`/API/KPGL/KPJG` ### 字段说明: |字段 |是否必需 |描述| |---|---|---| |fpzl |是 |发票种类| |xtlsh |是 |单据号| |spid |是 |企业spid| ### 返回示例 ``` { "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中包括 身份认证已超时 时,需要重新扫脸了。 ## 获取人脸二维码(非必要接口) 请求路径:`/API/TERM/QRCODE` ### 参数 |字段 |描述| |---|---| |spid |企业spid| ### 返回示例 ``` { "Result": "1", "Message": "正常", "Qrcode": "qrcode_id=GoxyDRLmU7tuqev4G6oAZcN7IPdfOiLVk0yDLgRmqagFAdAvmDp7i7Yobk7zzkNM&areaPrefix=3502&interfaceCode=0004" } ``` ## 登陆接口(非必要接口) 请求路径:`/API/TERM/LOGIN` ### 参数 |字段 |描述| |---|---| |spid |企业spid| |dzswjyh |电子税务局账号| |dzswjmm |电子税务局密码| |dlfs |0 rpa端手工输入短信 1手机卡托管模式 2,调用方式输入短信,4、二维码扫脸登陆| ### 返回示例 ``` {"Result":"1","Message":"正常登陆"} ``` ### 返回说明: 调用此接口会根据不同的登陆模式(短信登陆或扫脸登陆)返回不同的DATA内容。 如果验证码登陆时:调用这个接口时,如果data返回的解密后不是手机号,说明已经登陆成功,无需获以验证码(系统已经在登陆状态),同理,扫脸登陆时也是一样 ## 设置验证码(非必要接口) 请求路径:`/API/OTHER/SetSMS` ### 参数 |字段 |描述| |---|---| |spid |企业spid| |yzm |验证码| ### 返回示例 ``` {"Result":"1","Message":"调用成功"} ``` 调用此接口前,必需先调用`登陆接口(非必要接口)/API/TERM/LOGIN` ## 二维码登陆等待(非必要接口) 说明:等待操作员扫脸 请求路径:`/API/TERM/EWMDD` ### 参数 |字段 |描述| |---|---| |spid |企业spid| ### 返回示例 ``` {"Result":"1","Message":"调用成功"} ``` 调用说明:一般流程是:调用完10的LOGIN(此接口返回二维码的img)后,将二维码展示给操作者,然后调用此接口进行等待扫码完成。 ## 获取短信验证码(非必要接口) 请求路径:`/API/OTHER/SMS` ### 参数 |字段 |是否必需 |描述| |---|---|---| |qysh |是 |企业税号或企业spid或设备id| |cch |否 |设备槽号,如果此字段有值时,qysh就是设备id| |khao |否 |卡号| |id |是 |与10保持一致。| |lx |是 |固定值1| ### 返回示例 ``` {"Result":"1","Message":"获取成功",”YZM”:”验证码”} ``` ## 发票修复(非必要接口) 请求路径:`/API/KPGL/FPXF` ### 参数 |字段 |是否必需 |描述| |---|---|---| |spid |是 |企业spid| |xfyf |否 |修复月份,如202306| ### 返回示例 ``` {"Result":"1","Message":"完成"} ``` 注:这是一个异步的接口,调用完后,等几分钟再调用FPLIST获取发票结果 ## 更新电局登陆信息 请求路径:`/API/TERM/SJMMGX` #### 参数: |字段|是否必需|描述| |spid |是 |企业spid| |---|---|---| |dzswjyh |是 |电子税务局用户| |dzswjmm |是 |电子税务局密码| |dzswjyh_jx |否 |电子税务局用户(进项同步)| |dzswjmm_jx |否 |电子税务局密码(进项同步)| ## 返回示例 ``` {"Result":"1","Message":"完成"} ``` ### 省份代码 |序号|省市代码|省市名称| |---|---|---| |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|浙江|