基础支付
JSAPI支付
APP支付
H5支付
Native支付
小程序支付
合单支付
付款码支付
经营能力
微信支付分(公共API)
微信支付分(免确认预授权模式)
微信支付分(需确认模式)
支付即服务
行业方案
智慧商圈
微信支付分停车服务
营销工具
代金券
商家券
委托营销
消费卡
支付有礼
小程序发券插件
H5发券
图片上传(营销专用)
现金红包
资金应用
商家转账到零钱
分账
风险合规
消费者投诉2.0
其他能力
清关报关
图片上传
视频上传
微信支付平台证书

发起商家转账API

最新更新时间:2022.04.24 版本说明


商户可以通过该接口同时向多个用户微信零钱进行转账操作。

注意:

• 商户上送敏感信息时使用微信支付平台公钥加密,证书序列号包含在请求HTTP头部的Wechatpay-Serial,详见接口规则

• 批量转账一旦发起后,不允许撤销,批次受理成功后开始执行转账。

• 转账批次单中涉及金额的字段单位为“分”。

• 当返回错误码为“SYSTEM_ERROR”时,请不要更换商家批次单号,一定要使用原商家批次单号重试,否则可能造成重复转账等资金风险。

• 微信支付视任何不同“商家批次单号(out_batch_no)”的请求为一个全新的批次。在未查询到明确的转账批次单处理结果之前,请勿修改商家批次单号重新提交!如有发生,商户应当自行承担因此产生的所有损失和责任。

• 请商户在自身的系统中合理设置转账频次并做好并发控制,防范错付风险。

• 因商户自身系统设置存在问题导致的资金损失,由商户自行承担。

接口说明

适用对象:直连商户

请求URL:https://api.mch.weixin.qq.com/v3/transfer/batches

请求方式:POST

接口限频: 单个商户 50QPS,如果超过频率限制,会报错FREQUENCY_LIMITED,请降低频率请求。

是否需要证书:


path指该参数为路径参数

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

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


请求参数

参数名 变量 类型[长度限制] 必填 描述
直连商户的appid appid string[1,32] body申请商户号的appid或商户号绑定的appid(企业号corpid即为此appid)
示例值:wxf636efh567hg4356
商家批次单号 out_batch_no string[1,32] body商户系统内部的商家批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一
示例值:plfk2020042013
批次名称 batch_name string[1,32] body该笔批量转账的名称
示例值:2019年1月深圳分部报销单
批次备注 batch_remark string[1,32] body转账说明,UTF8编码,最多允许32个字符
示例值:2019年1月深圳分部报销单
转账总金额 total_amount int body转账金额单位为“分”。转账总金额必须与批次内所有明细转账金额之和保持一致,否则无法发起转账操作
示例值:4000000
转账总笔数 total_num int body一个转账批次单最多发起三千笔转账。转账总笔数必须与批次内所有明细之和保持一致,否则无法发起转账操作
示例值:200
+转账明细列表 transfer_detail_list array body发起批量转账的明细列表,最多三千笔
参数名 变量 类型[长度限制] 必填 描述
商家明细单号 out_detail_no string[1,32] 商户系统内部区分转账批次单下不同转账明细单的唯一标识,要求此参数只能由数字、大小写字母组成
示例值:x23zy545Bd5436
转账金额 transfer_amount int 转账金额单位为分
示例值:200000
转账备注 transfer_remark string[1,32] 单条转账备注(微信用户会收到该备注),UTF8编码,最多允许32个字符
示例值:2020年4月报销
用户在直连商户应用下的用户标示 openid string[1,128] openid是微信用户在公众号appid下的唯一用户标识(appid不同,则获取到的openid就不同),可用于永久标记一个用户
获取openid
示例值:o-MYE42l80oelYMDE34nYD456Xoy
收款用户姓名 user_name string[1,1024] 1、明细转账金额 >= 2,000,收款用户姓名必填;
2、同一批次转账明细中,收款用户姓名字段需全部填写、或全部不填写;
3、 若传入收款用户姓名,微信支付会校验用户openID与姓名是否一致,并提供电子回单;
4、收款方姓名。采用标准RSA算法,公钥由微信侧提供
5、该字段需进行加密处理,加密方法详见敏感信息加密说明。(提醒:必须在HTTP头中上送Wechatpay-Serial)
6、商户需确保收集用户的姓名信息,以及向微信支付传输用户姓名和账号标识信息做一致性校验已合法征得用户授权
示例值:757b340b45ebef5467rter35gf464344v3542sdf4t6re4tb4f54ty45t4yyry45

请求示例


{
  "appid": "wxf636efh567hg4356",
  "out_batch_no": "plfk2020042013",
  "batch_name": "2019年1月深圳分部报销单",
  "batch_remark": "2019年1月深圳分部报销单",
  "total_amount": 4000000,
  "total_num": 200,
  "transfer_detail_list": [
    {
      "out_detail_no": "x23zy545Bd5436",
      "transfer_amount": 200000,
      "transfer_remark": "2020年4月报销",
      "openid": "o-MYE42l80oelYMDE34nYD456Xoy",
      "user_name": "757b340b45ebef5467rter35gf464344v3542sdf4t6re4tb4f54ty45t4yyry45"
    }
  ]
}

{
JAVA示例代码
}

返回参数

参数名 变量 类型[长度限制] 必填 描述
商家批次单号 out_batch_no string[1,32] 商户系统内部的商家批次单号
示例值:plfk2020042013
微信批次单号 batch_id string[1,64] 微信批次单号,微信商家转账系统返回的唯一标识
示例值:1030000071100999991182020050700019480001
批次创建时间 create_time string[1,32] 批次受理成功时返回,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss.sss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss.sss表示时分秒毫秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒
示例值:2015-05-20T13:29:35.120+08:00

返回示例


{
  "out_batch_no": "plfk2020042013",
  "batch_id": "1030000071100999991182020050700019480001",
  "create_time": "2015-05-20T13:29:35.120+08:00"
}
                    

http://2323weixin.qq.com
                    

错误码公共错误码

状态码 错误码 描述 解决方案
500 SYSTEM_ERROR 系统错误 请勿更换商家转账批次单号,请使用相同参数再次调用API。否则可能造成资金损失
401 APPID_MCHID_NOT_MATCH 商户号和appid没有绑定关系 商户号和appid没有绑定关系
400 PARAM_ERROR 参数错误 根据错误提示,传入正确参数
INVALID_REQUEST 请求参数符合参数格式,但不符合业务规则 根据错误提示,传入正确参数
403 NO_AUTH 商户信息不合法 登录商户平台核对,传入正确信息
NOT_ENOUGH 资金不足 商户账户资金不足,请充值后原单重试,请勿更换商家转账批次单号
ACCOUNTERROR 商户账户付款受限 可前往商户平台-违约记录获取解除功能限制指引
429 QUOTA_EXCEED 超出商户单日转账额度 超出商户单日转账额度,请核实产品设置是否准确
FREQUENCY_LIMITED 频率超限 该笔请求未受理,请降低频率后原单重试,请勿更换商家转账批次单号


技术咨询

文档反馈