接口说明
报销只允许操作发票状态正常的蓝票。
根据传入的发票信息(代码+号码)判断发票是否在当前税号的发票池中存在,
不存在且报销操作为报销发票,写入传入的发票信息(未补全状态、模糊级别,根据发票金额判断发票类型,发票状态正常)发票种类根据发票代码判断,(无法获取发票种类时 终止写入,提示 获取发票种类异常),写入成功后报销该发票。
存在时忽略传入的其他发票信息,
未报销则更新报销信息。
已报销则提示发票已报销。可取消报销。
API 方法名:nuonuo.OpeMplatform.vatInvoiceReimburseOperate 版本:V2.0
请求地址
| 环境 | 请求地址 |
|---|
| 正式环境 | https://sdk.nuonuo.com/open/v1/services |
| 沙箱环境 | https://sandbox.nuonuocs.cn/open/v1/services |
公共请求参数(消息头)
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| Content-type | String | 否 | - | MIME类型【消息头】 | - |
公共请求参数(消息体)
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| senid | String | 否 | - | 唯一标识,由企业自己生成32位随机码【消息体】 | - |
私有请求参数
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| taxNo | String | 否 | 20 | 企业税号 | 91330106MA2AYNWD8M |
| invoiceCode | String | 是 | 12 | 发票代码 | 033002100312 |
| invoiceNo | String | 否 | 20 | 发票号码 | 56117302 |
| invoiceDate | String | 否 | 10 | 开票日期 | 2020-12-17 |
| checkCode | String | 是 | 20 | 校验码 | 07912653 |
| totalAmount | String | 否 | 15 | 含税金额 | 4.00 |
| taxAmount | String | 否 | 15 | 发票税额 | 1 |
| excludetaxAmount | String | 否 | 15 | 不含税金额 | 2 |
| phoneNumber | String | 是 | 11 | 用户手机号:当手机号在用户中心注册 | 17621790391 |
| reimbursementInfo | Object | 否 | - | 报销信息 | - |
| └ remark | String | 是 | - | 备注 | 备注 |
| └ voucherNo | String | 是 | - | 凭证号 | 凭证号 |
| └ mulitReimburate | Number | 是 | - | 是否支持多次报销,0:不支持,1:支持(默认值0)。发票多次报销时,同一张发票报销单号不能重复, 取消报销时,0:删除改发票所有的报销记录, 1:报销单号必填,根据报销单号删除指定发票的指定报销记录 | 1 |
| └ operateType | Number | 否 | - | 报销方式0:取消报销、1:已报销、2:编辑报销。默认值1。 | 1 |
| └ reimbursementNo | String | 是 | - | 报销单号 | TR202gg10ee9ii080001 |
| └ operationTime | String | 是 | - | 报销时间,大于等于发票的开票时间 小于等于当前时间 | 2020-04-30 22:53:26 |
| └ reimbursementType | Number | 否 | - | 报销类型编码 | 5895 |
| └ reimbursementName | String | 否 | - | 报销人名称 | 严夏婷 |
| └ reimbursementAmount | String | 否 | - | 报销金额,大于等于0,小于等于发票金额。专票+普票+机动车:指价税合计。二手车:指车价合计。 | 1 |
| └ reimbursementTypeDesc | String | 否 | - | 报销类型名称 | 差旅/差旅打车 |
响应参数
| 参数名 | 类型 | 必填 | 长度 | 说明 | 示例 |
|---|
| code | String | 否 | - | | E0000 |
| describe | String | 否 | - | | 成功 |
| result | String | 否 | - | | - |
| success | String | 否 | - | | true |
请求报文示例
NNOpenSDK sdk = NNOpenSDK.getIntance();
String taxnum = "23***789"; // 授权企业税号
String appKey = "Hn***XL";
String appSecret = "F65***65F";
String method = "nuonuo.OpeMplatform.vatInvoiceReimburseOperate"; // API方法名
String token = "2d484e**************pdui"; // 访问令牌
String content = "{
\"totalAmount\": \"4.00\",
\"phoneNumber\": \"17621790391\",
\"excludetaxAmount\": \"2\",
\"reimbursementInfo\": {
\"voucherNo\": \"凭证号\",
\"reimbursementType\": 5895,
\"reimbursementTypeDesc\": \"差旅/差旅打车\",
\"reimbursementNo\": \"TR202gg10ee9ii080001\",
\"operateType\": 1,
\"remark\": \"备注\",
\"reimbursementAmount\": \"1\",
\"reimbursementName\": \"严夏婷\",
\"mulitReimburate\": 1,
\"operationTime\": \"2020-04-30 22:53:26\"
},
\"taxNo\": \"91330106MA2AYNWD8M\",
\"invoiceNo\": \"56117302\",
\"invoiceDate\": \"2020-12-17\",
\"taxAmount\": \"1\",
\"invoiceCode\": \"033002100312\",
\"checkCode\": \"07912653\"
}";
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": null,
"success": true
}
返回码说明
| 返回码 | 说明 | 处理建议 |
|---|
E0000 | 成功 | 成功 |
E1001 | 发票号码不能为空 | 发票号码不能为空 |
E1002 | 报销日期必须大于等于开票日期且小于等于当前日期 | 报销日期必须大于等于开票日期且小于等于当前日期 |
E9302 | 身份认证与当前企业税号不相符 | 身份认证与当前企业税号不相符 |