创建商品券

更新时间:2025.12.31

服务商可以通过该接口为品牌创建商品券和批次。微信支付创建成功后,会返回此次创建的商品券、批次。品牌方可在【经营平台】上配置【活动】对商品券进行投放。

前置条件:服务商已【设置商品券事件通知地址

接口说明

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

请求方式:【POST】/v3/marketing/partner/product-coupon/product-coupons

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

     【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看

接口限频:20/秒(商户号维度)

请求参数
折叠全部参数

Header  HTTP头参数

 Authorization  必填 string

请参考签名认证生成认证信息


 Accept  必填 string

请设置为application/json


 Content-Type  必填 string

请设置为application/json


body  包体参数

 out_request_no  必填   string(40)

【创建请求单号】 品牌创建商品券的请求流水号,品牌侧需保持唯一性,可使用 数字、大小写字母、下划线_、短横线- 组成,长度在6-40个字符之间


 scope  必填   string

【优惠范围】 商品券的优惠范围

可选取值

  • ALL全场商品可用券,此时券类型 type 仅可配置为 NORMAL 或 DISCOUNT

  • SINGLE部分商品可用券,此时券类型 type 配置不受限制,即可配置为 NORMALDISCOUNT 或 EXCHANGE


 type  必填   string

【商品券类型】 商品券的优惠类型

可选取值

  • NORMAL:  满减券

  • DISCOUNT:  折扣券

  • EXCHANGE:  兑换券,scope 优惠范围为 SINGLE 时可选


 usage_mode  必填   string

【使用模式】 商品券使用模式

  • SINGLE:  单券,即用户只能使用一次,使用后券失效


 single_usage_info  选填   object

【单券模式信息】 单券模式配置信息,当 scope 为 ALL 时必填。

属性

 normal_coupon  选填   object

【满减券使用规则】 本商品券内所有批次均以此规则提供满减优惠,当 type 为 NORMAL 时填写,其他类型不填写。

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受满减优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 discount_amount  必填   integer

【固定减免金额】 固定减免金额,单位为分。


 discount_coupon  选填   object

【折扣券使用规则】 本商品券内所有批次均以此规则提供折扣优惠,当type 为 DISCOUNT 时填写,其他类型不填写。

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受折扣优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 percent_off  必填   integer

【固定减免百分比】 表示减免金额为总金额的百分比。例如:填入 30 表示减免 30%,即打 7 折


 display_info  必填   object

【展示信息】 商品券展示信息,展示结果可参考商品券示意图(单券模式)

属性

 name  必填   string(15)

【商品券名称】 商品券名称,长度为3-15个UTF-8字符


 image_url  必填   string

【商品券图片】 商品图片的链接地址,仅支持通过【图片上传API】获取的图片URL地址。

  • 请参考商品券图片设计规范进行设计

  • 要求图片宽高比1:1,建议尺寸1080*1080

  • 大小不超过2M

  • 建议图片格式:透明PNG格式

  • 需要注意保留透明边距(上下左右各120px)


 background_url  必填   string

【商品券背景图】 商品背景图片的URL地址,仅支持通过【图片上传API】获取的图片URL地址。

  • 要求图片宽高比65:77,建议尺寸1170*1326

  • 大小不超过2M

  • 建议图片格式:JPG/PNG格式

  • 需要注意保留「商品名称」与「商品图」的安全区域


 detail_image_url_list  选填   array[string]

【商品券详情图列表】 商品详情图URL地址列表,用于最多可上传8张图片,仅支持通过【图片上传API】获取的图片URL地址。

  • 要求图片宽高比65:77,建议尺寸1170*1326

  • 大小不超过2M

  • 建议图片格式:JPG/PNG格式


 original_price  选填   integer

【商品原价】 单位为分,用于对外展示,默认为 0,最大为 10000000。不填写时默认为 0


 combo_package_list  选填   array[object]

【适用商品组合】 当 scope 为 SINGLE 必填,用于对外展示,其他优惠范围选填。最多配置 50 个组合

属性

 name  必填   string(15)

【适用商品名】 长度不超过15个UTF-8字符


 pick_count  必填   integer

【可选单品数量】 用户可以从 choice_list 中选择的选项数量,例如 10 选 3,则这里填 3


 choice_list  必填   array[object]

【单品列表】 套餐内包含的选项列表,记录每个单品的信息,最多99个单品

属性

 name  必填   string(15)

【单品名称】 长度不超过15个UTF-8字符


 price  必填   integer

【单品价格】 单位为分


 count  必填   integer

【单品数量】 最多99个


 image_url  选填   string

【单品图片】 单品图片URL地址,仅支持通过【图片上传API】获取的图片URL地址,接入领券组件和核销组件的品牌方建议填写。

  • 要求图片宽高比1:1,建议尺寸1080*1080

  • 大小不超过2M

  • 建议图片格式:透明PNG格式

  • 需要注意保留透明边距(上下左右各120px)


 mini_program_appid  选填   string

