微信支付明细单号查询明细单
更新时间:2024.11.18微信支付明细单号查单接口。转账处理后延迟一段时间(异步进行转账),服务商可以通过该接口查询单笔转账明细单。返回消息中包含微信支付明细单号、明细状态、转账金额、失败原因、收款用户姓名、用户OpenID等信息。
接口限频:
单个服务商(查询转账明细单)50QPS,如果超过频率限制,会报错FREQUENCY_LIMITED,请降低频率请求。
注意事项:
API只支持查询最近30天内的转账明细单,30天之前的转账明细单请登录银行服务商平台查询。
转账明细单中涉及金额的字段单位为“分”。
如果查询单号对应的数据不存在,那么数据不存在的原因可能是:(1)转账还在处理中;(2)转账批次单受理失败或还未开始处理导致转账明细单没有落地。在上述情况下,服务商首先需要检查该微信支付明细单号是否确实是自己发起,以及是否是该批次下的,如果服务商确认是自己发起且是该批次下的,则请服务商不要直接当做转账失败处理,请服务商隔几分钟再尝试查询(请勿转账和查询并发处理)。如果服务商误把还在转账处理中的明细单直接当转账失败处理,服务商应当自行承担因此产生的所有损失和责任。
如果遇到回包返回新的错误码,请务必不要换单重试,请联系客服确认转账情况。如果有新的错误码,会更新到此API文档中。
错误码描述字段message只供人工定位问题时做参考,系统实现时请不要依赖这个字段来做自动化处理。
接口说明
支持商户:【从业机构(银行)】
请求方式:【GET】/v3/bank-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id}
请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点
【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看
请求参数
Header HTTP头参数
Authorization 必填 string
请参考签名认证生成认证信息
Accept 必填 string
请设置为application/json
path 路径参数
batch_id 必填 string(64)
【微信支付批次单号】微信支付批次单号,微信银行转账系统返回的唯一标识
detail_id 必填 string(64)
【微信明细单号】微信支付系统内部区分转账批次单下不同转账明细单的唯一标识
请求示例
GET
应答参数
|
bank_sp_mchid 必填 string(32)
【银行服务商号】微信支付分配的银行服务商号
platform_mchid 必填 string(32)
【服务平台商户号】提供信息服务、财税服务等平台的商户号。
specialized_payment_mchid 必填 string(32)
【付款企业商户号】承载付款场景、付款业务的商户号
sponsor_mchid 必填 string(32)
【实际出资商户号】实际出资方商户号,可在付款企业商户号、服务平台商户号中二选一
user_authorized_mchid 必填 string(32)
【用户授权商户号】用户信息授权方商户号,可在付款企业商户号、服务平台商户号中二选一
user_authorized_appid 必填 string(32)
【用户授权AppID】用户信息授权方的AppID,需和用户授权商户号完成MA绑定
out_batch_no 必填 string(32)
【银行批次单号】银行服务商系统内部的银行批次单号,在银行服务商系统内部唯一
batch_id 必填 string(64)
【微信支付批次单号】微信支付批次单号,微信银行转账系统返回的唯一标识
transfer_scene 必填 string
【转账场景】银行服务商的转账场景
可选取值:
ORDINARY_TRANSFER
: 普通转账(默认)
PAYROLL_CARD_TRANSFER
: 给使用微信务工卡的用户进行转账
out_detail_no 必填 string(32)
【银行明细单号】银行服务商系统内部区分转账批次单下不同转账明细单的唯一标识
detail_id 必填 string(64)
【微信支付明细单号】微信支付系统内部区分转账批次单下不同转账明细单的唯一标识
openid 必填 string(64)
【收款用户OpenID】收款用户OpenID。如果转账特约银行服务商授权类型是INFORMATION_AUTHORIZATION_TYPE,对应的是特约银行服务商公众号下的OpenID;如果转账特约银行服务商授权类型是FUND_AUTHORIZATION_TYPE,对应的是服务商银行服务商公众号下的OpenID。
username 必填 string(1024)
【收款用户姓名】收款方姓名。采用标准RSA算法,公钥由微信侧提供
transfer_amount 必填 integer
【转账金额】转账金额单位为“分”
transfer_remark 必填 string(32)
【转账备注】单条转账备注(微信用户会收到该备注),UTF8编码,最多允许32个字符
detail_state 必填 string(32)
【明细状态】PROCESSING:转账中。正在处理中,转账结果尚未明确
SUCCESS:转账成功
FAIL:转账失败。需要确认失败原因后,再决定是否重新发起对该笔明细单的转账(并非整个转账批次单)
REFUND: 退票
fail_reason 选填 string
【明细失败原因】如果转账失败则有失败原因
可选取值:
ACCOUNT_FROZEN
: 该用户账户被冻结
REAL_NAME_CHECK_FAIL
: 收款人未实名认证,需要用户完成微信实名认证
NAME_NOT_CORRECT
: 收款人姓名校验不通过,请核实信息
OPENID_INVALID
: OpenID格式错误或者不属于银行公众账号
TRANSFER_QUOTA_EXCEED
: 超过用户单笔收款额度,核实产品设置是否准确
DAY_RECEIVED_QUOTA_EXCEED
: 超过用户单日收款额度,核实产品设置是否准确
MONTH_RECEIVED_QUOTA_EXCEED
: 超过用户单月收款额度,核实产品设置是否准确
DAY_RECEIVED_COUNT_EXCEED
: 超过用户单日收款次数,核实产品设置是否准确
PRODUCT_AUTH_CHECK_FAIL
: 未开通该权限或权限被冻结,请核实产品权限状态
OVERDUE_CLOSE
: 超过系统重试期,系统自动关闭
ID_CARD_NOT_CORRECT
: 收款人身份证校验不通过,请核实信息
ACCOUNT_NOT_EXIST
: 该用户账户不存在
TRANSFER_RISK
: 该笔转账可能存在风险,已被微信拦截
PAYROLL_CARD_ALREADY_LOGOUT
: 该用户的务工卡已经注销
PAYROLL_CARD_ALREADY_FROZEN
: 该用户的务工卡已经被冻结
PAYROLL_CARD_UNAUTHORIZED
: 该用户的务工卡未授权该银行服务商
PAYROLL_CARD_USER_NOT_OPEN
: 该用户没有开通务工卡
PAYROLL_CARD_NAME_CARD_NOT_MATCH
: 务工卡实名和用户实名不一致
PAYROLL_CARD_ID_CARD_NOT_MATCH
: 务工卡身份证和用户身份证不一致
PAYROLL_CARD_BANKCARD_UNBUNDLING
: 务工卡所选银行卡已解绑
BANK_CARD_COLLECTIONS_ABOVE_QUOTA
: 银行卡属二/三类卡,达到收款限额无法入账
BANK_CARD_ACCOUNT_ABNORMAL
: 银行卡已被销户、冻结、作废、挂失等致无法入账
BANK_CARD_STATUS_ABNORMAL
: 银行卡状态异常,无法入账
BANK_CARD_BANK_INFO_WRONG
: 登记的银行名称或分支行信息有误
BANK_CARD_CARD_INFO_WRONG
: 银行卡户名或卡号有误
OTHER_FAIL_REASON_TYPE
: 其它失败原因
REALNAME_ACCOUNT_RECEIVED_QUOTA_EXCEED
: 请引导用户在微信支付查看详情
RECEIVE_ACCOUNT_NOT_PERMMIT
: 请在产品设置中调整,添加该用户为收款人
PAYEE_ACCOUNT_ABNORMAL
: 请联系用户完善其在微信支付的身份信息以继续收款
PAYER_ACCOUNT_ABNORMAL
: 可前往商户平台获取解除功能限制指引
TRANSFER_REMARK_SET_FAIL
: 转账备注设置失败,请调整后重新再试
initiate_time 选填 string(32)
【转账发起时间】转账发起的时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
update_time 必填 string(32)
【明细更新时间】明细最后一次状态变更的时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
account_type 必填 string
【收款账户类型】WECHATPAY_ACCOUNT表示微信零钱,BANK_ACCOUNT表示银行卡账户
可选取值:
WECHATPAY_ACCOUNT
: 微信支付零钱账户
BANK_ACCOUNT
: 银行卡账户
bank_name 选填 string(64)
【银行名称】务工卡场景下转账到银行卡时输出该字段
bank_card_number_tail 选填 string(10)
【银行卡尾号】务工卡场景下转账到银行卡时输出该字段
应答示例
200 OK
错误码
公共错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
业务错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
404 | NOT_FOUND | 记录不存在 | 查询的转账明细单不存在 |
429 | FREQUENCY_LIMITED | 频率超限 | 请求量不要超过接口调用频率限制 |
500 | SYSTEM_ERROR | 系统错误 | 5开头的状态码都为系统问题,请使用相同参数稍后重新调用 |