微信支付明细单号查询明细单
更新时间:2024.12.27服务商可以通过该接口查询单笔转账明细单。
注意
API只支持查询最近30天内的转账明细单,30天之前的转账明细单请登录商户平台查询。
转账明细单只会在批次单完成的情况下返回,如果需要在批次处理过程中查询转账明细单,请通过转账明细单查询接口来查询。
转账明细单中涉及金额的字段单位为“分”。
如果查询单号对应的数据不存在,那么数据不存在的原因可能是:
(1)转账还在处理中;
(2)转账批次单受理失败或还未开始处理导致转账明细单没有落地。在上述情况下,服务商首先需要检查该微信支付明细单号是否确实是自己发起,以及是否是该批次下的,如果服务商确认是自己发起且是该批次下的,则请服务商不要直接当做转账失败处理,请服务商隔几分钟再尝试查询(请勿转账和查询并发处理)。如果服务商误把还在转账处理中的明细单直接当转账失败处理,服务商应当自行承担因此产生的所有损失和责任。如果遇到回包返回新的错误码,请务必不要换单重试,请联系客服确认转账情况。如果有新的错误码,会更新到此API文档中。
错误码描述字段message只供人工定位问题时做参考,系统实现时请不要依赖这个字段来做自动化处理。
# 接口说明
支持商户: 【普通服务商】
请求URL: /v3/partner-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id}
请求方式: GET
接口限频: 单个服务商 50QPS,如果超过频率限制,会报错FREQUENCY_LIMITED,请降低频率请求。
# 请求参数
- batch_id 必填【微信支付批次单号】 微信支付批次单号,微信商家转账系统返回的唯一标识。
- detail_id 必填【微信明细单号】 微信支付系统内部区分转账批次单下不同转账明细单的唯一标识
# 返回参数
- sp_mchid 必填【服务商商户号】 微信服务商商户的商户号,由微信支付生成并下发
- out_batch_no 必填【商家批次单号】 商户系统内部的商家批次单号,在商户系统内部唯一
- batch_id 必填【微信支付批次单号】 微信支付批次单号,微信商家转账系统返回的唯一标识
- appid 选填**【商户的AppID】**微信分配的特约商户公众账号ID。特约商户授权类型为INFORMATION_AUTHORIZATION_TYPE和INFORMATION_AND_FUND_AUTHORIZATION_TYPE时对应的是特约商户的AppID,特约商户授权类型为FUND_AUTHORIZATION_TYPE时为服务商的AppID
- out_detail_no 必填【商家明细单号】 商户系统内部区分转账批次单下不同转账明细单的唯一标识
- detail_id 必填【微信支付明细单号】 微信支付明细单号
- detail_status 必填【明细状态】 枚举值:INIT:初始态. 系统转账校验中, 校验成功会进入转账流程(PROCESSING), 校验失败会关闭明细单(FAIL)PROCESSING:转账中。正在处理中,转账结果尚未明确SUCCESS:转账成功FAIL:转账失败。需要确认失败原因后,再决定是否重新发起对该笔明细单的转账(并非整个转账批次单)REFUND:退票
- batch_name 必填【批次名称】 该笔批量转账的名称
- batch_remark 必填【批次备注】 转账说明,UTF8编码,最多允许32个字符
- close_reason 选填【批次关闭原因】 如果批次单状态为“CLOSED”(已关闭),则有关闭原因:MERCHANT_REVOCATION:商户主动撤销 OVERDUE_CLOSE:系统超时关闭
- total_amount 必填【转账金额】 转账金额单位为“分”
- transfer_remark 必填【转账备注】 单条转账备注(微信用户会收到该备注),UTF8编码,最多允许32个字符
- fail_reason 选填【明细失败原因】 如果转账失败则有失败原因: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:该用户没有开通微工卡REALNAME_ACCOUNT_RECEIVED_QUOTA_EXCEED:用户账户收款受限,请引导用户在微信支付查看详情BANK_CARD_COLLECTIONS_ABOVE_QUOTA:银行卡收款超过限额,银行卡属二/三类卡,达到收款限额无法入账BANK_CARD_ACCOUNT_ABNORMAL:银行卡账户异常,银行卡已被销户、冻结、作废、挂失等致无法入账BANK_CARD_STATUS_ABNORMAL:银行卡状态异常,银行卡状态异常,无法入账BANK_CARD_BANK_INFO_WRONG:银行卡银行信息错误,登记的银行名称或分支行信息有误
- openid 必填【收款用户OpenID】 收款用户OpenID。如果转账特约商户授权类型是INFORMATION_AUTHORIZATION_TYPE,对应的是特约商户公众号下的OpenID;如果转账特约商户授权类型是FUND_AUTHORIZATION_TYPE,对应的是服务商商户公众号下的OpenID。
- username 必填【收款用户姓名】 1、收款方姓名。采用标准RSA算法,公钥由微信侧提供2、该字段需进行加密处理,加密方法详见敏感信息加密说明。(提醒:必须在HTTP头中上送Wechatpay-Serial)
- initiate_time 必填【转账发起时间】 转账发起的时间,遵循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秒 - update_time 必填【明细更新时间】 明细最后一次状态变更的时间,遵循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秒 - account_type 选填【收款账户类型】 收款账户类型包括:WECHATPAY ACCOUNT: 微信零钱BANK ACCOUNT: 银行卡
- bank_name 选填【银行名称】 转账到银行卡时输出该字段
- bank_card_number_tail 选填【银行卡尾号】 转账到银行卡时输出该字段
请求示例
1https://api.mch.weixin.qq.com/v3/partner-transfer/batches/batch-id/1030000071100999991182020050700019480001/details/detail-id/1040000071100999991182020050700019500100
返回示例
1{2 "sp_mchid": "1900001109",3 "out_batch_no": "plfk2020042013",4 "batch_id": "1030000071100999991182020050700019480001",5 "appid": "wxf636efh567hg4356",6 "out_detail_no": "x23zy545Bd5436",7 "detail_id": "1040000071100999991182020050700019500100",8 "detail_status": "SUCCESS",9 "transfer_amount": 200000,10 "transfer_remark": "2020年4月报销",11 "fail_reason": "ACCOUNT_FROZEN",12 "openid": "o-MYE42l80oelYMDE34nYD456Xoy",13 "username": "757b340b45ebef5467rter35gf464344v3542sdf4t6re4tb4f54ty45t4yyry45",14 "initiate_time": "2015-05-20T13:29:35.120+08:00",15 "update_time": "2015-05-20T13:29:35.120+08:00"16}
# 公共错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
# 业务错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
500 | SYSTEM_ERROR | 系统错误 | 5开头的状态码都为系统问题,请使用相同参数稍后重新调用 |
404 | NOT_FOUND | 记录不存在 | 查询的转账明细单不存在 |
429 | FREQUENCY_LIMITED | 频率超限 | 请求量不要超过接口调用频率限制 |