---
url: "https://pay.weixin.qq.com/doc/v2/partner/4011985282.md"
title: "分账动账通知"
doc_id: 4011985282
---

>更新时间：2026.01.28

## 应用场景

 分账或分账回退成功后，微信会把相关变动结果发送给分账接收方（仅支持向分账接收方类型为 `MERCHANT_ID`（商户）的对象发送通知）。

 对后台通知交互时，如果微信收到应答不是成功或超时，微信认为通知失败，微信会通过一定的策略定期重新发起通知，尽可能提高通知的成功率，但微信不保证通知最终能成功。

通过V2接口发起的分账，其分账动账通知将按V3接口规则发送（V3接口规则详见「[基本规则](https://pay.weixin.qq.com/doc/v3/partner/4012081673.md)」）

推荐的做法是，当收到通知进行处理时，首先检查对应业务数据的状态，判断该通知是否已经处理过，如果没有处理过再进行处理，如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前，要采用数据锁进行并发控制，以避免函数重入造成的数据混乱。

特别提醒：商户系统对于分账动账通知的内容一定要做签名验证，防止数据泄露导致出现“假通知”，造成资金损失。

分账动账通知是以POST方法访问商户设置的通知url，通知的数据以JSON格式通过请求主体（BODY）传输。通知的数据包括了加密的分账动账结果详情。

注意：

同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

## 接口说明

| 请求Url | 该链接是通过商户平台【[分账动账通知设置页面](https://pay.weixin.qq.com/index.php/xphp/cincomsplit_authority_manager/cmn_return#/pages/cmn_return/cmn_return)】中配置的通知url，必须为https协议。如果链接无法访问，商户将无法接收到微信通知。必须为直接可访问的url，不能携带参数。示例：notify\_url：https://pay.weixin.qq.com/wxpay/123456789 |
| --- | --- |
| 是否需要证书 | 否 |
| 请求方式 | post |

## 请求参数

| 名称 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| :-- | :-- | :-- | :-- | :-- | :-- |
| 通知ID | id | 是 | string(32) | EV-2018022511223320873 | 通知的唯一ID |
| 通知创建时间 | create\_time | 是 | string(32) | 2018-06-08T10:34:56+08:00 | 通知创建的时间，Rfc3339标准 |
| 通知类型 | event\_type | 是 | string(32) | TRANSACTION.SUCCESS | 通知的类型：<br>TRANSACTION.SUCCESS：分账<br>TRANSACTION.SUCCESS：分账回退 |
| 通知简要说明 | summary | 是 | string(16) | 分账 | 通知简要说明 |
| 通知数据类型 | resource\_type | 是 | string(32) | encrypt-resource | 通知的资源数据类型，分账动账通知为encrypt-resource |
| 通知数据 | resource | 是 | object | 内容见下方示例 | 通知资源数据<br>点击下行的>展开字段详情 |
| 加密算法类型 | resource.algorithm | 是 | string(32) | AEAD\_AES\_256\_GCM | 对分账结果数据进行加密的加密算法，目前只支持AEAD\_AES\_256\_GCM |
| 加密前的对象类型 | resource.original_type | 是 | string(32) | profitsharing | 加密前的对象类型，分账动账通知的类型为profitsharing |
| 数据密文 | resource.ciphertext | 是 | string(1048576) | sadsadsadsad | Base64编码后的分账结果数据密文 |
| 附加数据 | resource.associated_data | 否 | string(16) | fdasfwqewlkja484w | 附加数据 |
| 随机串 | resource.nonce | 是 | string(32) | fdasfwqewl | 加密使用的随机串 |

下面详细描述对通知数据进行解密的流程

 从商户平台上获取商户的通知密钥，记为key

 针对resource.algorithm中描述的算法（目前为AEAD\_AES\_256\_GCM），取得对应的参数nonce和associated\_data。

 使用key、nonce和associated\_data，对数据密文resource.ciphertext进行解密，得到JSON形式的资源对象 注：AEAD\_AES\_256\_GCM算法的接口细节，请参考[rfc5116](https://datatracker.ietf.org/doc/html/rfc5116)。微信支付使用的密钥key长度为32个字节，随机串nonce长度12个字节，associated\_data长度小于16个字节并可能为空。

解密后的resource对象列表

| 名称 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| :-- | :-- | :-- | :-- | :-- | :-- |
| 服务商商户号 | sp\_mchid | 是 | string(32) | 1900000100 | 服务商模式分账发起商户 |
| 子商户号 | sub\_mchid | 是 | string(32) | 1900000100 | 服务商模式分账出资商户 |
| 微信订单号 | transaction\_id | 是 | string(32) | 4200000000000000000000000000 | 微信支付订单号 |
| 微信分账/回退单号 | order\_id | 是 | string(64) | 1217752501201407033233368018 | 微信分账/回退单号 |
| 商户分账/回退单号 | out\_order\_no | 是 | string(64) | P20150806125346 | 分账方系统内部的分账/回退单号 |
| 分账接收方 | receiver | 是 | object | 内容见下方示例 | 分账接收方对象<br>点击行前的+展开字段详情 |
| 分账接收方类型 | receiver.type | 是 | string(32) | MERCHANT\_ID | MERCHANT\_ID：商户号（mch\_id或者sub\_mch\_id） |
| 分账接收方账号 | receiver.account | 是 | string(64) | 1900000100 | 申请本功能商户号 |
| 分账动账金额 | receiver.amount | 是 | int | 888 | 分账动账金额，单位为分，只能为整数 |
| 分账/回退描述 | receiver.description | 是 | string(80) | 运费/交易分账/及时奖励 | 分账/回退描述 |
| 成功时间 | receiver.success_time | 是 | string(32) | 2018-06-08T10:34:56+08:00 | 成功时间，Rfc3339标准 |

举例如下：

```
{
    "mchid": "",
    "sp_mchid": "1900000100",
    "sub_mchid": "1900000100",
    "transaction_id": "4200000000000000000000000000",
    "order_id": "1217752501201407033233368018",
    "out_order_no": "P20150806125346",
    "receiver": {
        "type": "MERCHANT_ID",
        "account": "1900000100",
        "amount": 888,
        "description": "运费/交易分账/及时奖励",
    },
   "success_time": "2018-06-08T10:34:56+08:00",
}
```

## 返回结果

| 名称 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 返回状态码 | code | 是 | string(32) | SUCCESS | 错误码，SUCCESS为接收成功，其他错误码为失败 |
| 返回信息 | message | 否 | string(256) | 系统错误 | 返回信息，如非空，为错误原因 |

注意：

分账动账通知http应答码为200且返回状态码为SUCCESS才会当做商户接收成功，否则会重试。重试过多会导致微信支付端积压过多通知而堵塞，影响其他正常通知。

举例：

```
{
    "code": "SUCCESS"
}
```