1、税控开票服务器组件接口规范税控开票服务器组件接口规范(标准版)税控项目组2015年9月目录目录2第一章概述31。接口概述32.适用范围3第二章接口调用方式41。本地ActiveX组件调用42.本地DLL调用6第三章接口定义61.参数设置62。税控钥匙信息查询73.发票开具94.发票作废155。发票查询176。发票领购信息查询207.发票打印228。页边距设置239。查询当前未开票号2410.发票领购信息分发2611。发票领购信息退回27第一章 概述1. 接口概述企业核心业务系统通过接口实现与税控开票服务器的通信,完成发票管理、发票开具和税控服务器信息查询功能。接口根据调用方式的不同分为远程Se
2、rvlet接口和本地ActiveX组件接口.2. 适用范围本接口规范仅适用于开票端通过组件接口ActiveX控件和Servlet接口方式访问税控开票服务器。第二章 接口调用方式本地接口提供ActiveX控件和DLL两种调用方式,接口列表见下表。序号接口ID接口说明其它说明120001参数设置本地接口220002税控钥匙信息查询本地接口310008发票开具本地接口410009发票作废本地接口510010发票查询本地接口610005发票领购信息查询本地接口720004发票打印本地接口820003打印页边距设置本地接口910004查询当前未开票号本地接口1010006发票领购信息分发本地接口1110
3、007发票领购信息退回本地接口1. 本地ActiveX组件调用n ActiveX组件文件名:NISEC_SKSCX.ocxn ActiveX组件GUID:CLASSID=”clsid: 003BD8F2A6C348EF9B72-ECFD8FC4D49F”n 函数定义:String Operate(string sInputInfo);参数: sInputInfo 输入XML信息返回值:返回结果XML字符串n 调用示例:headtitleActiveX组件调用示例OBJECT ID=skCLASSID=clsid:003BD8F2A6C348EF-9B72ECFD8FC4D49F” codeba
4、se=NISEC_SKSCX.ocx#version=1,0,0,1”script language=”javascriptfunction SetParameter()var sInputInfo = ”?xml version=”1.0 encoding=”gbk?rnbusiness id=”20001 comment=参数设置rnbody yylxdm=1rnservletip192。168.0.1/servletiprnservletport700100000000rn/business”;alert(sInputInfo);try ret = sk。Operate(sInputIn
5、fo);alert(ret); catch(e) alert(e。message + ,errno:” + e.number); function KeyQuery()var sInputInfo = rnbody yylxdm=1”rnkeypwd00000000;alert(sInputInfo);try ret = sk。Operate(sInputInfo);alert(ret); catch(e) alert(e.message + ,errno: + e.number); /script/headbody bgcolor=f0f0ffform name=formDatatable
6、border=2 cellspacing=0caption /captionbrtr height=50td width=”300” align=”center”input type=”button” value=”参数设置” onclick=SetParameter();td width=”300” align=”center”/table/form/div/body/html2. 本地DLL调用n DLL文件名:NISEC_SKSC。dlln 函数定义:void _stdcall PostAndRecvEx(IN LPSTR pszPost, OUT LPSTR pszRecv)参数:ps
7、zPost输入XML信息 pszRecv 返回XML信息返回值:无第三章 接口定义接口中的xml数据项,如无特殊说明,遵从以下规则:n 金额字段单位统一为元,小数点后精确到两位。n 日期字段格式统一为“YYYYMMDD。1. 参数设置1.1 接口说明参数设置接口完成服务器IP地址、端口号和税控钥匙口令的设置功能,仅ActiveX接口提供该接口,其它接口调用前必须首先调用参数设置接口.1.2 请求数据请求报文:businessid=”20001 comment=参数设置”body yylxdm=1”服务器IP地址servletport服务器端口号keypwd税控钥匙口令/keypwdaqm注册码
8、/aqm/body/business参数说明:索引ID名称长度必须说明1id交易编号5是200012comment交易描述30是参数设置3yylxdm应用类型代码1是固定为“1”表示国税4servletip税控开票服务器IP地址15是5servletport税控开票服务器端口号5是6keypwd税控钥匙口令8是7zcm注册码512是1.3 返回数据响应报文:?xml version=”1。0 encoding=”gbk”?businessid=20001” comment=”参数设置returncode返回代码returnmsg返回信息/returnmsg参数说明:索引ID名称长度必须说明1i
9、d交易编号5是200012comment交易描述30是获取服务器基本信息3yylxdm应用类型代码1是固定为“1”表示国税4returncode返回代码8是0成功,其它失败5returnmsg返回信息160是2. 税控钥匙信息查询2.1 接口说明提供查询税控钥匙基本信息的接口,主要查询企业纳税人识别号和税控钥匙编号。仅本地组件接口提供该接口,需要保证税控钥匙与本地电脑连接正常。2.2 请求数据请求报文:88888888/keypwd/body/business参数说明:索引ID名称长度必须说明1id交易编号5是200022comment交易描述30是税控钥匙信息查询3yylxdm应用类型代码1
10、是固定为“1表示国税4keypwd税控钥匙口令8是2.3 返回数据响应报文:returncode返回代码/returncodereturnmsg返回信息/returnmsgreturndatansrsbh纳税人识别号keyno税控钥匙编号/keyno/returndata/bodybusiness id=”10008” comment=发票开具”body yylxdm=”1”kpzdbs开票终端标识/kpzdbsfplxdm发票类型代码/fplxdmfpqqlsh发票请求流水号/fpqqlshkplx开票类型特殊票种标识/tspzxhdwsbh销货单位识别号/xhdwsbhxhdwmc销货单位
11、名称/xhdwmcxhdwdzdh销货单位地址电话销货单位银行帐号/xhdwyhzhghdwsbh购货单位识别号/ghdwsbhghdwmc购货单位名称购货单位地址电话/ghdwdzdhghdwyhzh购货单位银行帐号fyxm count=1”fphxz发票行性质/fphxzspmc商品名称/spmcspsm商品税目/spsm规格型号/ggxhdw单位spsl商品数量/spsl单价/djje金额/jesl税率税额/sehsbz含税标志/hsbz合计税额/hjsejshj价税合计/jshjbz备注/bzskr收款人/skrfhr复核人开票人/kprtzdbh信息表编号/tzdbh原发票代码/yf
12、pdm签名参数/qmcs/body/business参数说明:索引ID名称长度必须说明1id交易编号5是100082comment交易描述8是发票开具3yylxdm应用类型代码1是固定为“1”表示国税4kpzdbs开票终端标识16是开票终端唯一性标识5fplxdm发票类型代码3是6kplx开票类型1是0:正数票开具1:负数票开具7fpqqlsh发票请求流水号100否如果为空就不校验,有值就不能重复8tspz特殊票种标识2是“00”不是“01”农产品销售“02”农产品收购9xhdwsbh销货单位识别号20是与税控服务器保持一致10xhdwmc销货单位名称100是与税控服务器保持一致11xhdwd
13、zdh销货单位地址电话100是12xhdwyhzh销货单位银行账号100是13ghdwsbh购货单位识别号20是14ghdwmc购货单位名称100是15ghdwdzdh购货单位地址电话100是16ghdwyhzh购货单位银行账号100是17qdbz清单标志1是0:无清单1:带清单18fphxz发票行性质1是0 正常行1 折扣行2 被折扣行19spmc商品名称72是折扣行商品名称规则:折扣行数N(XX。XXX%)20spsm商品税目20否保留字段,目前为空21ggxh规格型号36否22dw单位14否23spsl商品数量12否小数点后6位24dj单价12否小数点后6位25je金额12是小数点后2位
14、,正负26sl税率12是小数点后2位27se税额12是小数点后2位,正负28hsbz含税标志1是0 不含税1 含税29hjje合计金额12是小数点后2位,不含税,正负30hjse合计税额12是小数点后2位,正负31jshj加税合计12是小数点后2位,正负32bz备注150否33skr收款人16否34fhr复核人16否35kpr开票人20是中文名称36tzdbh信息表编号20否37yfpdm原发票代码10否38yfphm 原发票号码8否38qmcs签名参数16否2. 增值税普通发票(发票类型代码:007)请求报文:business id=”10008” comment=”发票开具”body yy
15、lxdm=”1”kpzdbs开票终端标识/kpzdbsfplxdm发票类型代码/fplxdm发票请求流水号/fpqqlsh开票类型/kplxtspz特殊票种标识xhdwsbh销货单位识别号xhdwdzdh销货单位地址电话/xhdwdzdhxhdwyhzh销货单位银行帐号/xhdwyhzh购货单位地址电话/ghdwdzdhghdwyhzh购货单位银行帐号qdbz清单标志/qdbzfyxm count=”1发票行性质/fphxzspmc商品名称/spmc规格型号单位/dwspsl商品数量/spsldj单价/dj金额/jesl税率/slse税额/sehsbz含税标志/group/fyxm合计金额/h
16、jjehjse合计税额/hjsejshj价税合计/jshjbz备注/bzskr收款人复核人/fhrkpr开票人/kprtzdbh信息表编号yfphm原发票号码/yfphmqmcs签名参数/qmcs/business参数说明:索引ID名称长度必须说明1id交易编号5是100082comment交易描述8是发票开具3yylxdm应用类型代码1是固定为“1表示国税4kpzdbs开票终端标识16是开票终端唯一性标识5fplxdm发票类型代码3是6fpqqlsh发票请求流水号100否如果为空就不校验,有值就不能重复7kplx开票类型1是0:正数票开具1:负数票开具8tspz特殊票种标识2是“00”不是“
17、01”农产品销售“02农产品收购9xhdwsbh销货单位识别号20是与税控服务器保持一致10xhdwmc销货单位名称100是与税控服务器保持一致11xhdwdzdh销货单位地址电话100是12xhdwyhzh销货单位银行帐号100是13ghdwsbh购货单位识别号20否14ghdwmc购货单位名称100是15ghdwdzdh购货单位地址电话100否16ghdwyhzh购货单位银行帐号100否17qdbz清单标志1是0:无清单1:带清单18fphxz发票行性质1是0 正常行1 折扣行2 被折扣行19spmc商品名称72是折扣行商品名称规则:折扣行数N(XX。XXX)20spsm商品税目20否保留
18、字段,目前为空21ggxh规格型号36否22dw单位14否23spsl商品数量12否小数点后6位24dj单价12否小数点后6位25je金额12是小数点后2位26sl税率12是小数点后2位27se税额12是小数点后2位28hsbz含税标志1是0 不含税1 含税29hjje合计金额12是小数点后2位,不含税30hjse合计税额12是小数点后2位31jshj加税合计12是小数点后2位32bz备注160否33skr收款人16否34fhr复核人16否35kpr开票人20是36tzdbh信息表编号20否37yfpdm原发票代码10否38yfphm 原发票号码8否38qmcs签名参数16否3.3 返回数据响
19、应报文:?xml version=1.0” encoding=”gbk”?business id=10008” comment=”发票开具返回代码/returncode返回信息/returnmsgreturndatafpdm发票代码/fpdmfphm发票号码/fphmkprq开票日期/kprq校验码/jymewm二维码/returndatabody yylxdm=1作废类型/zflxfpdm发票代码fphm发票号码/fphmhjje合计金额作废人/zfr/business参数说明:索引ID名称长度必须说明1id交易编号5是100092comment交易描述8是发票作废3yylxdm应用类型代码
20、1是固定为“1”表示国税4kpzdbs开票终端标识16是开票终端唯一性标识5fplxdm发票类型代码3是6zflx作废类型1是0:空白票作废1:已开票作废7fpdm发票代码10是8fphm发票号码8是9hjje合计金额8否空白作废时为空10zfr作废人20是4.3 返回数据响应报文:body yylxdm=”1returncode返回代码/returncode发票代码/fpdmfphm发票号码/fphmzfrq作废日期/zfrq/returndata/business参数说明:索引ID名称长度必须说明1id交易编号5是100092comment交易描述8是发票作废3yylxdm应用类型代码1是
21、固定为“1”表示国税4returncode返回代码8是0成功,其它失败5returnmsg返回信息160是6fpdm发票代码10否7fphm发票号码8否8zfrq作废日期14否格式YYYYMMDDHHMMSS5. 发票查询5.1 接口说明发票查询接口实现通过接口读取税控服务器发票开具明细信息,可用于发票补打。按开票日期查询时,仅提供查询一天内的发票明细;按发票段查询时,仅支持查询单张发票明细。5.2 请求数据请求报文:开票终端标识/kpzdbsfplxdm发票类型代码cxfs查询方式/cxfscxtj查询条件/body/business参数说明:索引ID名称长度必须说明1id交易编号5是100
22、102comment交易描述8是发票查询3yylxdm应用类型代码1是固定为“1”表示国税4kpzdbs开票终端标识16是开票终端唯一性标识5fplxdm发票类型代码3是6cxfs查询方式1是0:按发票号码段查询1:按时间段查询7cxtj查询条件是cxfs为0时:发票代码+发票起始号码+发票终止号码cxfs为1时:起始日期+终止日期YYYYMMDD5.3 返回数据响应报文:1. 增值税专用发票(发票类型代码:004)?xml version=1。0 encoding=gbk”?body yylxdm=”1returncode返回代码/returncode返回信息/returnmsgfpdm发票
23、代码/fpdmfphm发票号码/fphmfpzt发票状态/fpztscbz上传标志kprq开票日期YYYYMMDDHHMMSS/kprqjqbh税控服务器编号/jqbhskm税控码/skmjym校验码xhdwsbh销货单位识别号/xhdwsbh销货单位名称/xhdwmcxhdwdzdh销货单位地址电话/xhdwdzdhxhdwyhzh销货单位银行帐号购货单位识别号/ghdwsbhghdwmc购货单位名称购货单位地址电话fphxz发票行性质/fphxzspmc商品名称/spmc规格型号/ggxhdw单位/dwspsl商品数量/spsldj单价/dj金额/jesl税率税额/se含税标志/hsbz/
24、fyxmqdxm count=1”group xh=”1”fphxz发票行性质/fphxzggxh规格型号/ggxh单位/dw商品数量/spsldj单价sl税率/slse税额/sehsbz含税标志/hsbz/qdxmqtxm count=”1”group xh=1sl税率/slje金额/jese税额/se/grouphjje合计金额/hjjejshj价税合计/jshjbz备注复核人/fhr开票人/kprjmbbh加密版本号/jmbbhzyspmc主要商品名称/zyspmcspsm商品税目/spsmqdbz清单标志/qdbzssyf所属月份kpjh开票机号信息表编号/tzdbhyfpdm原发票代
25、码/yfpdmyfphm原发票号码/yfphmzfrq作废日期/zfrqzfr作废人qmcs签名参数/qmcs签名值/qmz已开负数金额/group/kpxx/business2. 增值税普通发票(发票类型代码:007)格式同增值税专用发票6. 发票领购信息查询6.1 接口说明通过发票领购信息查询接口,获取税控服务器指定发票类型的发票领购信息。6.2 请求数据请求报文:?xml version=1.0” encoding=”gbk?business id=10005” comment=发票领购信息查询”开票终端标识/kpzdbsfplxdm发票类型代码/fplxdm/body/business
26、参数说明:索引ID名称长度必须说明1id交易编号5是100052comment交易描述8是发票领购信息查询3yylxdm应用类型代码1是固定为“1”表示国税4kpzdbs开票终端标识16是开票终端唯一性标识5fplxdm发票类型代码3是“004增值税专用发票“007”增值税普通发票6.3 返回数据响应报文:?xml version=”1。0” encoding=”gbk”?business id=”10005 comment=发票领购信息查询body yylxdm=1returncode返回代码returnmsg返回信息/returnmsgreturndatadqfpdm当前未开发票代码/dq
27、fpdmdqfphm当前未开发票号码/dqfphm总剩余份数lgxx count=”2”fpdm发票代码/fpdmqshm起始号码zzhm终止号码fpfs发票份数/fpfssyfs剩余份数/syfs领购日期/lgrqgroup xh=”2”发票代码/fpdm发票起始号码/qshmzzhm发票终止号码/zzhmfpfs发票份数/fpfssyfs剩余份数/syfslgrq领购日期/lgrqlgry领购人员/lgry/returndata/body/business参数说明:索引ID名称长度必须说明1id交易编号5是100052comment交易描述8是发票领购信息查询3yylxdm应用类型代码1是固定为“1表示国税4returncode返回代码8是0成功,其它失败5returnmsg返回信息160是6dqfpdm当前未开发票代码20否7dqfphm当前未开发票号码12否8zsyfs总剩余份数12否9fpdm发票代