来源:深圳市捷搜信息技术有限公司页商品化网上纳税申报软件数据接口规范来源:深圳市捷搜信息技术有限公司来源:深圳市捷搜信息技术有限公司编写目的制定数据接口规范的目的是统一网上申报纳税人端软件和税务局端受理服务器之间的通信数据标准,确保税务局的受理服务器可以接收不同厂商提供的网上申报纳税人端软件的申报请求,为金税三期建设统一的纳税服务平台做准备。2数据接口规范的内容数据接口规范是纳税人端软件和税务局端受理服务器的报文内容规范,主要包含数据接口格式基本规范和业务请求接口规范。本规范只定义技术报文本身,不限制采用何种传输协议。税务局端支持当前主流传输协议http、ftp、tcp协议。推荐使用http1.1协议作为报文的传输协议。本文中的数据接口规范包括三部分内容:第一部分对数据接口格式基本规范,定义纳税人端与服务器端数据交换的报文格式,详见第3节;第二部分主要描述基于数据接口基本规范而制定的具体申报业务请求接口,详细定义网上申报各类请求及相应数据格式,详见第4节,业务请求接口规范可以根据业务发展的需要,对业务请求接口规范进行不断的完善和补充;第三部分作为附录,补充第二部分所用到的各类数据,对其作统一的定义,详见第5节。3数据接口格式基本规范本节详细描述网上申报纳税人端软件和税务局端受理服务器之间的数据接口格式规范,来源:深圳市捷搜信息技术有限公司描述数据接口的总体结构,然后在3.2详细描述每个部分的格式要求。3.1总体结构考虑到交易的对称性,本规范把请求和响应报文合并为一个统一的报文标准,如下图所示:tiripPackage是整个数据接口的根节点,其下面分为5个节点和1个属性,分别为:identity:交易标识。这部分主要负责提供该次交易的发起方和接受方的标识。contentControl:内容控制。这部分主要负责提供本次交易携带的业务数据的处理状态,包括加密,压缩以及编码三个方面。routerSession:路由内容。这部分负责保存本次交易的路由变量,该部分采用列表的方式,可以根据需要动态进行扩充。businessContent:业务内容。这部分负责保存本次交易的业务数据。returnState:返回状态。这部分负责保存交易处理的返回结果以及状态信息,对于请求报文该部分为空。version:tiripPackage节点的属性,存放报文的版本。考虑到规范的建立也是一个逐步的过程,因此报文需要有明确的版本标识,支持以后的规范升级完善。3.2报文格式说明3.2.1报文的版本(version)考虑到规范的建立是一个逐步的过程,因此报文需要有明确的版本标识,支持以后的规来源:深圳市捷搜信息技术有限公司页范升级完善,目前的报文版本是V1.0。3.2.2交易标识(identity)identity的全局类型为identityType,由三个子元素构成,具体Schema如下:报文具体说明:serviceId:业务服务ID,具体参见各请求中该节点具体的定义。channelld:总局给各个开发商定义的渠道标识,取值如下表:channelld说明**_CLIENT表示接入网上申报纳税人端软件产品,**代表各开发商标识Password:该节点主要基于安全考虑,存放各开发商接入服务器进行业务操作的访问密码。3.2.3内容控制(contentControl)内容控制的全局类型为contentControlType,内容控制包含了对业务数据处理的方式。考虑到压缩以及加密后的结果为二进制格式,为了方便传输和处理,规定凡是加密或者压缩的数据必须进行编码。上图中的control就是内容控制信息列表,控制属性列表是可选项,内容控制信息是有顺序的。下面具体描述control的结构,control的全局类型为controlType,如下图所示,它由三个值来表示。来源:深圳市捷搜信息技术有限公司页报文具体说明:id:控制顺序,从1开始。type:控制类型,取值如下:type说明zip表示压缩crypt表示加密code表示编码impl:控制类型的实现类型。对于压缩(zip)的取值如下:impl(zip)说明Zlib标准ZIP的压缩算法对于加密(crypt)的取值如下:impl(crypt)说明SBMMJM表示申报密码加密算法,具体参见5.3.2申报加密算法章节**CA表示支持的各地CA类型,具体CA算法参见5.3.1CA算法对于编码(code)的取值如下:impl(code)说明BASE64表示采用BASE64编码算法进行编码3.2.4路由信息(routerSession)路由信息提供了在交易过程中需要的路由关键字,routerSession采用动态列表的方式,由发起方来负责构建具体的路由属性,列表的个数可以是零到多个。路由信息的全局类型为routerSessionType,具体的结构如下图所示:来源:深圳市捷搜信息技术有限公司就是路由属性列表,paramList的全局类型为paramListType,其结构采用了匿名值对的方式,由名称和值来组成,如下图所示:在本规范中,该节点具体内容为:NameValue是否必须SENDER纳税人识别号是PRODUCTCODE纳税人端软件产品编码否VERSION纳税人端软件产品版本号,格式为V**.*.***否CREATETIME报文创建时间,格式为YYYYMMDDHHNNSS是3.2.5业务内容(businessContent)业务内容部分存放真正的业务数据,采用分包的结构设计,即业务内容体可以由零个或多个业务数据包构成,对于有些没有真正的返回数据的场景,例如交易失败,可以不填业务内容体。businessContent的全局类型为businessContentType,其具体结构如下图所示:subPackage的全局类型为subPackageType,由包ID、包内容以及内容的处理参数三个部分组成。处理参数主要用于业务包个性化的处理,该元素也是可选的。如下图所示:对于不需要包体的请求,比如解密失败错误时,无需生成该节点(subPackageType)内来源:深圳市捷搜信息技术有限公司页容;对于一次请求中有多个包的请求,则生成多个节点。以下描述生成一个节点的报文说明:Id:按数字顺序填。Content:业务体内容。paramList:全局类型为paramListType,由名称和值来组成,该节点中用于存放业务体内容的一些辅助信息,本节点可能包含:NameValue是否必须FileName具体填为业务体内容请求文件名否,在具体的业务请求格式规范中确定3.2.6返回状态(returnState)返回状态适用于响应报文,负责存放交易处理结果,由返回代码(returnCode)和返回消息(returnMessage)两部分构成。对于请求报文,该部分为空。返回状态的全局类型为returnStateType,如下图所示:报文具体说明:返回代码规定为:8位代码,“00000000”代表成功,其他的都代表失败。返回代码中系统级错误全部以9开头,下表所列为固定的系统级错误代码信息,对于不在该表格中的其他业务错误代码,根据returnMessage节点内容获取错误原因。returnCodereturnMessage00000000成功90000000无该请求数据或者数据格式非法900000