【单品跳转小程序AppID】 品牌方或服务商可展示单品的小程序AppID,小程序需与品牌方或服务商存在绑定关系,接入领券组件和核销组件的品牌方或服务商建议填写。需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【单品跳转小程序路径】 单品展示信息在小程序内的跳转路径,接入领券组件和核销组件的品牌方或服务商建议填写。需和 mini_program_appid 一同填写。


 out_product_no  选填   string(40)

【外部商品ID】 品牌侧的商品标识,品牌可自行选择传入,长度不超过40个字符。

:微信支付不校验此参数的唯一性,即允许多个商品券共享外部商品ID。


 stock  必填   object

【批次】 商品券批次信息

属性

 remark  选填   string(20)

【备注】 仅配置品牌方可见,用于自定义信息,最多20个UTF-8字符


 coupon_code_mode  必填   string

【券Code分配模式】 决定发券时用户商品券Code如何产生

可选取值

  • WECHATPAY:  微信支付随机生成,发券时由微信支付系统自动随机生成券码,品牌方无需干预,微信支付随机生成的券Code长度限制为40个字符以内

  • UPLOAD:  品牌方预上传Code,品牌方需先使用【预上传券Code API(单券)】上传自定义Code,微信支付系统发券时从中随机选取,当预存Code不足时可能影响发券,品牌应及时补充

  • API_ASSIGN:  品牌方自行指定,品牌方通过【向用户发放商品券API】自行发券时指定,微信支付系统不再进行自动分配。特别注意:这种模式的商品批次只可由品牌方自行发券,无法在摇一摇有优惠等微信支付渠道投放


 stock_send_rule  必填   object

【发放规则】 批次的发放规则

属性

 max_count  必填   integer

【发放次数总上限】 批次在生命周期内总发放次数,最多 100,000,000 次


 max_count_per_day  选填   integer

【每日发放次数上限】 批次在每天内发放次数上限,每日刷新,最多 100,000,000 次。默认不限制每日发放上限


 max_count_per_user  必填   integer

【每个用户领取次数上限】 每个用户最多可领取本批次的次数,最多 100 次。


 single_usage_rule  必填   object

【单券使用规则】 

属性

 coupon_available_period  必填   object

【券可核销时间】 确定用户领券后在什么时间段内可以核销

属性

 available_begin_time  必填   string

【批次开始时间】 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。

批次有效期最长不超过365天,摇优惠场景建议设置批次时间大于等于5天。


 available_end_time  必填   string

【批次结束时间】 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。

批次有效期最长不超过365天


 available_days  选填   integer

【券生效后N天内可用】 日期区间内,券生效后 N 天内有效,最多365天。例如:

  • 生效当天内有效填 1

  • 生效后2天内有效填 2

  • 依此类推……

用户在有效期开始前领取商品券,则从有效期第1天开始计算天数,用户在有效期内领取商品券,则从领取当天开始计算天数,无论用户何时领取商品券,商品券在活动有效期结束后均不可用。

可配合 wait_days_after_receive 一同填写,也可单独填写。

:不可与 irregular_available_period_list 同时配置


 wait_days_after_receive  选填   integer

【领券后需等待N天才生效】 日期区间内,用户领券后需等待 N 天才开始生效,最多30天。例如:

  • 领券后当天开始生效则无需填写

  • 领券后第二天开始生效则填写 1

用户在有效期开始前领取商品券,则从有效期第1天开始计算天数,用户在有效期内领取商品券,则从领取当天开始计算天数。无论用户何时领取商品券,商品券在活动有效期结束后均不可用。

需配合 available_days 一同填写,不可单独填写

:不可与 irregular_available_period_list 同时配置


 weekly_available_period  选填   object

【每周固定可用时间】 日期区间内,每周固定时间可以使用。可与 available_days 和 wait_days_after_receive 一同配置,一同配置时条件需同时满足券才可用(时间范围取交集)。

:不可与 irregular_available_period_list 同时配置

属性

 day_list  选填   array[string]

【每周可用星期数】 每周特定星期X可用,在日期区间内每周循环有效。例如 配置 ["MONDAY", "FRIDAY"] 表示每周一和周五可用。配置 day_period_list 时此字段必填

可选取值

  • MONDAY:  周一可用

  • TUESDAY:  周二可用

  • WEDNESDAY:  周三可用

  • THURSDAY:  周四可用

  • FRIDAY:  周五可用

  • SATURDAY:  周六可用

  • SUNDAY:  周日可用


 day_period_list  选填   array[object]

【当天可用时间段】 生效当天特定时间段内有效,可以配置多个时间段。最多可以配置 3 个时间段。不配置则全天可用。配置此字段后 day_list 字段必填

属性

 begin_time  必填   integer

【当天可用开始时间】 当天可用时间距离当天 00:00:00 的秒数,如 60 表示当天 00:01:00 开始可用。取值范围 [0,86399] 且必须小于 end_time


 end_time  必填   integer

【当天可用结束时间】 当天结束可用时间距离当天 00:00:00 的秒数,如 86399 表示当天 23:59:59 结束可用。取值范围 [0,86399] 且必须大于 begin_time


 irregular_available_period_list  选填   array[object]

