这些前缀是什么意思?
完整的 Payout 码表
A——商户与请求
Payout 没有
A0014。 金额、币种和收款人账户都与原始请求一致的重复创建,会返回
普通的成功码并附带原始订单的数据,而不是一个独立的幂等码。请通过比较返回的
payoutOrderId 与你已持有的那个来检测,而不是寻找特殊的码。
B——收款人
这里的”User”指的是收款人,不是你平台的用户,也不是你。 这是 Payout 码集合中最常被
误读的部分。
B0001 或 B0003 是关于你指定的收款账户的消息——一个已关闭的钱包、一个
错误的账号、一个从未存在过的账户——修复点在收款人的信息或收款人本身,永远不在你的商户配置。
B0004 是姓名或账户不匹配浮现的地方;匹配规则见
Payout 请求字段指南。
C——Waffo 与 Payout 路由
C0002 因为 C 前缀和 500 看起来像系统错误,但它是配置问题:没有 Payout 协议匹配你的
请求,或者匹配的安排没有定义费用。你在请求体中改任何东西都无法修复它——检查 Portal 中的
Service → Payout 是否有覆盖该国家、货币对和方式的生效协议,如果有但 Payout 仍然失败,
请向 Waffo 反馈。
D 与 E
哪些码可以原样重试,哪些需要修改请求?
提交时被归类为可重试的恰好有四个码:
其他所有码都意味着 Payout 原样不变不会成功。对这四个码用相同的
payoutRequestId
重试——这正是幂等性的用途,也是避免创建第二笔 Payout 的唯一方法。带退避地重试,
并在两次尝试之间查询。
对其余的码,划分如下:
A0003 告诉我校验失败了。我能知道是哪个字段吗?
可以,而且 A0003 是唯一携带详情的 Payout 码。它的消息以通用文本返回,后面跟着
括号中的具体信息:
payeeInfo.payeeBirthDay、payoutInfo.payoutMethodName、
payoutAmount 等——并且可能出现多个字段。其他所有码只返回其标准消息,所以不要构建
期望从 A0003 以外的任何码获取详情的解析逻辑。
我收到了 A0008。是单笔 Payout 太大,还是我用完了额度?
Payout 上的 A0008 是关于单笔 Payout 金额落在该通道允许范围之外——低于最小值或高于
最大值。两个边界都来自你的 Payout 协议,并以出资币种显示为 Portal 中 Service → Payout
页面上的 Minimum Amount 和 Maximum Amount。请对照你所用国家、货币对和方式对应
的那一行检查金额。
另外两种情况是不同的码,你可以据此区分:
余额耗尽是
A0012,不是 A0008——哪个账户被扣款见
Payout 钱包与覆盖范围。
A0010 “Operation not allowed in merchant contract” 在实践中是什么意思?
意思是你请求的 Payout 不在你任何一个生效的 Payout 安排的覆盖范围内。常见原因,
按值得检查的顺序:
- 该组合没有协议。 国家、货币对、方式类型和方式都必须与 Service → Payout 上的 某一行匹配。
- 协议不是 Active。 只有 Active 才能交易;Initial、Suspended 和 Terminated 都不能。
- 协议已失效。 它的 Validity Period 有结束日期;过了之后协议停止交易。
payeeType不是该安排接受的类型。 一个安排可以面向个人、面向公司,或两者都可以。productName不是你拥有的。 无法识别的产品会在该字段上以A0003被拒绝; 你拥有但在该通道上未签约的产品则落到这里。
Payout 协议会过期吗?在哪里能看到过期时间?
会——Service → Payout 上的每一行都带有一个有开始和结束的 Validity Period,以及一个 Status。协议已过结束日期的通道上的 Payout,会以A0010 / C0002 这一族被拒绝,
而不是一个专门的过期码,所以当一条原本可用的通道停止工作时,Validity Period 是要检查的
字段。请在失效前审查它;续期是一次合约对话,不是 Portal 操作。
A0006 “Merchant status abnormal”——我被暂停了吗?
A0006 意味着你的商户账户无法被解析为可用于这笔 Payout——要么用你发送的 id 找不到账户,
要么其状态不允许交易。它不是 Payout 专有的,也不会说明为什么。先检查请求中的
merchantInfo.merchantId——错误或输错的 id 会产生同样的码——然后联系 Waffo,因为响应
有意不携带原因。
创建调用超时了,我不知道它是否成功。重试还是查询?
查询。 一次你没有收到响应的创建可能已经成功。用你的payoutRequestId 调用
/api/v1/payout/inquiry:
重新发送创建也是安全的,因为
payoutRequestId 是幂等的:完全相同的重发会返回原始订单,
而不是创建第二笔 Payout。不安全的是在超时后用一个新的 payoutRequestId 发送同一笔
Payout——重复 Payout 就是这样产生的。
出于风控原因被拒绝的 Payout 可以申诉吗?
D0001 返回时不带原因,响应中没有可据以行动的内容,所以请求中没有什么可以更正。请附上
payoutRequestId 和收款人信息向 Waffo 反馈;单个决定能否被重新审视是 Waffo 侧的判断,
不是一个请求参数。
有一个你无法归类的码,或者行为与本页不符的码? 请附上
payoutRequestId、payoutOrderId(如果有)以及准确的码和消息
联系客服。