发起批量转账
更新时间:2024.11.28服务商可以通过该接口,批量向用户零钱进行转账操作。请求消息中应包含特约商户号、特约商户授权的appid、授权类型、商家批次单号、转账名称、转账总金额、转账总笔数、转账openid、收款用户姓名、服务商appid、转账用途等信息 1、当特约商户授权类型为INFORMATION_AUTHORIZATION_TYPE(特约商户信息授权),需要填特约商户的公众号appid,特约商户公众号appid的用户的openid 2、当特约商户授权类型为FUND_AUTHORIZATION_TYPE(特约商户资金授权),需要填服务商的公众号appid,服务商公众号appid的用户的openid
接口限频: 单个服务商(发起批量转账接口)50QPS,如果超过频率限制,会报错FREQUENCY_LIMITED,请降低频率请求。
注意事项:
因服务商自身系统设置存在问题导致的资金损失,由服务商自行承担。
批量转账一旦发起后,不允许撤销。
转账批次单和明细单中涉及金额的字段单位为“分”。
微信支付视任何不同“发起的服务商商户号+商家批次单号(out_batch_no)”的请求为一个全新的批次。在未查询到明确的转账批次单处理结果之前,请勿修改商家批次单号重新提交!如有发生,服务商应当自行承担因此产生的所有损失和责任。
当返回错误时,请不要更换商家批次单号,一定要使用原商家批次单号重试,否则可能造成重复转账等资金风险。
如果遇到回包返回新的错误码,请务必不要换单重试,请联系客服确认转账情况。如果有新的错误码,会更新到此API文档中。
错误码描述字段message只供人工定位问题时做参考,系统实现时请不要依赖这个字段来做自动化处理。
请服务商在自身的系统中合理设置转账频次并做好并发控制,防范错付风险。
接口说明
支持商户:【普通服务商】
请求方式:【POST】/v3/partner-transfer/batches
请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点
【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看
请求参数
Header HTTP头参数
Authorization 必填 string
请参考签名认证生成认证信息
Accept 必填 string
请设置为application/json
Content-Type 必填 string
请设置为application/json
Wechatpay-Serial 必填 string
请求参数中的敏感字段,需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引
body 包体参数
sub_mchid 必填 string(32)
【特约商户号】特约商户号
sub_appid 选填 string(32)
【特约商户appid】微信分配的特约商户公众账号ID,特约商户授权类型为INFORMATION_AUTHORIZATION_TYPE和INFORMATION_AND_FUND_AUTHORIZATION_TYPE时 需要填写
authorization_type 必填 string
【特约商户授权类型】特约商户授权类型
可选取值:
INFORMATION_AUTHORIZATION_TYPE
: 表示使用特约商户用户信息,出款方服务商
FUND_AUTHORIZATION_TYPE
: 表示使用特约商户的资金,出款方为特约商户,用户信息为服务商appid对应的openid
INFORMATION_AND_FUND_AUTHORIZATION_TYPE
: 表示使用特约商户的用户信息且出款方为特约商户
out_batch_no 必填 string(32)
【商家批次单号】商户系统内部的商家批次单号,在商户系统内部唯一
batch_name 必填 string(32)
【批次名称】该笔批量转账的名称
batch_remark 必填 string(32)
【批次备注】转账说明,UTF8编码,最多允许32个字符
total_amount 必填 integer
【转账总金额】转账金额单位为“分”。转账总金额必须与批次内所有明细转账金额之和保持一致,否则无法发起转账操作
total_num 必填 integer
【转账总笔数】一个转账批次单最多发起三千笔转账。转账总笔数必须与批次内所有明细之和保持一致,否则无法发起转账操作
transfer_detail_list 必填 array[TransferDetailInput]
【转账明细列表】发起批量转账的明细列表,最多三千笔
属性 | |
sp_appid 选填 string(32)
【服务商的appid】微信分配的服务商商户公众账号ID,特约商户授权类型为FUND_AUTHORIZATION_TYPE时 需要填写
transfer_purpose 选填 string
【批量转账用途】批量转账用途
可选取值:
GOODSPAYMENT
: 给用户支付货物采购资金
COMMISSION
: 给用户支付业务推广佣金
REFUND
: 给用户支付交易退款
REIMBURSEMENT
: 企业给员工支付差旅等报销资金
FREIGHT
: 给司机支付运输费用
OTHERS
: 其他
transfer_scene 选填 string
【转账场景】商户的转账场景
可选取值:
ORDINARY_TRANSFER
: 普通转账(默认)
PAYROLL_CARD_TRANSFER
: 给使用微信务工卡的用户进行转账
请求示例
POST
应答参数
|
out_batch_no 必填 string(32)
【商家批次单号】商户系统内部的商家批次单号,在商户系统内部唯一
batch_id 必填 string(64)
【微信支付批次单号】微信支付批次单号,微信商家转账系统返回的唯一标识
create_time 必填 string(32)
【批次创建时间】批次受理成功时返回,按照使用rfc3339所定义的格式,格式为YYYY-MM-DDThh:mm:ss+TIMEZONE
应答示例
200 OK
错误码
公共错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
业务错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
500 | SYSTEM_ERROR | 系统错误 | 请勿更换商家转账批次单号,请使用相同参数再次调用API。否则可能造成资金损失 |
403 | NO_AUTH | 商户信息不合法 | 登录商户平台核对,传入正确信息 |
400 | INVALID_REQUEST | 请求参数符合参数格式,但不符合业务规则 | 根据错误提示,传入正确参数 |
401 | APPID_MCHID_NOT_MATCH | 商户号和AppID没有绑定关系 | 商户号和AppID没有绑定关系 |
403 | NOT_ENOUGH | 资金不足 | 商户账户资金不足,请充值后原单重试,请勿更换商家转账批次单号 |
403 | ACCOUNT_ERROR | 商户账户付款受限 | 可前往商户平台-违约记录获取解除功能限制指引 |
429 | QUOTA_EXCEED | 超出商户单日转账额度 | 超出商户单日转账额度,请核实产品设置是否准确 |
429 | FREQUENCY_LIMITED | 频率超限 | 该笔请求未受理,请降低频率后原单重试,请勿更换商家转账批次单号 |