---
url: "https://pay.weixin.qq.com/doc/v2/merchant/4011987402.md"
title: "预扣费通知API"
doc_id: 4011987402
---

>更新时间：2024.12.31

商户进行委托代扣扣费前需要在可通知时间段内调用「预扣费通知」的接口为用户发送扣费提醒，并设定预计扣费金额，经过扣费等待期后，在可扣费期内可发起扣费，扣款金额不能高于预计扣费金额，扣费失败可主动发起重试扣费（重试次数由其他规则限制），直到扣费成功，或者可扣费期结束。

注意：

一个扣费周期内只能扣款成功一次，即无论可扣费期是否结束，只要周期内扣款成功一次，该扣费周期则结束。

能力说明

- 扣费等待期：商户调用「预扣费通知」接口成功当日及第二个自然日。


- 扣费持续天数：默认为7天；在扣费等待期后，能够进行扣款的自然日天数；发完通知后，商家可在第3-9天发起扣款。


- 可扣费期：经过扣费等待期后的N个自然日，N为扣费持续天数。


- 扣费周期：商户调用「预扣费通知」接口成功后，到扣款成功或可扣费日期结束。


- 可通知时间段：为了不打扰用户，商户只能在北京时间每天 7:00～22:00调用「预扣费通知」


扣费规则

假如扣费持续天数为1， 通知下发当天为“扣费等待期”，商户不允许扣费；

第二天为“扣费等待期”，商户不允许扣费；

第三天为“可扣费期”，在可扣费期内可以发起扣费。

如：若需要在3号扣费，则需要在1号将通知下发给用户，2号为用户的扣费等待期，用户可以选择等待扣费或关闭扣费服务，3号商户可正常发起扣费。



## 接口说明

适用对象：直连商户

请求URL： https://api.mch.weixin.qq.com/v3/papay/contracts/{contract\_id}/notify

请求方式： POST

数据格式： JSON

接口规则：[V3接口规则概述](https://pay.weixin.qq.com/doc/v3/merchant/4012081606.md)

接口请求方： 具有委托代扣扣费权限，且另行开通了预扣费通知权限的直连商户

path指该参数为路径参数

query指该参数需在请求URL传参

body指该参数需在请求JSON传参

## 请求参数

| 参数名 | 变量 | 类型\[长度限制\] | 必填 | 描述 |
| :-- | :-- | :-- | :-- | :-- |
| 委托代扣协议id | contract\_id | string\[1,32\] | 是 | path 签约成功后，微信返回的委托代扣协议id。<br>示例值：123124412412423431 |
| 直连商户号 | mchid | string\[1,32\] | 是 | body 填写微信支付分配的商户号。<br>示例值：1230000109 |
| 应用ID | appid | string\[1,32\] | 是 | body 直连商户的APPID。<br>示例值：wxd678efh567hg6787 |
| 扣费持续时间 | deduct\_duration | object | 否 | body 在扣费等待期后，能够进行扣款的时间。注：扣费等待期是指商户调用本接口成功当日及第二个自然日。 |
| 扣费持续时间数 | deduct_duration.count | integer | 是 | 在扣费等待期后，能够进行扣款的时间数，目前只支持按天计算，范围为1到3天。注：扣费等待期是指商户调用本接口成功当日及第二个自然日。<br>示例值：1 |
| 单位 | deduct_duration.unit | string | 否 | 扣费持续时间，默认为"DAY"（天），目前只支持"DAY"。<br>可选取值：<br>DAY: 扣费持续时间单位-天<br>示例值：DAY |
| 预计扣费金额信息 | estimated\_amount | object | 是 | body 预计扣款的金额信息。 |
| 预计扣费金额 | estimated_amount.amount | int | 是 | 预计扣款总金额，单位为分，只能为整数。<br>示例值：1 |
| 预计扣费货币类型 | estimated_amount.currency | string\[1,16\] | 否 | 符合ISO 4217标准的三位字母代码，默认为“CNY”，目前只支持“CNY”。<br>CNY：人民币<br>示例值：CNY |

## 请求示例：

JSON

```

{
  "mchid" : "1230000109",
  "appid" : "wxd678efh567hg6787",
  "deduct_duration" : {
      "count" : 1,
      "unit" : "DAY"
    },
  "estimated_amount" : {
    "amount" : 1,
    "currency" : "CNY"
  }
}

```

## 返回参数

无参数返回

## 返回示例：

正常示例

```

无数据（Http状态码为204）

```

## 错误码

[公共错误码](https://wechatpay-api.gitbook.io/wechatpay-api-v3/wei-xin-zhi-fu-api-v3-jie-kou-gui-fan#http-zhuang-tai-ma)

| 错误码 | 描述 | 解决方案 |
| --- | --- | --- |
| SYSTEMERROR | 接口返回错误 | 系统异常，请使用相同参数重新调用接口 |
| CONTRACT\_NOT\_EXIST | 签约协议不存在 | 请检查签约协议号是否正确,是否已解约 |
| PARAM\_ERROR | 参数错误 | 请根据接口返回的详细信息检查您的程序 |
| APPID\_MCHID\_NOT\_MATCH | appid和mchid不匹配 | 请确认appid和mchid是否匹配 |
| INVALID\_REQUEST | 无效请求 | 请根据接口返回的详细信息检查您的程序 |
| RULELIMIT | 该请求存在风险 | 请检查当前预计扣费金额，已扣款次数，确认请求是否存在风险。 |
| RESOURCE\_ALREADY\_EXISTS | 资源已经存在 | 已经成功发送通知，无需重复调用。 |