【指定可用时间段】 可以配置多个无规律时间段,不同区间内请勿重叠,最多可配置2个区间。

:不可与 available_dayswait_days_after_receiveweekly_available_period 同时配置

属性

 begin_time  必填   string

【开始时间】 区间开始时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 end_time  必填   string

【结束时间】 区间结束时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 normal_coupon  选填   object

【满减券使用规则】  type 为 NORMAL 且 scope 为 SINGLE 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受满减优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 discount_amount  必填   integer

【固定减免金额】 固定减免金额,单位为分。


 discount_coupon  选填   object

【折扣券使用规则】  type 为 DISCOUNT 且 scope 为 SINGLE 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受折扣优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 percent_off  必填   integer

【固定减免百分比】 表示减免金额为总金额的百分比。例如:填入 30 表示减免 30%,即打 7 折


 exchange_coupon  选填   object

【兑换券使用规则】  type 为 EXCHANGE 且 scope 为 SINGLE 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可进行兑换。门槛可以为0,即无门槛兑换。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 exchange_price  必填   integer

【固定兑换价格】 单位为分


 usage_rule_display_info  必填   object

【券使用规则展示信息】 券使用规则展示信息

属性

 coupon_usage_method_list  必填   array[string]

【券使用方式列表】 可以配置多种使用方式

可选取值

  • OFFLINE:  线下滴码核销,点击券“立即使用”跳转展示券二维码详情(投放计划暂不支持此核销方式)

  • MINI_PROGRAM:  线上小程序核销,点击券“立即使用”跳转至配置的商家小程序(需要添加小程序AppID和Path)

  • APP:  APP核销,在商家APP内核销

  • PAYMENT_CODE:  微信支付付款码核销,点击券“立即使用”将跳转至微信支付钱包付款码,服务商可扫码核销用户券后再扫付款码发起下单,适合线下支付场景


 mini_program_appid  选填   string

【小程序AppID】 品牌方或服务商小程序AppID,可在微信公众平台查看,该小程序与品牌或服务商存在绑定关系。

在 coupon_usage_method_list 中包含 MINI_PROGRAM 时必填,需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【小程序跳转路径】 品牌方或服务商小程序内部跳转路径。

在 coupon_usage_method_list 中包含 MINI_PROGRAM 时必填,需和 mini_program_appid 一同填写。


 app_path  选填   string

【APP跳转路径】 品牌方或服务商APP跳转路径,在 coupon_usage_method_list 中包含 APP 时必填。


 usage_description  必填   string(1000)

【券使用说明】 用于说明详细的券规则,长度不超过1000个UTF-8字符


 coupon_available_store_info  选填   object

【券可用门店信息】 用于描述全部可用门店信息,可配置小程序跳转地址进行展示

属性

 description  必填   string(1000)

【券可用门店描述】 告知用户本券可在哪些门店使用,长度不超过1000个UTF-8字符


 mini_program_appid  选填   string

【小程序AppID】 品牌方或服务商小程序AppID,用于展示可用门店列表的详细信息,可在微信公众平台查看,该小程序与品牌或服务商存在绑定关系。需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【小程序跳转路径】 品牌方或服务商小程序内部展示可用门店列表的详细信息的页面跳转路径,需和 mini_program_appid 一同填写。


 coupon_display_info  必填   object

【用户商品券展示信息】 用户商品券在卡包中的展示详情,包括引导用户的自定义入口

属性

 code_display_mode  必填   string

【用户商品券Code展示模式】 决定用户商品券Code在卡包中的展示形态

可选取值

  • INVISIBLE:  不展示Code

  • BARCODE:  条形码

  • QRCODE:  二维码


 background_color  选填   string

【背景颜色】 券的背景颜色,可设置10种颜色,色值请参考下方说明。颜色取值为颜色图中的颜色名称,不填默认为 Color020 。


 entrance_mini_program  选填   object

【小程序入口】 展示跳转小程序的入口

属性

 appid  必填   string

【小程序AppID】 品牌方小程序的AppID,可在微信公众平台查看,该小程序与品牌存在绑定关系


 path  必填   string

【小程序跳转路径】 品牌方小程序内部跳转路径


 entrance_wording  必填   string(5)

【入口文案】 小程序入口文案,长度不超过5个UTF-8字符


 guidance_wording  必填   string(6)

【引导文案】 小程序入口引导文案,长度不超过6个UTF-8字符


 entrance_official_account  选填   object

【公众号入口】 展示跳转公众号的入口

属性

 appid  必填   string

【公众号AppID】 微信公众号唯一标识,可在微信公众平台查看,该公众号应与品牌方存在绑定关系


 entrance_finder  选填   object

【视频号入口】 展示跳转视频号的入口

属性

 finder_id  必填   string

【视频号ID】 关联视频号将展示在优惠券详情的顶部右侧,该视频号应与品牌方存在绑定关系


 finder_video_id  必填   string

【视频号视频ID】 券详情视频内容,支持配置关联视频号下的具体视频内容


 finder_video_cover_image_url  必填   string

