概述
消费者在扫描销货方(商户)提供的二维码后,诺e票平台通过访问销货方的订单服务获取完整订单信息,进而使得消费者进行发票信息填写与发票开具。
时序图
sequenceDiagram
participant S as 销售方
participant N as 诺e票
participant C as 消费者
S->>C:生成二维码
C->>N:扫描二维码
N-->>S:获取订单信息
S-->>N:返回订单信息
N-->>C:开票H5页面
C-->>N:发票信息填写并开票
N-->>C:开票结果展示
二维码规范
二维码内容需要按照规定的格式进行组织,格式:url?bm=编码&mw=密文
参数说明
数据项 | 名称 | 说明 |
---|---|---|
url | url | 包含域名、端口等的二维码链接的公共组成部分 测试环境:http://122.112.255.28:15007/app/pdf/proUrl |
bm | 编码 | 企业唯一标识,由诺e票提供。 |
mw | 密文 | 对订单信息的明文内容进行加密并Base64编码后的内容。 |
订单信息
订单信息需要按照规定的格式进行组织。
格式:税号;开票点编码;订单号;订单日期;订单总金额
各数据项之间以”;“分隔。
明文部分必须加密且Base64编码,支持3DES或者AES加密。
字段说明
数据项 | 类型 | 长度 | 必须 | 说明 |
---|---|---|---|---|
税号 | varchar | 20 | 否 | 销售方纳税人识别号 |
开票点编码 | varchar | 8 | 否 | 门店编号,该项对应的”;“不可省略。 |
订单号 | varchar | 50 | 是 | 销售方业务系统对于一笔订单的交易编号。 |
订单日期 | varchar | 19 | 是 | 格式:yyyy-MM-dd HH:mm:ss |
订单金额(含税) | number | 18,2 | 是 | 订单总金额,单位:元。 |
订单服务
销货方(商户)需要按照以下规范提供一个用于获取完整订单信息的服务。
- 请求方式:HTTP Post
- 报文规范:XML
通用报文
<?xml version="1.0" encoding="utf-8"?>
<interface xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.chinatax.gov.cn/tirip/dataspec/interfaces.xsd"
version="DZFP1.0">
<globalInfo>
<interfaceCode>API编码</interfaceCode>
<requestTime>数据交换请求发出时间</requestTime>
<responseCode>数据交换请求接受方代码</responseCode>
<dataExchangeId>数据交换流水号</dataExchangeId>
</globalInfo>
<returnStateInfo>
<returnCode>返回代码</returnCode>
<returnMessage>Base64返回描述</returnMessage>
</returnStateInfo>
<Data>
<dataDescription>
<zipCode>0,1</zipCode>
<encryptCode>0,1,2</encryptCode>
</dataDescription>
<content>base64请求数据内容或返回数据内容</content>
</Data>
</interface>
字段说明
数据项 | 名称 | 类型 | 长度 | 必须 | 说明 |
---|---|---|---|---|---|
interfaceCode | 接口编码 | varchar | 10 | 是 | 固定为:ECXML.DDXX |
requestTime | 请求时间 | varchar | 19 | 是 | 格式:yyyy-MM-dd HH:mm:ss |
responseCode | 企业唯一标识 | varchar | 6 | 是 | 即bm |
dataExchangeId | 数据交换流水号 | varchar | 25 | 是 | responseCode+8位日期(yyyyMMdd)+9位序列号 |
returnCode | 响应代码 | varchar | 4 | 否 | 0000表示成功,其他为错误 响应时必填 |
returnMessage | 响应描述 | varchar | 否 | returnCode是0000时返回成功,其他返回错误描述,响应描述需要经过Base64编码。 响应时必填 |
|
zipCode | 压缩标识 | varchar | 1 | 是 | 0:不压缩 1:压缩 数据包大于10k要求压缩。压缩标志为1时,需要对交换的数据内容进行解压缩,为0时不需要解压缩。 |
encryptCode | 加密标识 | varchar | 1 | 是 | 1:3DES 2:AES |
content | 数据包 | varchar | 是 | 内层报文,即服务交互的业务报文。 加密流程: Base64.encode(GZIP压缩(加密(xml明文))); 解密流程:解密 (GZIP解压缩(Base64.decode(xml密文)))。 加、解密过程中,是否需要解、压缩,参照dataDescription中的zipCode。 上述zipCode、encryptCode均作用于该数据项。 |
业务报文
请求报文规范
<REQUEST_DDXX class="REQUEST_DDXX">
<DDH>订单号</DDH>
<DDJE>订单金额</DDJE>
<DDDATE>订单日期</DDDATE>
</REQUEST_DDXX>
字段说明
数据项 | 名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|
DDH | 订单号 | varchar | 50 | 是 | 销售方业务系统对于一笔订单的交易编号。 |
DDJE | 订单金额 | number | 18,2 | 是 | 订单的含税总金额,单位:元。 |
DDDATE | 订单日期 | varchar | 10 | 是 | 格式:yyyy-MM-dd |
响应报文规范
<RESPONSE_DDXX class="RESPONSE_DDXX">
<DDXX_ZTXX class="DDXX_ZTXX">
<FPQQLSH>发票请求唯一流水号</FPQQLSH>
<DDH>订单号</DDH>
<DDDATE>订单日期</DDDATE>
<XHF_NSRSBH>销货方识别号</XHF_NSRSBH>
<XHFMC>销货方名称</XHFMC>
<XHF_DZDH>销货方地址、电话</XHF_DZDH>
<XHF_YHZH>销货方银行、账号</XHF_YHZH>
<KPDBM>开票点编码</KPDBM>
<KPY>开票员</KPY>
<SKY>收款员</SKY>
<FHR>复核人</FHR>
<KPHJJE>价税合计金额</KPHJJE>
<YXBJ>允许编辑</YXBJ>
<GHFQYLX>购货方企业类型</GHFQYLX>
<GHFMC>购货方名称</GHFMC>
<GHF_NSRSBH>购货方识别号</GHF_NSRSBH>
<GHF_SJ>购货方手机</GHF_SJ>
<GHF_EMAIL>购货方邮箱</GHF_EMAIL>
<GHF_DZDH>购货方地址、电话</GHF_DZDH>
<GHF_YHZH>购货方银行、账号</GHF_YHZH>
<BZ>备注</BZ>
<QDBZ>数电标志</QDBZ>
<BMB_BBH>编码表版本号</BMB_BBH>
<BYZD1>备用字段</BYZD1>
<BYZD2>备用字段</BYZD2>
<BYZD3>备用字段</BYZD3>
<BYZD4>备用字段</BYZD4>
<BYZD5>备用字段</BYZD5>
</DDXX_ZTXX>
<DDXX_XMXXS class="DDXX_XMXX;" size="1">
<DDXX_XMXX>
<XMBM>项目编码</XMBM>
<XMMC>项目名称</XMMC>
<XMDW>项目单位</XMDW>
<GGXH>规格型号</GGXH>
<XMSL>项目数量</XMSL>
<XMDJ>项目单价</XMDJ>
<HSBZ>含税标志</HSBZ>
<FPHXZ>发票行性质</FPHXZ>
<SWBM>税务编码</SWBM>
<ZXBM>自行编码</ZXBM>
<YHZCBS>优惠政策标识</YHZCBS>
<LSLBS>零税率标识</LSLBS>
<ZZSTSGL>增值税特殊管理</ZZSTSGL>
<XMJE>项目金额</XMJE>
<SL>税率</SL>
<SE>税额</SE>
<BYZD1>备用字段</BYZD1>
<BYZD2>备用字段</BYZD2>
<BYZD3>备用字段</BYZD3>
<BYZD4>备用字段</BYZD4>
<BYZD5>备用字段</BYZD5>
</DDXX_XMXX>
</DDXX_XMXXS>
</RESPONSE_DDXX>
字段说明
数据项 | 名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|
FPQQLSH | 发票请求流水号 | varchar | 50 | 是 | 发票开具的唯一标识,须保证唯一性。 |
DDH | 订单号 | varchar | 50 | 是 | |
DDDATE | 订单日期 | varchar | 19 | 是 | 格式:yyyy-MM-dd HH:mm:ss |
XHF_NSRSBH | 销方纳税人识别号 | varchar | 20 | 是 | |
XHFMC | 销方名称 | varchar | 200 | ||
XHF_DZDH | 销方地址、电话 | varchar | 100 | 否 | 地址电话之间以一个英文空格分隔,电话必须是固定电话,其格式是:区号-号码,如:021-88888888 |
XHF_YHZH | 销方银行、账号 | varchar | 100 | 否 | QDBZ不为空时必传,且销方银行名称和账号以1个英文空格分隔 |
KPDBM | 开票点编码 | varchar | 8 | 否 | |
KPY | 开票员 | varchar | 8 | 是 | |
SKY | 收款员 | varchar | 8 | 否 | |
FHR | 复核人 | varchar | 8 | 否 | |
KPHJJE | 价税合计金额 | number | 18,2 | 是 | 订单含税总金额,单位:元。 |
YXBJ | 允许编辑 | varchar | 1 | 否 | Y:允许 N:不允许 购方信息是否允许修改,为空允许修改。 |
GHFQYLX | 购方企业类型 | varchar | 2 | 否 | 01:企业 02:机关事业单位 03:个人 04:其他 当YXBJ为N时,该值必传。 |
GHFMC | 购方名称 | varchar | 100 | 否 | 即发票抬头,当YXBJ为N时,该值必传。 |
GHF_NSRSBH | 购方纳税人识别号 | varchar | 20 | 否 | 当YXBJ为N且GHFQYLX为01时,该值必传。 |
GHF_SJ | 购方手机 | varchar | 11 | 否 | |
GHF_EMAIL | 购方邮箱 | varchar | 50 | 否 | |
GHF_DZDH | 购方地址、电话 | varchar | 100 | 否 | |
GHF_YHZH | 购方银行、账号 | varchar | 100 | 否 | 当QDBZ不为空且YXBJ为N时,购方银行名称和账号须同时传或同时不传,且以1个英文空格分隔。 |
BZ | 备注 | varchar | 200 | 否 | |
QDBZ | 数电标志 | varchar | 2 | 否 | 61:数电专票 62:数电普票 |
BMB_BBH | 编码表版本号 | varchar | 20 | 否 | 税务编码表版本号,保持最新的版本号,目前32.0(2019年4月1日起),需持续更新。 |
BYZD1 | 备用字段1 | varchar | 否 | ||
BYZD2 | 备用字段2 | varchar | 否 | 开具成品油发票时为C(大写),否则为空。 开具成品油发票需注意: ①、商品明细不可传成品油和非成品油混合项目; ②、成品油发票不可开清单发票,最多8行商品; ③、明细项单位必填,为“升”或者“吨”。 |
|
BYZD3 | 备用字段3 | varchar | 否 | ||
BYZD4 | 备用字段4 | varchar | 否 | ||
BYZD5 | 备用字段5 | varchar | 否 | ||
DDXX_XMXXS | 订单明细 | List | 是 | 订单的明细信息集合。 | |
XMBM | 项目编码 | varchar | 50 | 否 | 和XMMC有且只能一个有值,XMBM非空时,则默认从诺e票平台匹配项目名称以及税收分类编码等相关信息。 |
XMMC | 项目名称 | varchar | 200 | 否 | XMBM为空时,必填。 |
XMDW | 项目单位 | varchar | 10 | 否 | |
GGXH | 规格型号 | varchar | 20 | 否 | |
XMSL | 项目数量 | number | 24 | 是 | 小数点后8位, 小数点后都是0时,PDF上只显示整数。 |
FPHXZ | 发票行性质 | varchar | 1 | 是 | 0:正常行 1:折扣行 2:被折扣行 |
XMDJ | 项目单价 | number | 24 | 否 | 小数点后8位小数点后都是0时,PDF上只显示2位小数;否则只显示至最后一位不为0的数字(蓝字发票和红冲发票,单价均为正数) |
HSBZ | 含税标志 | varchar | 1 | 是 | 0:不含税 1:含税 表示项目单价和项目金额是否都含税与否。 |
SWBM | 税务编码 | varchar | 19 | 否 | 商品税收分类编码,XMBM为空时必填。 |
YHZCBS | 优惠政策标识 | varchar | 1 | 否 | 0:否 1:是 是否享受优惠政策,XMBM为空时必填。 |
LSLBS | 零税率标识 | varchar | 1 | 否 | 空:非零税率 1:免税 2:不征税 3:普通零税率 |
ZZSTSGL | 增值税特殊管理 | varchar | 50 | 否 | 当YHZCBS为1时必填。 |
XMJE | 项目金额 | number | 18,2 | 是 | 项目金额=项目单价*项目数量,单位:元。 |
SL | 税率 | number | 16,6 | 是 | |
SE | 税额 | nubmer | 18,2 | 否 | |
BYZD1 | 备用字段1 | varchar | 否 | 备用字段1 | |
BYZD2 | 备用字段2 | varchar | 否 | 备用字段2 | |
BYZD3 | 备用字段3 | varchar | 否 | 备用字段3 | |
BYZD4 | 备用字段4 | varchar | 否 | 备用字段4 | |
BYZD5 | 备用字段5 | varchar | 否 | 备用字段5 |