Skip to main content
Payout 返回自己的一套错误码。前缀看起来和支付的一样,有几个码也重叠,但含义并不相同—— 处理 Payout 响应时,请读本页的表格而不是 支付错误码。每个请求 字段该填什么,见 Payout 请求字段指南。

这些前缀是什么意思?

完整的 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 安排的覆盖范围内。常见原因, 按值得检查的顺序:
  1. 该组合没有协议。 国家、货币对、方式类型和方式都必须与 Service → Payout 上的 某一行匹配。
  2. 协议不是 Active。 只有 Active 才能交易;Initial、Suspended 和 Terminated 都不能。
  3. 协议已失效。 它的 Validity Period 有结束日期;过了之后协议停止交易。
  4. payeeType 不是该安排接受的类型。 一个安排可以面向个人、面向公司,或两者都可以。
  5. productName 不是你拥有的。 无法识别的产品会在该字段上以 A0003 被拒绝; 你拥有但在该通道上未签约的产品则落到这里。
请求体中没有任何东西能修复以上任何一条。先把你的请求与 Service → Payout 的那一行对比, 然后向 Waffo 反馈。

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(如果有)以及准确的码和消息 联系客服。