跳到主要内容

错误处理

接口失败时,先不要猜原因。按这个顺序看:

  1. 看 HTTP 状态码:401 是认证问题,403 是权限问题,400 多半是参数问题。
  2. 看返回里的 message:它会告诉你具体错在哪个字段或哪个配置。
  3. 按下面的表格处理:先修请求参数,再检查账号/API Key/路由配置。

成功响应通常是:

{
"code": 0,
"message": "ok",
"data": {}
}

失败响应通常是:

{
"code": 53,
"message": "payout route not configured",
"data": null
}

快速判断

HTTP 状态常见含义先检查什么
400请求参数不对,或业务配置不匹配请求字段、金额、币种、收款人、出金路由
401没有认证成功API Key、Bearer Token、IP 白名单
403已认证,但没有权限API Key 权限、账号是否开通对应产品
404资源不存在或当前账号看不到payout_idorder_idbatch_id、环境是否正确
500平台或上游服务异常先查询订单状态,不要盲目重复提交

返回字段

字段说明
code业务分类码。0 表示成功;失败时主要用来区分大类
message最重要的排查信息。下面的错误列表按这个字段整理
data成功数据;失败时通常为空或包含补充信息

常见业务码:

code含义
0成功
51基础参数校验失败,例如必填字段没传、长度不对
53业务参数或业务配置不正确
61认证或权限失败
65资源不存在
50平台内部或上游异常

认证与权限错误

你看到的 message是什么意思你该怎么做
unauthorized没有传 token,token 格式不对,或 token 无效请求头传 Authorization: Bearer <token>,或传 X-API-Key: <token>;确认 token 是完整复制的
api key not foundAPI Key 不存在,或你把 Sandbox / Live 环境用错了重新创建 API Key,并确认请求地址和 Key 是同一个环境
api key disabledAPI Key 被禁用了在商户后台启用,或创建新的 API Key
api key expiredAPI Key 已过期创建或续期 API Key
api key version mismatchAPI Key 已轮换,旧 token 不能再用使用最新 token
invalid api key tokentoken 内容不完整或格式异常重新复制完整 token,不要手动改 token
ip not allowed当前服务器出口 IP 不在白名单里把你的服务器出口 IP 加到 API Key 白名单
ip not allowed: <ip>返回的 <ip> 就是平台识别到的请求来源 IP把这个 <ip> 加到 API Key 白名单
forbiddenAPI Key 没有接口权限,或账号未开通该产品给 API Key 加权限;确认账号已开通收单/出金等产品

常见权限:

你要做的事需要的权限
查询账号payment.account.read
查询余额payment.wallet.read
查询流水payment.ledger.read
创建 Quick Payout / 出金单payment.payout.create
查询出金单payment.payout.read
更新出金单payment.payout.update
提交出金单payment.payout.submit
取消出金单payment.payout.cancel
管理收款人payment.payout.beneficiary.read / payment.payout.beneficiary.write
管理收款账户payment.payout.beneficiary_account.read / payment.payout.beneficiary_account.write

通用请求错误

你看到的 message是什么意思你该怎么做
Validation Failed字段没通过基础校验,例如必填、长度、枚举值、最小值对照接口参数表修正字段
request required请求体为空,或 JSON 没有被正确解析设置 Content-Type: application/json,发送合法 JSON
<field> required某个必填字段没传补上提示里的字段,例如 currencyreferencepayout_id
invalid notify_url回调地址格式不合法使用完整地址,例如 https://merchant.example.com/webhooks/payout
invalid status状态筛选值不支持使用文档里的状态值
invalid review_status审核状态筛选值不支持使用 draftpending_reviewreturnedrejectedapproved
invalid execution_status执行状态筛选值不支持使用 initprocessingcompletedfailedcancelled
no changes更新接口没有传任何要修改的字段至少传一个要修改的字段
account not foundtoken 对应账号不存在,或当前环境不对检查 API Key 和请求环境
account frozen商户账号被冻结联系 Beyounger 处理账号状态
internal error平台隐藏了内部错误细节保存请求时间、接口路径、请求参数和返回内容,联系 Beyounger

法币出金错误

