接口说明
调用该接口,开具收据(根据配置直接开具或者入库待开具)
API 方法名:nuonuo.OpeMplatform.sj 版本:V2.0
请求地址
| 环境 | 请求地址 |
|---|
| 正式环境 | https://sdk.nuonuo.com/open/v1/services |
| 沙箱环境 | https://sandbox.nuonuocs.cn/open/v1/services |
公共请求参数(消息头)
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| Content-type | String | 否 | - | MIME类型【消息头】 | - |
公共请求参数(消息体)
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| senid | String | 否 | - | 唯一标识,由企业自己生成32位随机码【消息体】 | - |
私有请求参数
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| addDate | String | 是 | - | 订单时间,格式 yyyy-MM-dd HH:mm:ss 不填时根据提交时间自动生成。 | - |
| buyerAccount | String | 是 | 100 | 购方银行开户行及账号 | 工商银行账号88888888 |
| buyerAddress | String | 是 | 100 | 购方地址 | 西湖区 |
| buyerName | String | 否 | 100 | 购方名称 | 诺诺网 |
| buyerTaxNum | String | 是 | 20 | 购方税号(6-20位字母或数字) | 339901999999142 |
| buyerTel | String | 是 | 20 | 购方电话 | 1509-87366 |
| checker | String | 是 | 20 | 复核人 | 复核人 |
| clerk | String | 否 | 20 | 开票人 | 开票人 |
| clerkId | String | 是 | 32 | 开票员id (诺诺系统中的id),只能为字母和数字 | - |
| corpDisplayName | String | 是 | 100 | 电子收据上企业展示名称,不填默认为企业资质中的名称 | 测试企业 |
| deptId | String | 是 | 32 | 部门门店id (诺诺系统中的id),只能为字母和数字 | - |
| detail | Array | 否 | - | 商品明细信息 | - |
| └ favouredPolicyFlag | String | 是 | 1 | 优惠政策标识: 0:不使用; 1:使用; | 0 |
| └ favouredPolicyName | String | 是 | 50 | 优惠政策名称(当favouredPolicyFlag为1时,此项必填) | - |
| └ goodsCode | String | 是 | 19 | 商品编码 | 1090511030000000000 |
| └ goodsName | String | 否 | 90 | 商品名称 | 大米 |
| └ num | Number | 是 | 24 | 数量 | 1 |
| └ price | Number | 是 | 24 | 单价 | 8 |
| └ specType | String | 是 | 40 | 规格型号 | 1 |
| └ taxIncludedAmount | Number | 是 | 16 | 含税金额(精确到小数点后两位) | 8 |
| └ taxRate | Number | 是 | 10 | 税率(只支持0.xxx,需要生成二维码时必填) | 0.13 |
| └ unit | String | 是 | 20 | 单位(成品油时,必须有且只能是升或者吨) | kg |
| └ zeroRateFlag | String | 是 | 1 | 零税率标识: 空:非零税率; 1:免税; 2:不征税; 3:普通零税率; | - |
| invoiceLine | String | 是 | - | 发票种类(只能传 p:普通发票(电子)、 c:普通发票(纸质)、 b:专用发票(电子)、 s:专用发票(纸质)、 e:收购发票(电子)、 f:收购发票(纸质)、 r:普通发票(卷式)、bs:电子发票(增值税专用发票)-即数电专票(电子)、pc:电子发票(普通发票)-即数电普票(电子)、es:数电纸质发票(增值税专用发票)-即数电专票(纸质)、ec:数电纸质发票(普通发票)-即数电普票(纸质)中的一种) | p |
| needGenerateEwmFlag | Number | 是 | 1 | 1:生成开票二维码 0:不生成开票二维码(不填默认 0) | 0 |
| notifyEmail | String | 是 | 50 | 购方邮箱 | 19883@qq.com |
| notifyPhone | String | 是 | 20 | 购方手机 | 13892827272 |
| orderNo | String | 否 | 64 | 订单号(字母或数字,不支持中文) | 1234565479830335 |
| orderTotal | Number | 是 | 16 | 订单总价(精确到小数点后两位) | 8 |
| payee | String | 是 | 20 | 收款人 | 收款人 |
| productOilFlag | String | 是 | 1 | 成品油标志(默认:0): 0:非成品油; 1:成品油; | 0 |
| projectNameDisplay | String | 是 | 20 | 项目名称栏目显示,不填默认为”项目名称”,只能为数字、中文、英文和-、_ | 项目名称 |
| remark | String | 是 | 230 | 备注信息 | - |
| salerAccount | String | 是 | 100 | 销方银行开户行及帐号 | 销方银行账号20200610 |
| salerAddress | String | 是 | 80 | 销方地址 | 金色西溪 |
| salerTaxNum | String | 否 | 20 | 销方税号 | 150301199811285326 |
| salerTel | String | 是 | 20 | 销方电话 | 0571-87022169 |
| specNameDisplay | String | 是 | 20 | 规格型号栏目显示,不填默认为”规格型号”,只能为数字、中文、英文和-、_ | 规格型号 |
响应参数
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| code | String | 否 | - | 状态编码 | E0000 |
| describe | String | 否 | - | 描述信息 | 开具成功 |
| result | Object | 否 | - | 返回数据 | - |
| └ issuingDate | String | 否 | - | 开具日期 | 2022-04-24 14:26:59 |
| └ ordertotal | Number | 否 | - | 合计金额 | 1.11 |
| └ electronicNo | String | 否 | - | 收据流水号 | 97068528-00000208 |
| └ pdfUrl | String | 否 | - | 收据pdf | http:nnfp-dev.axnfw.net/openplat/electronic/record/SJ/hBvmnv-gXDZp0 |
请求报文示例
NNOpenSDK sdk = NNOpenSDK.getIntance();
String taxnum = "23***789"; // 授权企业税号
String appKey = "Hn***XL";
String appSecret = "F65***65F";
String method = "nuonuo.OpeMplatform.sj"; // API方法名
String token = "2d484e**************pdui"; // 访问令牌
String content = "{
\"buyerTel\": \"1509-87366\",
\"corpDisplayName\": \"测试企业\",
\"clerkId\": \"\",
\"remark\": \"\",
\"checker\": \"复核人\",
\"projectNameDisplay\": \"项目名称\",
\"payee\": \"收款人\",
\"buyerAddress\": \"西湖区\",
\"buyerTaxNum\": \"339901999999142\",
\"invoiceLine\": \"p\",
\"needGenerateEwmFlag\": 0,
\"salerAccount\": \"销方银行账号20200610\",
\"orderNo\": \"1234565479830335\",
\"salerTel\": \"0571-87022169\",
\"deptId\": \"\",
\"specNameDisplay\": \"规格型号\",
\"buyerName\": \"诺诺网\",
\"addDate\": \"\",
\"notifyPhone\": \"13892827272\",
\"orderTotal\": 8,
\"salerAddress\": \"金色西溪\",
\"clerk\": \"开票人\",
\"buyerAccount\": \"工商银行账号88888888\",
\"productOilFlag\": \"0\",
\"salerTaxNum\": \"150301199811285326\",
\"detail\": [
{
\"specType\": \"1\",
\"taxRate\": 0.13,
\"unit\": \"kg\",
\"favouredPolicyName\": \"\",
\"price\": 8,
\"num\": 1,
\"zeroRateFlag\": \"\",
\"favouredPolicyFlag\": \"0\",
\"goodsCode\": \"1090511030000000000\",
\"goodsName\": \"大米\",
\"taxIncludedAmount\": 8
}
],
\"notifyEmail\": \"19883@qq.com\"
}";
String url = "https://sdk.nuonuo.com/open/v1/services"; // SDK请求地址
String senid = UUID.randomUUID().toString().replace("-", ""); // 唯一标识,32位随机码,无需修改,保持默认即可
String result = sdk.sendPostSyncRequest(url, senid, appKey, appSecret, token, taxnum, method, content);
System.out.println(result);
响应报文示例
提交开具成功响应:
{
"code": "E0000",
"describe": "开具成功",
"result": {
"issuingDate": "2022-04-24 14:26:59",
"ordertotal": 1.11,
"electronicNo": "97068528-00000208",
"pdfUrl": "http:nnfp-dev.axnfw.net/openplat/electronic/record/SJ/hBvmnv-gXDZp0"
}
}
保存成功响应:
{
"code": "E0000",
"describe": "同步成功",
"result": {
"issuingDate": null,
"ordertotal": 1.11,
"electronicNo": null,
"pdfUrl": null
}
}
返回码说明
| 返回码 | 说明 | 处理建议 |
|---|
E9999 | 订单号已存在!/开具失败!.... | 检查参数orderno是否正确 |
E9943 | 收据信息不能为空 | 检查收据信息 |
E9945 | 收据明细信息不能为空 | 检查收据明细 |
E9951 | 是否生成离线二维码订单标志只能为0和1 | 检查是否生成离线二维码标志 |
E9953 | 开票订单号不能为空,且只能包含字母或数字,最大长度为64 | 检查收据订单号 |
E9952 | 时间格式需为yyyy-MM-dd HH:mm:ss | 检查时间参数格式 |
E9513 | 企业资质不存在或已关闭 | 检查企业资质 |