【视频号封面图】 截取的视频号图片将在券到期提醒消息、券详情中展示,仅支持通过【图片上传API】获取的图片URL地址。

  • 图片尺寸:716像素(宽)*402像素(高)

  • 图片大小不超过2M

  • 建议图片格式:JPG/PNG格式


 notify_config  必填   object

【事件通知配置】 发生券相关事件时,微信支付会向服务商发送通知,需要提供通知相关配置

属性

 notify_appid  必填   string

【事件通知AppID】 服务商或者品牌的AppID,支持小程序、服务号、公众号、APP类型的AppID,可在微信公众平台查看,用于券事件通知时计算用户的OpenID,需要与服务商或者品牌存在绑定关系


 store_scope  必填   string

【可用门店范围】 控制该批次可以在品牌下哪些门店使用

可选取值

  • NONE:  无关联门店,该批次对外不展示可用门店信息

  • ALL:  所有门店可用,该批次在品牌下的所有门店可用,品牌无需为该批次关联门店列表

  • SPECIFIC:  特定门店可用,品牌需调用关联门店接口关联门店,关联后该批次在关联的门店可用


 brand_id  必填   string

【品牌ID】 微信支付为品牌方分配的唯一标识,该品牌应与服务商存在授权关系

请求示例

curl
Java
Go

POST

创建满100可用的全场8折券

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/marketing/partner/product-coupon/product-coupons \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Content-Type: application/json" \
6  -d '{
7    "out_product_no" : "Product_1234567890",
8    "scope" : "ALL",
9    "usage_mode" : "SINGLE",
10    "display_info" : {
11      "name" : "全场满100立打8折",
12      "image_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx",
13      "background_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx",
14      "detail_image_url_list" : [
15        "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx"
16      ]
17    },
18    "single_usage_info" : {
19      "discount_coupon" : {
20        "threshold" : 10000,
21        "percent_off" : 20
22      }
23    },
24    "type" : "DISCOUNT",
25    "stock" : {
26      "remark" : "8月工作日有效批次",
27      "coupon_code_mode" : "UPLOAD",
28      "stock_send_rule" : {
29        "max_count" : 10000000,
30        "max_count_per_user" : 1
31      },
32      "single_usage_rule" : {
33        "coupon_available_period" : {
34          "available_begin_time" : "2025-08-01T00:00:00+08:00",
35          "available_end_time" : "2025-08-31T23:59:59+08:00",
36          "available_days" : 30,
37          "weekly_available_period" : {
38            "day_list" : [
39              "MONDAY",
40              "TUESDAY",
41              "WEDNESDAY",
42              "THURSDAY",
43              "FRIDAY"
44            ]
45          }
46        }
47      },
48      "usage_rule_display_info" : {
49        "coupon_usage_method_list" : [
50          "OFFLINE",
51          "MINI_PROGRAM",
52          "PAYMENT_CODE"
53        ],
54        "mini_program_appid" : "wx1234567890",
55        "mini_program_path" : "/pages/index/product",
56        "usage_description" : "工作日可用",
57        "coupon_available_store_info" : {
58          "description" : "所有门店可用,可使用小程序查看门店列表",
59          "mini_program_appid" : "wx1234567890",
60          "mini_program_path" : "/pages/index/store-list"
61        }
62      },
63      "coupon_display_info" : {
64        "code_display_mode" : "QRCODE",
65        "background_color" : "Color010",
66        "entrance_mini_program" : {
67          "appid" : "wx1234567890",
68          "path" : "/pages/index/product",
69          "entrance_wording" : "欢迎选购",
70          "guidance_wording" : "获取更多优惠"
71        },
72        "entrance_official_account" : {
73          "appid" : "wx1234567890"
74        },
75        "entrance_finder" : {
76          "finder_id" : "gh_12345678",
77          "finder_video_id" : "UDFsdf24df34dD456Hdf34",
78          "finder_video_cover_image_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx"
79        }
80      },
81      "store_scope" : "NONE",
82      "notify_config" : {
83        "notify_appid" : "wx4fd12345678"
84      }
85    },
86    "out_request_no" : "12345_20250101_A3489",
87    "brand_id" : "120344"
88  }'
89

应答参数
折叠全部参数

200 OK

 product_coupon_id  必填   string(40)

【商品券ID】 商品券的唯一标识,本接口成功时由微信支付生成


 scope  必填   string

【优惠范围】 商品券优惠范围

可选取值

  • ALL全场商品可用券,此时券类型 type 仅可配置为 NORMAL 或 DISCOUNT

  • SINGLE部分商品可用券,此时券类型 type 配置不受限制,即可配置为 NORMALDISCOUNT 或 EXCHANGE


 type  必填   string

【商品券类型】 商品券的优惠类型

可选取值

  • NORMAL:  满减券

  • DISCOUNT:  折扣券

  • EXCHANGE:  兑换券,仅在 scope 为 SINGLE 时可配置


 usage_mode  必填   string

【使用模式】 商品券使用模式

  • SINGLE:  单券,即用户只能使用一次,使用后券失效


 single_usage_info  选填   object

