1适用范围
本规范规定了财政电子票据公共服务接口,为财政电子票据服务平台和外部系统间在交互财政电子票据相关电子信息时的接口技术规范,实现财政电子票据的下载和入账反馈。
2技术规范
2.1处理流程
(1)请求方发送请求
请求方系统由财政电子票据服务平台分配一个身份标识app_id,每个app_id配有一个秘钥(appKey)。请求方根据接口要求,构造请求参数并使用密钥(appKey)对请求参数进行签名。
(2)电子票据服务平台返回响应结果
电子票据服务平台通过验证请求参数的签名来验证请求方身份合法性及数据完整性,无误后进行处理。
a)处理成功时,根据请求服务不同,响应结果分为两种情况:电子票据下载时,返回电子票据文件压缩包;电子票据入账时,返回JSON格式的参数。
b)处理失败时,响应结果为JSON格式的参数。
(3)请求方接收数据
请求方收到响应结果后,首先判断电子票据服务平台响应是否成功:电子票据下载时,通
过HTTP Content-Type判断是否成功;电子票据入账时,通过返回码判断是否成功。
2.2数据类型
序号 | 类型 | 类型名称 | 说明 |
1 | String | 字符串 | 标准XML字符串类型(xs:string)。长度分为定长和变长两种,例如:长度“8”表示字符串长度固定为8,长度“[1,100]”表示字符串长度在1到100之间 |
2 | NString | 数字串 | 表示由数字0-9组成的字符串,如: |
3 | Integer | 整数 | 标准XML整数类型(xs:integer) |
4 | Decimal | 实数 | 标准XML实数类型(xs:decimal) |
5 | Base64Binary | Base64编码字符串 | 标准XML Base64编码字符串类型(xs:base64Binary) |
6 | Date | 日期 | 表示日期,格式为yyyyMMdd(年月日),长度为8位,如: |
7 | Time | 时间 | 表示时间,格式为HH:mm:ss(时分秒),长度为8位,如:09:29:53 |
8 | DateTime | 日期时间 | 表示日期时间,格式为yyyyMMddHH:mm:ss(年月日 时分秒),长度为17位,如: 09:29:53 |
9 | UTCDateTime | UTC日期时间 | 表示UTC日期时间,格式为dd MMM yyyyHH:mm:ss z(日月年 时分秒 时区),长度为24位,如:13 Jun 2016 09:29:53 GMT |
10 | Currency | 金额 | 表示金额,单位为元,整数部分最长15位,小数部分固定两位,不能包含逗号等分隔符,如:12345.67 |
2.3参数说明
序号 | 标识符 | 数据项名称 | 类型 | 长度 | 说明 | 强制 |
1 | method | String | 接口服务名称 | 是 | ||
2 | app_id | String | 应用帐号 | 是 | ||
3 | security | 安全码 | String | 请求串的防伪码。 | 是 | |
4 | format | String | 定义请求参数message和接口返回的数据格式。 取值说明:json | 是 | ||
5 | datetime | DateTime | 时间,格式为yyyyMMddHHmmssSSS | 是 | ||
6 | version | 版本 | NString | 5 | 接口版本,默认版本1.0.1 | 是 |
7 | message_id | 请求编号 | String | [1,50] | 每次请求生成一个唯一请求编号 | 是 |
8 | message | 请求业务参数 | String | 请求业务参数,参见具体接口描述。需转换为Base64编码。 | ||
说明:
(1)参数名必须为小写字母;
(2)业务参数message的构成,根据具体接口描述构造;
(3)字符集统一采用 UTF-8编码格式。文件名提取
3接口列表
接口服务名称 | 描述 |
downloadPNG4AccountByDate | 电子票据下载 |
accountForRecode | 电子票据入账反馈 |
4接口描述
4.1电子票据下载
单位通过该接口下载待入账电子票据。
4.1.1服务名downloadPNG4AccountByDate
4.1.2业务参数
节点:message
序号 | 标识符 | 数据项名称 | 类型 | 长度 | 说明 | 强制 |
1 | agency_code | 单位代码 | String | [1,30] | 一般采用组织机构代码 | 是 |
2 | agency_name | 单位名称 | String | [1,100] | 是 | |
3 | agency_type | 单位类型 | NString | 1 | 1:开票单位 2:交款单位 | 是 |
4 | bill_batch_code | 电子票据代码 | NString | 8 | 否 | |
5 | end_date | 开票终止日期 | Date | 否 | ||
6 | batch_no | 批次序列号 | NString | 13 | 上次下载时返回的最大的序列号;初始值为0 | 是 |
4.1.3返回参数
根据HTTP响应头中Content-Type值判断成功或失败。成功时值为application/x-zip-compressed,失败时值为application/json。
(1)成功返回电子票据文件压缩包,命名规则为:包内电子票据份数-最大批次序列号.zip。电子票据压缩包文件名提取方式:HTTP Header content-disposition,值为"attachment;filename=包内电子票据份数-最大批次序列号.zip"。
压缩包内包含电子票据文件和清单文件,每批最大份数100。电子票据文件命名规则为:电子票据代码-电子票据号码.后缀名(后缀名为png)。清单文件是JSON格式的文本文件,命名规则为:最大批次序列号.json。
清单文件内容如下:
序号 | 标识符 | 数据项名称 | 类型 | 长度 | 说明 | 强制 |
1 | Data | 电子票据清单内容 | String | [1,4096] | JSON格式 | 是 |
Data包含一系列电子票据,每份电子票据的数据项目:
序号 | 标识符 | 数据项名称 | 类型 | 长度 | 说明 | 强制 |
1 | EInvoiceCode | 票据代码 | NString | 8 | 是 | |
2 | EInvoiceNumber | 票据号码 | NString | 10 | 是 | |
3 | EInvoiceName | 电子票据名称 | String | [1,100] | 是 | |
4 | InvoicingPartyName | 开票单位名称 | String | [1,100] | 是 | |
5 | IssueDate | 开票日期 | Date | 是 | ||
6 | TotalAmount | 总金额 | Currency | 是 | ||
7 | HandlingPerson | 开票人 | String | [1,20] | 是 | |
8 | PayerPartyName | 交款人名称 | String | [1,100] | 是 | |
9 | Item | 项目明细 | ||||
|-ItemCode | 项目编码 | String | [1,30] | 是 | ||
|-ItemName | 项目名称 | String | [1,100] | 是 | ||
|-ItemQuantity | 数量 | Integer | 否 | |||
|-ItemUnit | 单位 | String | [1,30] | 否 | ||
|-ItemAmount | 金额 | Currency | 是 | |||
|-ItemExt | 项目明细扩展 | 节点 | 否 | |||
10 | RelatedEInvoice | 相关电子票据 | ||||
|-RelatedEInvoiceCode | 相关电子票据代码 | NString | 8 | 红字电子票据非空 | 否 | |
|-RelatedEInvoiceNumber | 相关电子票据号码 | NString | 10 | 红字电子票据非空 | 否 | |
11 | MainExt | 基本信息扩展 | 节点 | 否 | ||
发布评论