发起批量转账

更新时间:2025.01.09

服务商可以通过该接口,批量向用户零钱进行转账操作。请求消息中应包含特约商户号、特约商户授权的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/payroll-card/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】或【微信支付平台证书序列号】请求参数中的敏感字段,需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥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时 需要填写


employment_type  选填 string

【用工类型】微工卡服务仅支持用于与商户有用工关系的用户,需明确用工类型;参考值:长期用工:LONG_TERM_EMPLOYMENT,短期用工:SHORT_TERM_EMPLOYMENT,合作关系:COOPERATION_EMPLOYMENT

可选取值:

  • LONG_TERM_EMPLOYMENT: 长期用工:有劳务合同关系的长期用工

  • SHORT_TERM_EMPLOYMENT: 短期用工:有劳务合同关系的短期用工

  • COOPERATION_EMPLOYMENT: 合作关系:有业务服务、合作关系的人员


employment_scene  选填 string

【用工场景】用工场景;参考值:LOGISTICS:物流;MANUFACTURING:制造业;HOTEL:酒店;CATERING:餐饮业;EVENT:活动促销;RETAIL:零售;OTHERS:其他

可选取值:

  • LOGISTICS: 物流

  • MANUFACTURING: 制造业

  • HOTEL: 酒店

  • CATERING: 餐饮业

  • EVENT: 活动促销

  • RETAIL: 零售

  • OTHERS: 其他

请求示例

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/payroll-card/transfer-batches \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Wechatpay-Serial: 5157F09EFDC096DE15EBE81A47057A7232F1B8E1"  \
6  -H "Content-Type: application/json" \
7  -d '{
8    "sub_mchid" : "1900000109",
9    "sub_appid" : "wxf636efh567hg4356",
10    "authorization_type" : "INFORMATION_AUTHORIZATION_TYPE",
11    "out_batch_no" : "plfk2020042013",
12    "batch_name" : "2019年1月深圳分部报销单",
13    "batch_remark" : "2019年1月深圳分部报销单",
14    "total_amount" : 4000000,
15    "total_num" : 200,
16    "transfer_detail_list" : [
17      {
18        "out_detail_no" : "x23zy545Bd5436",
19        "transfer_amount" : 200000,
20        "transfer_remark" : "2020年4月报销",
21        "openid" : "o-MYE42l80oelYMDE34nYD456Xoy",
22        "user_name" : "757b340b45ebef5467rter35gf464344v3542sdf4t6re4tb4f54ty45t4yyry45"
23      }
24    ],
25    "sp_appid" : "wxf636efh567hg4388",
26    "employment_type" : "LONG_TERM_EMPLOYMENT",
27    "employment_scene" : "LOGISTICS"
28  }'
29

应答参数

200 OK

out_batch_no  必填 string(32)

【商家批次单号】商户系统内部的商家批次单号,在商户系统内部唯一


batch_id  必填 string(64)

【微信支付批次单号】微信支付批次单号,微信商家转账系统返回的唯一标识


create_time  必填 string(32)

【批次创建时间】批次受理成功时返回,按照使用rfc3339所定义的格式,格式为yyyy-MM-DDThh:mm:ss+TIMEZONE

应答示例

200 OK

1{
2  "out_batch_no" : "plfk2020042013",
3  "batch_id" : "1030000071100999991182020050700019480001",
4  "create_time" : "2015-05-20T13:29:35+08:00"
5}
6

 

错误码

公共错误码

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

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

400

INVALID_REQUEST

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

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

业务错误码

状态码

错误码

描述

解决方案

500

SYSTEM_ERROR

系统错误

请勿更换商家转账批次单号,请使用相同参数再次调用API。否则可能造成资金损失

403

NO_AUTH

商户信息不合法

登录商户平台核对,传入正确信息

403

ACCOUNT_ERROR

商户账户付款受限

可前往商户平台-违约记录获取解除管控状态指引

400

INVALID_REQUEST

请求参数符合参数格式,但不符合业务规则

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

401

APPID_MCHID_NOT_MATCH

商户号和AppID没有绑定关系

商户号和AppID没有绑定关系

403

NOT_ENOUGH

资金不足

商户账户资金不足,请充值后原单重试,请勿更换商家转账批次单号

429

QUOTA_EXCEED

超出商户单日转账额度

超出商户单日转账额度,请核实产品设置是否准确

429

FREQUENCY_LIMITED

频率超限

该笔请求未受理,请降低频率后原单重试,请勿更换商家转账批次单号

403

NO_AUTH

未开通产品权限

请确认是否开通转账权限

 

 

反馈
咨询
目录
置顶