【单券模式信息】 单券模式配置信息,当 scope 为 ALL 时必填

属性

 normal_coupon  选填   object

【满减券使用规则】 本商品券内所有批次均以此规则提供满减优惠,当 type 为 NORMAL 时填写,其他类型不应填写。

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受满减优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 discount_amount  必填   integer

【固定减免金额】 固定减免金额,单位为分。


 discount_coupon  选填   object

【折扣券使用规则】 本商品券内所有批次均以此规则提供折扣优惠,当 type 为 DISCOUNT 时填写,其他类型不应填写。

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受折扣优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 percent_off  必填   integer

【固定减免百分比】 表示减免金额为总金额的百分比。例如:填入 30 表示减免 30%,即打 7 折


  display_info  必填   object

【展示信息】 商品券展示信息

属性

 name  必填   string(15)

【商品券名称】 商品券名称,长度为3-15个UTF-8字符


 image_url  必填   string

【商品券图片】 商品图片的链接地址,仅支持通过【图片上传API】获取的图片URL地址。

  • 请参考商品券图片设计规范进行设计

  • 要求图片宽高比1:1,建议尺寸1080*1080

  • 大小不超过2M

  • 建议图片格式:透明PNG格式

  • 需要注意保留透明边距(上下左右各120px)


 background_url  必填   string

【商品券背景图】 商品背景图片的URL地址,仅支持通过【图片上传API】获取的图片URL地址。

  • 要求图片宽高比65:77,建议尺寸1170*1326

  • 大小不超过2M

  • 建议图片格式:JPG/PNG格式

  • 需要注意保留「商品名称」与「商品图」的安全区域


 detail_image_url_list  选填   array[string]

【商品券详情图列表】 商品详情图URL地址列表,用于最多可上传8张图片,仅支持通过【图片上传API】获取的图片URL地址。

  • 要求图片宽高比65:77,建议尺寸1170*1326

  • 大小不超过2M

  • 建议图片格式:JPG/PNG格式


 original_price  选填   integer

【商品原价】 单位为分, scope 为 SINGLE 必填,用于对外展示,其他优惠范围不应填写。


 combo_package_list  选填   array[object]

【适用商品组合】 当 scope 为 SINGLE 必填,用于对外展示,其他优惠范围选填。最多配置 50 个组合

属性

 name  必填   string(15)

【适用商品名】 长度不超过15个UTF-8字符


 pick_count  必填   integer

【可选单品数量】 用户可以从 choice_list 中选择的选项数量,例如 10 选 3,则这里填 3


 choice_list  必填   array[object]

【单品列表】 套餐内包含的选项列表,记录每个单品的信息,最多99个单品

属性

 name  必填   string(15)

【单品名称】 长度不超过15个UTF-8字符


 price  必填   integer

【单品价格】 单位为分


 count  必填   integer

【单品数量】 最多99个


 image_url  选填   string

【单品图片】 单品图片URL地址,仅支持通过【图片上传API】获取的图片URL地址,接入领券组件和核销组件的品牌方建议填写。

  • 要求图片宽高比1:1,建议尺寸1080*1080

  • 大小不超过2M

  • 建议图片格式:透明PNG格式

  • 需要注意保留透明边距(上下左右各120px)


 mini_program_appid  选填   string

【单品跳转小程序AppID】 品牌方或服务商可展示单品的小程序AppID,小程序需与品牌方或服务商存在绑定关系,接入领券组件和核销组件的品牌方或服务商建议填写。需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【单品跳转小程序路径】 单品展示信息在小程序内的跳转路径,接入领券组件和核销组件的品牌方或服务商建议填写。需和 mini_program_appid 一同填写。


 out_product_no  选填   string

【外部商品ID】 商户创建商品券时主动传入的外部商品ID,原样返回


 state  必填   string

【商品券状态】 商品券状态

可选取值

  • AUDITING:  审批中,审批完成前商品券不可用

  • EFFECTIVE:  生效中,商品券已生效,可以正常使用

  • DEACTIVATED:  已失效,品牌方主动调用失效接口使商品券失效


 stock  必填   object

【批次】 商品券批次信息

属性

 product_coupon_id  必填   string(40)

【商品券ID】 商品券的唯一标识,由微信支付生成


 stock_id  必填   string(40)

【批次ID】 商品券批次的唯一标识,由微信支付生成


 remark  选填   string(20)

【备注】 仅配置品牌可见,用于自定义信息


 coupon_code_mode  必填   string

【券Code分配模式】 决定发券时用户商品券Code如何产生

可选取值

  • WECHATPAY:  微信支付随机生成,发券时由微信支付系统自动随机生成券码,品牌方无需干预,微信支付随机生成的券Code长度限制为40个字符以内

  • UPLOAD:  品牌方预上传Code,品牌方需先使用【预上传券Code API(单券)】上传自定义Code,微信支付系统发券时从中随机选取,当预存Code不足时可能影响发券,品牌应及时补充

  • API_ASSIGN:  品牌方自行指定,品牌方通过【向用户发放商品券API】自行发券时指定,微信支付系统不再进行自动分配。特别注意:这种模式的商品批次只可由品牌方自行发券,无法在摇一摇有优惠等微信支付渠道投放


 coupon_code_count_info  选填   object

