易票平台接入文档

快速接入指南

本文档适用于第三方平台 、ERP服务商 、POS厂商等对接易票服务。

第三方平台:如猫酷、美团等为商家提供平台服务的企业;

ERP服务商:如金天鹅、哗啦啦等为商家提供ERP系统的企业;

POS厂商:如联迪、新大陆等为商家提供POS系统的企业。

快速开票开发流程:

申请认证 -> 完成商户注册 -> 调用快速开票服务

电子发票开发流程:

第1步:申请认证;
第2步:完成商户开通;
第3步:关注“易票商户”公众号,增值服务-电子发票完善商户信息,申请开通电子发票服务;
第4步:调用电子发票服务。

如何申请认证

想成为易票服务商线下联系我们,提交企业资质,申请开通服务商后台,获取认证。已成为易票服务商的向我们提供服务商编号即可;

联系电话Tel:010-85753380

测试环境服务商认证标识(accessKey):c57eb03a3fe8d8ec0d8aa285251ef29d


为方便您进行接口对接,特提供示例代码下载: Java版

商户开通

接口描述:

通过此接口可开通易票商户。

测试地址: http://top.yeepiao.com/customer/regist
生产地址: http://op.yeepiao.com/customer/regist
请求类型:POST
接口参数:

名称 类型 必填 说明
accessKey string 服务商认证标识
billingCode string 开票码,快速开票服务对商户的唯一识别码,由接入方提供,要求字段长度为10-32位
enterpriseName string 企业名称
taxNo string 企业税号(需要和开票软件上一致)
linkMan string 联系人姓名
phoneNo string 手机号码
sign string 签名

返回结果:

名称 类型 说明
resultCode string 返回响应结果,0表示查询成功,返回其它结果表示查询失败;
resultMsg string 返回信息,当resultCode不为0时,说明异常原因。
serialNumber(data的子元素) string 序列号(请妥善保存该字段),当开通成功时,返回序列号用于登录插件
billUrl(data的子元素) string 该商户开票链接,可将此链接转成二维码形式展示给消费者开票
customerNo(data的子元素) string 商户编号

返回示例(JSON):
        // 返回结果,开通成功
        {"data":{"serialNumber":"3001027832","billUrl":"http://localhost:8400/s/0eec84b9e","customerNo":"20020104"},"resultCode":"0"}
        // 调用接口报错返回结果
        {"data":null,"resultCode":"88080299999","resultMsg":"系统未知异常"}
        {"resultCode":"98","resultMsg":"开票码已注册"}
                            

商户开通状态查询

接口描述:

通过此接口可查询商户当前的开通状态。

测试地址: http://top.yeepiao.com/customer/query
生产地址: https://op.yeepiao.com/customer/query
请求类型:POST
接口参数:

名称 类型 必填 说明
accessKey string 服务商认证标识
billingCode string 开票码,易票开票服务对商户的唯一识别码。
sign string 签名

返回结果:

名称 类型 说明
resultCode string 返回响应结果,0表示查询成功,返回其它结果表示查询失败;
resultMsg string 商户当前状态,true表示已开通商户,并返回绑定商户信息,false表示未开通商户。

返回示例(JSON):
        // 返回结果,状态为开票码已开通商户,并返回绑定商户信息
        {"data":{"enterpriseName":"注册测试1","taxNo":"123456789012345","phoneNo":"18301310621","linkMan":"注册测试1","qrcode":"3001027832","billUrl":"http://localhost:8400/s/0eec84b9e","bindStatus":"BINDED","electronicStatus":"FALSE"},"resultCode":"0"}
        bindStatus: BINDED表示已绑定开票码    FALSE 未绑定开票码 
        electronicStatus=TRUE 已开通电子发票服务   FALSE 未开通电子发票服务  PROCESSING 电子发票服务开通中
        // 调用接口报错返回结果
        {"resultCode":"98","resultMsg":"accessKey或开票码错误"}
                            

电子发票服务 - 应用场景

应用场景可参考以下方式:

电子发票服务 - 接口调用流程

以下是对应场景的调用流程:



1. 查询商品列表接口

接口描述:

调用请求开票接口前,请先查询商品列表接口,获取当前商户的可用商品列表。

测试地址: http://top.yeepiao.com/customer/query/goods
生产地址: http://op.yeepiao.com/customer/query/goods
请求类型:POST
参数类型:json传参
接口参数:

名称 类型 必填 说明
accessKey string 服务商认证标识
billingCode string 开票码,电子发票服务对商户的唯一识别码,在商户开通时可获得。
sign string 签名

返回结果:

名称 类型 说明
resultCode string 返回响应结果,0表示查询成功,返回其它结果表示查询失败;
resultMsg string 返回信息,当resultCode不为0时,说明异常原因。
data List<InvoiceGood> 商品列表,json数组

InvoiceGood
名称 类型 必填 说明
goodsNo string 商品编号
model string 商品规格
unit string 商品单位
unitPrice decimal 商品单价
taxRate string 税率
goodsName string 商品名称
unionNo string 统一编码
defaultType string 是否默认商品

返回示例(JSON):
    {
          "data":
          [
                 {
                        "goodsNo": "700903",
                        "model": null,
                        "unit": null,
                        "unitPrice": null,
                        "taxRate": 0.05,
                        "status": "TRUE",
                        "goodsName": "餐费",
                        "unionNo": "餐饮",
                        "defaultType": "FALSE"
                 },
                        "goodsNo": "700904",
                        "model": "个",
                        "unit": "元",
                        "unitPrice": 25,
                        "taxRate": 0.03,
                        "status": "TRUE",
                        "goodsName": "咖啡风景",
                        "unionNo": "服务费",
                        "defaultType": "TRUE"
                 }
          ],
          "resultCode": "0"
    }
                                        

2. 请求开票接口

接口描述:

通过此接口提交电子发票订单,返回开票地址(调用此接口前,请先调用查询商品列表接口)。

测试地址: http://top.yeepiao.com/invoice/electronic/order
生产地址: http://op.yeepiao.com/invoice/electronic/order
请求类型:POST
接口参数:

名称 类型 必填 说明
accessKey string 服务商认证标识
order string 订单数据json格式
sign string 签名
orderNo string order子属性:订单号,由接入方生成并传入,要求订单号长度范围:10-50个字符
billingCode string order子属性:开票码,电子发票服务对商户的唯一识别码,在商户开通时可获得。
billAmount string order子属性:订单金额,单位为元,支持小数点后两位
type string order子属性:商品类型,"1":使用选定的商品,"2":使用商户配置的默认商品
invoiceGoods List<InvoiceGood> order子属性:商品列表,商品类型为“1”时,开票商品必填

InvoiceGood
名称 类型 必填 说明
goodsNo string 商户编码
goodsNum string 选填 商品数量,商品数量和商品金额只能传其中一个,有单价的商品只传数量,无单价商品请传商品金额
taxAmount string 选填 商品金额

调用示例(JSON):
accessKey=41d8d24bd97366a413af0e41231e8a38, 
sign=faNQNLvTo7BQhp2zeZZZBfpBBwys67EWyCmVnqBqti0j6cj46IujPggcFi56bDSr78Ui68pzaLCbf3Uvr5lPB3wgwL0IkV84K3VJcMaUh/9pteJkxY1IzJzFjPg0NuK8H4fDEI2iF65rHVLbE7A+qgIl95EZUbGF3XLS8yqivnA=, 
order={"orderNo":"1509357038769","billingCode":"29","billAmount":"700","type":"1","invoiceGoods":[{"goodsNo":"700101","goodsNum":"3","taxAmount":null},{"goodsNo":"700201","goodsNum":null,"taxAmount":"100"}]}}
                                        

返回结果:

名称 类型 说明
resultCode string 返回响应结果,0表示查询成功,返回其它结果表示查询失败;
resultMsg string 返回信息,当resultCode不为0时,说明异常原因;
orderNo(data的子元素) string 电子发票的订单编号
url(data的子元素) string 返回的开票链接地址
expireTime(data的子元素) string url有效时间

返回示例(JSON):
    // 返回结果,请求成功
    {"data":{"orderNo":"5210c7613871a68f47dbd8800e28636c67ab293b77addeac","url":"http://localhost:8400/invoice/electronic/index?orderNo=5210c7613871a68f47dbd8800e28636c67ab293b77addeac","expireTime":"2017-10-31 17:50:41"},"resultCode":"0"}
    // 调用接口报错返回结果
    {"resultCode":"88080299999","resultMsg":"系统未知异常"}