你看到的 message是什么意思你该怎么做
currency required没传出金币种currency,例如 USD
currency not supported当前账号不支持这个币种确认账号已开通该币种
amount must be greater than zero金额必须大于 0传大于 0 的金额
amount must be greater than fee when fee_bearer is user手续费由收款人承担时,金额不够扣手续费增加金额,或改成 fee_bearer: merchant
fee_bearer must be merchant or user手续费承担方写错了只能传 merchantuser
reference required没传商户订单号/业务参考号传唯一的 reference
reference already exists这个 reference 已经创建过出金单先查询原出金单,不要重复创建
beneficiary_account_id required没传已有收款账户,也没传 inline 收款信息beneficiary_account_id,或同时传 beneficiarybeneficiary_account
beneficiary and beneficiary_account must be provided together只传了收款人或只传了收款账户两个对象必须一起传
method_id required when creating beneficiary inlineinline 创建收款人时没传出金方式method_id
channel_id requires method_id传了 channel_id,但没传 method_id同时传对应的 method_id
method_id required when channel_id provided传了 channel_id,但没传 method_id同时传对应的 method_id
payout method not found出金方式不存在或当前商户不可用确认 method_id,或让 Beyounger 开通该方式
payout channel not found出金通道不存在或未给当前商户配置不确定时不要传 channel_id;联系 Beyounger 确认路由
payout route not configured当前账号、币种、方式、金额没有匹配到可用路由联系 Beyounger 配置出金路由
channel account not configured路由有了,但通道账号没配好联系 Beyounger 配置通道账号
payout method not supported for currency type法币/加密货币方式用错了法币出金用 fiat 方法,加密货币出金用 crypto 方法
beneficiary account not found收款账户不存在,或不属于当前账号检查 beneficiary_account_id
beneficiary account not active收款账户不是启用状态启用或重新创建收款账户
beneficiary account disabled, please enable it first收款账户被禁用先启用收款账户
beneficiary account suspended收款账户被挂起联系 Beyounger,或换一个收款账户
beneficiary account type mismatch收款账户类型和币种/通道不匹配不确定时不要传 account_type
account_type mismatch传入的 account_type 不符合通道要求PayPal 场景通常不要传 account_type: paypal
beneficiary not found收款人不存在,或不属于当前账号检查 beneficiary_id
beneficiary disabled收款人被禁用启用或重新创建收款人
beneficiary method mismatch收款人绑定的方式和本次请求的 method_id 不一致使用一致的 method_id,或重新创建收款人
beneficiary channel mismatch收款人绑定的通道和本次请求的 channel_id 不一致使用一致的通道,或不要传 channel_id
beneficiary account mismatch收款人和收款账户不是一组使用同一收款人下的收款账户
beneficiary profile incomplete: missing <fields>通道要求更多收款人资料补齐 <fields> 中列出的字段
wallet not found当前账号没有对应币种的钱包联系 Beyounger 开通钱包
merchant account not found当前账号配置不完整联系 Beyounger 检查账号配置
payout not found出金单不存在,或不属于当前账号检查 payout_id 和环境
payout not editable出金单已经不能修改先查询状态,不要继续更新
payout already approved出金单已经审核通过等待执行结果,或查询状态
payout already processing出金单已经在执行中等待 webhook 或调用查询接口
payout rejected出金单已被拒绝修正信息后创建新的出金单
invalid payout status当前状态不允许这个操作先查询出金单状态,再决定下一步

收款人字段错误

这些错误通常出现在 beneficiary.fields

你看到的 message是什么意思你该怎么做
beneficiary fields required没传收款人字段beneficiary.fields
fields required没传字段对象fields
fields missing required: <fields>少了必填字段补齐 <fields> 中列出的字段
fields.payee_id invalid: expect ^[a-zA-Z0-9]{3,60}$payee_id 只能是 3-60 位字母或数字改成符合规则的 ID
fields.language invalid: expect 2 letters语言格式错误传两位字母,例如 en
fields.country invalid: expect ISO-2 uppercase国家格式错误传 ISO-2 大写国家码,例如 US
fields.phone invalid: expect (\\+[0-9]{1,3}-)?[0-9]{4,12}手机号格式错误+1-4155550100,或 4-12 位纯数字
fields.birthdate invalid: expect yyyy-MM-dd出生日期格式错误1990-01-31
fields.email invalid邮箱格式错误传合法邮箱
fields.first_name invalid: length 3-100, letters/'/-/space only名字长度或字符不符合规则使用 3-100 位字母、空格、'-
fields.last_name invalid: length 3-100, letters/'/-/space only姓氏长度或字符不符合规则使用 3-100 位字母、空格、'-
fields.zip invalid: length 3-30邮编长度不对按收款人国家填写邮编
fields.zip invalid for country <country>邮编格式和国家不匹配<country> 的邮编规则修改
fields.city invalid: length 2-120城市长度不对传 2-120 个字符
fields.state invalid: length 2-60州/省长度不对传 2-60 个字符
fields.address invalid: length 3-200地址长度不对传 3-200 个字符

收款账户字段错误

这些错误通常出现在 beneficiary_account 或收款账户创建接口。