【品牌方预上传的券Code数量信息】  coupon_code_mode 为 UPLOAD 时存在此字段

属性

 total_count  必填   integer

【已上传的Code总数】 品牌方为此批次已经上传过的券Code总数量


 available_count  必填   integer

【当前可用的Code数】 品牌方为此批次已经上传过的券Code中,当前剩余可用的券Code数量


 stock_send_rule  必填   object

【发放规则】 发放规则

属性

 max_count  必填   integer

【发放次数总上限】 批次在生命周期内总发放次数,最多 100,000,000 次


 max_count_per_day  选填   integer

【每日发放次数上限】 批次在每天内发放次数上限,每日刷新,最多 100,000,000 次。默认不限制每日发放上限


 max_count_per_user  必填   integer

【每个用户领取次数上限】 每个用户最多可领取本批次的次数,最多 100 次。


 single_usage_rule  必填   object

【单券使用规则】

属性

 coupon_available_period  必填   object

【券可核销时间】 确定用户领券后在什么时间段内可以核销

属性

 available_begin_time  必填   string

【批次开始时间】 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。

批次有效期最长不超过365天


 available_end_time  必填   string

【批次结束时间】 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。

批次有效期最长不超过365天


 available_days  选填   integer

【券生效后N天内可用】 日期区间内,券生效后 N 天内有效,最多365天。例如:

  • 生效当天内有效填 1

  • 生效后2天内有效填 2

  • 依此类推……

用户在有效期开始前领取商品券,则从有效期第1天开始计算天数,用户在有效期内领取商品券,则从领取当天开始计算天数,无论用户何时领取商品券,商品券在活动有效期结束后均不可用。

可配合 wait_days_after_receive 一同填写,也可单独填写。

:不可与 irregular_available_period_list 同时配置


 wait_days_after_receive  选填   integer

【领券后需等待N天才生效】 日期区间内,用户领券后需等待 N 天才开始生效,最多30天。例如:

  • 领券后当天开始生效则无需填写

  • 领券后第二天开始生效则填写 1

用户在有效期开始前领取商品券,则从有效期第1天开始计算天数,用户在有效期内领取商品券,则从领取当天开始计算天数。无论用户何时领取商品券,商品券在活动有效期结束后均不可用。

需配合 available_days 一同填写,不可单独填写

:不可与 irregular_available_period_list 同时配置


 weekly_available_period  选填   object

【每周固定可用时间】 日期区间内,每周固定时间可以使用。可与 available_days 和 wait_days_after_receive 一同配置,一同配置时条件需同时满足券才可用(时间范围取交集)。

:不可与 irregular_available_period_list 同时配置

属性

 day_list  选填   array[string]

【每周可用星期数】 每周特定星期X可用,在日期区间内每周循环有效。例如 配置 ["MONDAY", "FRIDAY"] 表示每周一和周五可用。配置 day_period_list 时此字段必填

可选取值

  • MONDAY:  周一可用

  • TUESDAY:  周二可用

  • WEDNESDAY:  周三可用

  • THURSDAY:  周四可用

  • FRIDAY:  周五可用

  • SATURDAY:  周六可用

  • SUNDAY:  周日可用


 day_period_list  选填   array[object]

【当天可用时间段】 生效当天特定时间段内有效,可以配置多个时间段。最多可以配置 3 个时间段。不配置则全天可用。配置此字段后 day_list 字段必填

属性

 begin_time  必填   integer

【当天可用开始时间】 当天可用时间距离当天 00:00:00 的秒数,如 60 表示当天 00:01:00 开始可用。取值范围 [0,86399] 且必须小于 end_time


 end_time  必填   integer

【当天可用结束时间】 当天结束可用时间距离当天 00:00:00 的秒数,如 86399 表示当天 23:59:59 结束可用。取值范围 [0,86399] 且必须大于 begin_time


 irregular_available_period_list  选填   array[object]

【指定可用时间段】 可以配置多个无规律时间段,不同区间内请勿重叠,最多可配置2个区间。

:不可与 available_dayswait_days_after_receiveweekly_available_period 同时配置

属性

 begin_time  必填   string

【开始时间】 区间开始时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 end_time  必填   string

【结束时间】 区间结束时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 normal_coupon  选填   object

【满减券使用规则】  type 为 NORMAL 且 scope 为 SINGLE 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受满减优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 discount_amount  必填   integer

【固定减免金额】 固定减免金额,单位为分。


 discount_coupon  选填   object

【折扣券使用规则】  type 为 DISCOUNT 且 scope 为 SINGLE 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受折扣优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 percent_off  必填   integer

【固定减免百分比】 表示减免金额为总金额的百分比。例如:填入 30 表示减免 30%,即打 7 折


 exchange_coupon  选填   object

【兑换券使用规则】  type 为 EXCHANGE 且 scope 为 SINGLE 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可进行兑换。门槛可以为0,即无门槛兑换。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 exchange_price  必填   integer

