财政电子票据公共服务接口规范
1适用范围
本规范规定了财政电子票据公共服务接口,财政电子票据服务平台外部系统间在交互财政电子票据相关电子信息时的接口技术规范,实现财政电子票据的下载和入账反馈。
2技术规范
2.1处理流程
使用公共服务接口时,基于HTTPS协议,采用POST方式请求-响应”模式进行交互
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
基本信息扩展
节点