你看到的 message是什么意思你该怎么做
network_code required没传收款网络beneficiary_account.network_code
network not found网络不存在或当前商户不可用先用 GET /payment/payout-networks 查询可用网络
schema required这个网络缺少字段配置联系 Beyounger 检查网络配置
field <name> required收款账户缺少字段按网络 schema 补齐字段
field <name> invalid收款账户字段格式不对按网络 schema 的提示修改
field <name> invalid: <hint>字段格式不对,<hint> 是格式要求<hint> 修改
unknown field <name>传了 schema 不认识的字段删除这个字段
cashapp_account must start with $Cash App 账号必须以 $ 开头例如 $example
beneficiary account already exists相同收款账户已经存在复用已有收款账户

加密货币批量出金错误

你看到的 message是什么意思你该怎么做
items required没传批量明细items
items length must be between 1 and 500明细数量必须是 1-500 条拆分批次或补充明细
only crypto currency supported批量加密出金不能传法币使用加密货币币种
method_id required没传出金方式传 crypto 类型的 method_id
payout method not supported for crypto传入的方式不是 crypto 出金方式换成 crypto 出金方式
order_no required明细缺少商户订单号每条明细传唯一 order_no
duplicate order_no in request本次请求里有重复订单号去重后再提交
duplicate order_no in batch批次里已有相同订单号换新的 order_no
duplicate order_no in merchant payouts历史出金里已经有这个订单号查询原出金单,不要重复出金
beneficiary_account.address required收款地址为空传收款地址
receiving address required收款地址为空传收款地址
invalid EVM receiving addressEVM 地址格式错误使用合法 EVM 地址
invalid TRON receiving addressTRON 地址格式错误使用合法 TRON 地址
duplicate receiving address in batch request本次批次里收款地址重复去重或拆分批次
batch not found批次不存在或当前账号看不到检查 batch_id 和环境
batch not editable批次已经不能修改查询批次状态
batch not ready for submit批次还不能提交先修正批次明细
batch has no items批次没有明细添加明细
batch not approved批次还没审核通过等待审核结果
batch contains multiple payout channel accounts; split batch by route一个批次里混用了多个出金路由按路由拆成多个批次

收单错误

你看到的 message是什么意思你该怎么做
order_currency only supports USD订单计价币种当前只支持 USDUSD
order_amount must be > 0订单金额必须大于 0传大于 0 的金额
expire_seconds must be between 60 and 10800订单有效期必须在 60-10800 秒修改过期时间
underpay_tolerance must be >= 0少付容忍值不能是负数传大于等于 0 的值
allowed_pay_currencies required没传允许支付的币种allowed_pay_currencies
notify_webhook_id required没传收单 webhook 配置 ID传有效的 notify_webhook_id
notify_webhook_id invalid or inactivewebhook 不存在或未启用在商户后台启用 webhook
notify_webhook_id not subscribed to acquiring eventswebhook 没订阅收单事件给 webhook 订阅 acquiring.*
redirect_url must be an absolute https URL or a same-origin relative path跳转地址格式不对使用 HTTPS 完整地址,或同源相对路径
logo_url must be an absolute https URLlogo 地址必须是 HTTPS 完整地址使用 HTTPS 图片地址
mode must be checkout or direct收单模式写错checkoutdirect
unsupported checkout_typecheckout 类型不支持使用已开通的 checkout 类型
network/currency required网络和币种没有同时传同时传网络和币种
network/currency not allowed by order支付网络/币种不在订单允许范围内使用订单允许的支付选项
unsupported network/currency: <network>/<currency>当前账号不支持这个网络/币种组合换支付选项,或联系 Beyounger 开通
no available pay tokens for current account当前账号没有可用支付币种联系 Beyounger 配置支付币种
order not found订单不存在或当前账号看不到检查 order_id 和环境
completed order cannot be closed订单已经完成,不能关闭按完成状态处理
checkout_url not foundhosted checkout 地址不存在检查订单 ID 和订单模式

Webhook 接收错误

这些错误多出现在平台接收上游服务回调时。商户一般只需要保留日志,必要时联系 Beyounger。

你看到的 message是什么意思你该怎么做
webhook ip not allowed回调来源 IP 不在白名单内检查上游 IP 白名单配置
unsupported acquiring webhook provider: <provider>回调 provider 不支持确认 provider 配置
empty cobo webhook eventCobo 回调事件为空保存原始回调内容
invalid cobo merchant deposit payloadCobo 回调内容格式不对保存原始 payload
acquiring order not found回调无法匹配本地收单订单检查上游订单号和本地订单
merchant deposit address not found回调地址无法匹配商户充值地址检查充值地址配置

是否可以重试

错误类型能不能直接重试建议
401 / 403不建议先修 token、IP 白名单或权限
400 参数错误不建议先修请求参数
404 资源不存在不建议先确认 ID、账号和环境
查询接口 5xx可以用退避重试,不要高频请求
创建/提交/打款接口 5xx谨慎先用 referenceclient_request_idpayout_id 查询状态,避免重复出金