【固定兑换价格】 单位为分


 usage_rule_display_info  必填   object

【券使用规则展示信息】 券使用规则展示信息

属性

 coupon_usage_method_list  必填   array[string]

【券使用方式列表】 可以配置多种使用方式

可选取值

  • OFFLINE:  线下滴码核销,点击券“立即使用”跳转展示券二维码详情(投放计划暂不支持此核销方式)

  • MINI_PROGRAM:  线上小程序核销,点击券“立即使用”跳转至配置的商家小程序(需要添加小程序AppID和Path)

  • APP:  APP核销,在商家APP内核销

  • PAYMENT_CODE:  微信支付付款码核销,点击券“立即使用”将跳转至微信支付钱包付款码,服务商可扫码核销用户券后再扫付款码发起下单,适合线下支付场景


 mini_program_appid  选填   string

【小程序AppID】 品牌方或服务商小程序AppID,可在微信公众平台查看,该小程序与品牌或服务商存在绑定关系。

在 coupon_usage_method_list 中包含 MINI_PROGRAM 时必填,需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【小程序跳转路径】 品牌方或服务商小程序内部跳转路径。

在 coupon_usage_method_list 中包含 MINI_PROGRAM 时必填,需和 mini_program_appid 一同填写。


 app_path  选填   string

【APP跳转路径】 品牌方或服务商APP跳转路径,在 coupon_usage_method_list 中包含 APP 时必填。


 usage_description  必填   string(1000)

【券使用说明】 用于说明详细的券规则,长度不超过1000个UTF-8字符


 coupon_available_store_info  选填   object

【券可用门店信息】 用于描述全部可用门店信息,可配置小程序跳转地址进行展示

属性

 description  必填   string(1000)

【券可用门店描述】 告知用户本券可在哪些门店使用,长度不超过1000个UTF-8字符


 mini_program_appid  选填   string

【小程序AppID】 品牌方或服务商小程序AppID,用于展示可用门店列表的详细信息,可在微信公众平台查看,该小程序与品牌或服务商存在绑定关系。需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【小程序跳转路径】 品牌方或服务商小程序内部展示可用门店列表的详细信息的页面跳转路径,需和 mini_program_appid 一同填写。


 coupon_display_info  必填   object

【用户商品券展示信息】 用户商品券在卡包中的展示详情,包括引导用户的自定义入口

属性

 code_display_mode  必填   string

【用户商品券Code展示模式】 决定用户商品券Code在卡包中的展示形态

可选取值

  • INVISIBLE:  不展示Code

  • BARCODE:  条形码

  • QRCODE:  二维码


 background_color  选填   string

【背景颜色】 券的背景颜色,可设置10种颜色,色值请参考下方说明。颜色取值为颜色图中的颜色名称,不填默认为 Color020 。


 entrance_mini_program  选填   object

【小程序入口】 展示跳转小程序的入口

属性

 appid  必填   string

【小程序AppID】 品牌方小程序的AppID,可在微信公众平台查看,该小程序与品牌存在绑定关系


 path  必填   string

【小程序跳转路径】 品牌方小程序内部跳转路径


 entrance_wording  必填   string(5)

【入口文案】 小程序入口文案,长度不超过5个UTF-8字符


 guidance_wording  必填   string(6)

【引导文案】 小程序入口引导文案,长度不超过6个UTF-8字符


 entrance_official_account  选填   object

【公众号入口】 展示跳转公众号的入口

属性

 appid  必填   string

【公众号AppID】 微信公众号唯一标识,可在微信公众平台查看,该公众号应与品牌方存在绑定关系


 entrance_finder  选填   object

【视频号入口】 展示跳转视频号的入口

属性

 finder_id  必填   string

【视频号ID】 关联视频号将展示在优惠券详情的顶部右侧,该视频号应与品牌方存在绑定关系


 finder_video_id  必填   string

【视频号视频ID】 券详情视频内容,支持配置关联视频号下的具体视频内容


 finder_video_cover_image_url  必填   string

【视频号封面图】 截取的视频号图片将在券到期提醒消息、券详情中展示,仅支持通过【图片上传API】获取的图片URL地址。

  • 图片尺寸:716像素(宽)*402像素(高)

  • 图片大小不超过2M

  • 建议图片格式:JPG/PNG格式


 notify_config  必填   object

【事件通知配置】 发生券相关事件时,微信支付会向服务商发送通知,需要提供通知相关配置

属性

 notify_appid  必填   string

【事件通知AppID】 服务商或者品牌的AppID,支持小程序、服务号、公众号、APP类型的AppID,可在微信公众平台查看,用于券事件通知时计算用户的OpenID,需要与服务商或者品牌存在绑定关系


 store_scope  必填   string

【可用门店范围】 控制该批次可以在品牌下哪些门店使用

可选取值

  • NONE:  无关联门店,该批次对外不展示可用门店信息

  • ALL:  所有门店可用,该批次在品牌下的所有门店可用,品牌无需为该批次关联门店列表

  • SPECIFIC:  特定门店可用,品牌需调用关联门店接口关联门店,关联后该批次在关联的门店可用


 sent_count_info  必填   object

