---
url: "https://pay.weixin.qq.com/doc/v3/partner/4016434668.md"
title: "预上传券Code"
doc_id: 4016434668
---

>更新时间：2025.11.07

服务商可以通过该接口为商品券批次预上传券Code

前置条件：

1. 批次的 `coupon_code_mode` 配置为 `UPLOAD`

2. 批次未失效或过期





## 接口说明

支持商户：【普通服务商】

请求方式：【POST】 `/v3/marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/upload-coupon-codes`

请求域名：【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

　　　　　【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点，指引[点击查看](https://pay.weixin.qq.com/doc/v3/merchant/4012075113.md)

接口限频：20/秒（商户号维度）

## 请求参数

### Header 参数
| 参数名 | 类型 | 必填 | 描述 |
| --- |  --- | --- | --- |
| Authorization | string | true | 请参考 [签名认证](https://pay.weixin.qq.com/doc/v3/merchant/4012365342.md#%E8%AF%B7%E6%B1%82%E6%8E%A5%E5%8F%A3%E5%90%8E%E7%AB%AF%E7%AD%BE%E5%90%8D) 生成认证信息 |
| Accept | string | true | 请设置为 `application/json` |
| Content-Type | string | true | 请设置为 `application/json` |
### Path 参数
| 参数名 | 类型 | 必填 | 描述 |
| --- |  --- | --- | --- |
| product_coupon_id | string | true | 【商品券ID】 商品券的唯一标识， [创建商品券](https://pay.weixin.qq.com/doc/v3/partner/4015781289.md) 时由微信支付生成 |
| stock_id | string | true | 【批次ID】 商品券批次的唯一标识，商品券批次创建时由微信支付生成（可使用【 [创建商品券API](https://pay.weixin.qq.com/doc/v3/partner/4015781289.md)】或【 [添加商品券批次API](https://pay.weixin.qq.com/doc/v3/partner/4015781304.md)】创建），请确保该批次属于 `product_coupon_id` 对应的商品券 |
### Body 参数
| 参数名 | 类型 | 必填 | 描述 |
| --- |  --- | --- | --- |
| out_request_no | string(40) | true | 【请求单号】 品牌上传券Code的请求流水号，品牌侧需保持唯一性，可使用 数字、大小写字母、下划线 `_`、短横线 `-` 组成，长度在6-40个字符之间 |
| code_list | array[string(40)] | true | 【券Code列表】 商户待上传的券Code列表，券Code需保持唯一性，可使用 数字、大小写字母、下划线 `_`、短横线 `-` 组成，长度不超过40个字符。<br>单次最多可上传200个券Code |
| brand_id | string | true | 【品牌ID】 微信支付为品牌方分配的唯一标识，该品牌应与服务商存在授权关系 |
## 应答参数

200 OK

| 参数名 | 类型 | 必填 | 描述 |
| --- |  --- | --- | --- |
| total_count | integer | true | 【去重后券Code总数】 系统会自动对请求中的券Code去重，这里是去重后的券Code总数 |
| success_code_list | array[string] | false | 【上传成功的券Code列表】 上传成功的券Code列表，原样返回 |
| failed_code_list | array[object] | false | 【上传失败的券Code列表】 每个失败券Code的详细错误信息 |
| failed_code_list.coupon_code | string | true | 【券Code】 上传失败的券Code，原样返回 |
| failed_code_list.code | string | true | 【错误码】 上传失败的错误码 |
| failed_code_list.message | string | true | 【错误信息】 上传失败的错误描述 |
| already_exist_code_list | array[string] | false | 【已经存在的券Code列表】 这些券Code已经存在于系统中，不会重复上传 |
| duplicate_code_list | array[string] | false | 【重复的券Code列表】 这些券Code在请求中重复出现，不会重复上传 |
## 错误码

以下是本接口返回的错误码列表。详细错误码规则，请参考[微信支付接口规则-错误码和错误提示](https://pay.weixin.qq.com/doc/v3/partner/4012081726.md#%E9%94%99%E8%AF%AF%E7%A0%81%E5%92%8C%E9%94%99%E8%AF%AF%E6%8F%90%E7%A4%BA)

| 状态码 | 错误码 | 描述 | 解决方案 |
| --- | --- | --- | --- |
| 400 | PARAM\_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
| 400 | INVALID\_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 [接口规则](https://pay.weixin.qq.com/doc/v3/merchant/4012081709.md) |
| 401 | SIGN\_ERROR | 验证不通过 | 请参阅 [签名常见问题](https://pay.weixin.qq.com/doc/v3/merchant/4012072670.md) |
| 500 | SYSTEM\_ERROR | 系统异常，请稍后重试 | 请稍后重试 |
| 400 | INVALID\_REQUEST | 已过期的批次不可预上传券Code | 请确认批次是否处于有效期 |
| 400 | INVALID\_REQUEST | 只有 coupon\_code\_mode 为 UPLOAD 的批次可以预上传券Code | 请确认批次 coupon\_code\_mode 为 UPLOAD 再调用本接口 |
| 404 | NOT\_FOUND | 未找到 product\_coupon\_id 对应的商品券 | 请确认 product\_coupon\_id 存在且属于当前品牌 |
| 404 | NOT\_FOUND | 未找到 stock\_id 对应的商品券批次 | 请确认 stock\_id 存在且属于当前商品券 |
| 429 | RATELIMIT\_EXCEEDED | 请求超过接口频率限制 | 请稍后使用原参数重试 |

请求示例

- [curl 示例](https://pay.weixin.qq.com/doc/v3/partner/4016434668-curl.md)
- [Java 示例](https://pay.weixin.qq.com/doc/v3/partner/4016434668-java.md)
- [Go 示例](https://pay.weixin.qq.com/doc/v3/partner/4016434668-go.md)


应答示例

> 200 OK

上传自定义券Code

```
{
  "total_count" : 3,
  "success_code_list" : [
    "code_0000002",
    "code_0000003"
  ],
  "already_exist_code_list" : [
    "code_0000001"
  ],
  "duplicate_code_list" : [
    "code_0000002"
  ]
}

```