【已发放次数】 本批次已发放次数

属性

 total_count  必填   integer

【已发放总次数】 批次在生命周期内已发放次数


 today_count  必填   integer

【当天已发放次数】 批次在当天已发放次数


 state  必填   string

【批次状态】 商品券批次状态

可选取值

  • AUDITING:  审批中

  • SENDING:  发放中

  • PAUSED:  已暂停

  • STOPPED:  已停止,当前已到达结束时间

  • DEACTIVATED:  已失效,品牌方主动调用失效接口使批次失效


 deactivate_request_no  选填   string(128)

【失效请求单号】  state 为 DEACTIVATED 时提供,返回品牌方调用失效接口时传入的请求流水号


 deactivate_time  选填   string

【失效时间】  state 为 DEACTIVATED 时提供,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 deactivate_reason  选填   string(150)

【失效原因】  state 为 DEACTIVATED 时提供,返回品牌方调用【失效商品券批次API】时传入的失效原因


 brand_id  必填   string

【品牌ID】 微信支付为品牌方分配的唯一标识,该品牌应与服务商存在授权关系


 brand_id  必填   string

【品牌ID】 微信支付为品牌方分配的唯一标识,该品牌应与服务商存在授权关系

应答示例

200 OK

创建满100可用的全场8折券

1{
2  "product_coupon_id" : "1000000013",
3  "scope" : "ALL",
4  "type" : "DISCOUNT",
5  "usage_mode" : "SINGLE",
6  "single_usage_info" : {
7    "discount_coupon" : {
8      "threshold" : 10000,
9      "percent_off" : 20
10    }
11  },
12  "display_info" : {
13    "name" : "全场满100立打8折",
14    "image_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx",
15    "background_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx",
16    "detail_image_url_list" : [
17      "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx"
18    ]
19  },
20  "state" : "EFFECTIVE",
21  "out_product_no" : "Product_1234567890",
22  "stock" : {
23    "product_coupon_id" : "1000000013",
24    "stock_id" : "1000000013001",
25    "remark" : "8月工作日有效批次",
26    "coupon_code_mode" : "UPLOAD",
27    "coupon_code_count_info" : {
28      "total_count" : 0,
29      "available_count" : 0
30    },
31    "stock_send_rule" : {
32      "max_count" : 10000000,
33      "max_count_per_user" : 1
34    },
35    "single_usage_rule" : {
36      "coupon_available_period" : {
37        "available_begin_time" : "2025-08-01T00:00:00+08:00",
38        "available_end_time" : "2025-08-31T23:59:59+08:00",
39        "available_days" : 30,
40        "weekly_available_period" : {
41          "day_list" : [
42            "MONDAY",
43            "TUESDAY",
44            "WEDNESDAY",
45            "THURSDAY",
46            "FRIDAY"
47          ]
48        }
49      }
50    },
51    "usage_rule_display_info" : {
52      "coupon_usage_method_list" : [
53        "OFFLINE",
54        "MINI_PROGRAM",
55        "PAYMENT_CODE"
56      ],
57      "mini_program_appid" : "wx1234567890",
58      "mini_program_path" : "/pages/index/product",
59      "usage_description" : "工作日可用",
60      "coupon_available_store_info" : {
61        "description" : "所有门店可用,可使用小程序查看门店列表",
62        "mini_program_appid" : "wx1234567890",
63        "mini_program_path" : "/pages/index/store-list"
64      }
65    },
66    "coupon_display_info" : {
67      "code_display_mode" : "QRCODE",
68      "background_color" : "Color010",
69      "entrance_mini_program" : {
70        "appid" : "wx1234567890",
71        "path" : "/pages/index/product",
72        "entrance_wording" : "欢迎选购",
73        "guidance_wording" : "获取更多优惠"
74      },
75      "entrance_official_account" : {
76        "appid" : "wx1234567890"
77      },
78      "entrance_finder" : {
79        "finder_id" : "gh_12345678",
80        "finder_video_id" : "UDFsdf24df34dD456Hdf34",
81        "finder_video_cover_image_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx"
82      }
83    },
84    "notify_config" : {
85      "notify_appid" : "wx4fd12345678"
86    },
87    "store_scope" : "NONE",
88    "sent_count_info" : {
89      "total_count" : 0,
90      "today_count" : 0
91    },
92    "state" : "SENDING",
93    "brand_id" : "120344"
94  },
95  "brand_id" : "120344"
96}
97

 

错误码

以下是本接口返回的错误码列表。详细错误码规则,请参考微信支付接口规则-错误码和错误提示

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

400

INVALID_REQUEST

传入参数不符合业务规则

请参考文档中对每个字段的要求以及组合要求,确认请求参数是否满足

400

ALREADY_EXISTS

商品券已存在

确认 out_request_no 字段是否重复使用,确保不同请求的 out_request_no 唯一

429

RATELIMIT_EXCEEDED

请求超过接口频率限制

请稍后使用原参数重试

 

 

元宝AI
反馈
目录
置顶