KukoPay
  • 产品能力
  • 快速接入
  • API 参考
  • 商户后台
KukoPay

面向出海业务的一站式支付基础设施。通过一套服务端 API 接入托管收银台、订单、退款、Webhook、钱包与提现。

© 2026 KukoPay. All rights reserved.

产品

  • 产品能力
  • 接入流程
  • 安全设计
  • 商户后台

开发者

  • 文档首页
  • 快速接入
  • 统一下单 API
  • Webhook

公司

  • 联系我们
  • 服务条款
  • 隐私政策
  • 可接受使用政策

开始

文档首页快速接入商户入驻与审核认证与环境支付流程

对接指南

异步通知 Webhook幂等与重试沙箱测试

资金

费率与结算拒付与争议提现出金

API 参考

统一下单订单查询申请退款拒付收款链接余额查询资金流水事件Webhook 端点API 调用日志

接口约定

列表、分页与导出metadata错误码
开发者文档
错误码

错误码

KukoPay API 错误格式、错误大类、完整错误码与重试建议。

所有接口共用一套错误结构。

{
  "code": 400,
  "error": "invalid_request",
  "type": "invalid_request_error",
  "message": "订单金额必须是以最小货币单位表示的正整数",
  "param": "amount",
  "doc_url": "https://kukopay.com/docs/api/errors",
  "request_id": "req_9f2c1a7b4e8d0356c1ab77de90f4b215"
}
字段说明
code与 HTTP 状态码一致
error稳定的机器可读标识,请基于它做程序分支
type错误大类。新增 error 时不变,适合做粗粒度判断
message给人看的描述,文案可能调整,不要用于逻辑分支
param出错的请求字段名;与字段无关的错误为 null
doc_url指向本页对应错误码的说明
request_id本次请求的唯一标识

request_id

每一个响应——无论成功还是失败——都会在响应体的 request_id 字段和 X-Request-Id 响应头中返回同一个值,它与平台侧日志一一对应。

ℹ️

请在你的 HTTP 客户端里统一把 request_id 记进访问日志。反馈问题时附上它,平台可以直接定位到那一次请求;没有它只能靠订单号和时间范围人工翻查。你也可以自己用 API 日志 查。

request_id 始终由平台签发,不接受请求方传入,所以两次不同的调用一定拿到不同的值。

错误大类

type含义能否重试
authentication_error密钥缺失或无效,请求没有被识别为任何商户修正后
permission_error身份成立,但当前商户无权执行该操作否
invalid_request_error请求本身不合法:参数错误、对象不存在、状态冲突修正后
idempotency_error同一个幂等键被用于了不同的请求内容修正后
rate_limit_error触发调用频率限制退避后可以
api_connection_error上游渠道异常,本地资金未被修改可以
api_error平台内部错误可以

完整错误码

HTTPerror含义建议
401missing_api_key缺少认证头检查 X-Api-Key 拼写与是否被代理层剥离
401invalid_api_key密钥错误或已重置更新服务端配置
403merchant_not_approved正式能力未开通先用沙箱联调并完成审核
403ip_not_allowed来源不在 IP 白名单核对固定出口与白名单
403forbidden该对象不属于当前商户核对单号与密钥归属
400invalid_request请求字段不合法按 param 与 message 修正
400idempotency_error同一个 Idempotency-Key 用于了不同请求体重试请原样重发;新请求换 Key
409idempotency_in_progress该 Key 的首次请求仍在处理中稍后用相同的 Key 重试
404order_not_found订单不存在或环境不匹配核对订单号与密钥环境
404refund_not_found退款不存在或环境不匹配核对退款号与密钥环境
404dispute_not_found拒付记录不存在或环境不匹配核对 dispute_no 与密钥环境
404event_not_found事件不存在或环境不匹配核对事件 id 与密钥环境
404payment_link_not_found收款链接不存在或环境不匹配核对 link_id 与密钥环境
404endpoint_not_foundWebhook 端点不存在核对 endpoint_id 与密钥归属
409conflict对象状态已变化,或订单存在未结案拒付查询最新状态与拒付情况后再处理
400refund_window_expired订单的支付方式有退款期限且已超过查看订单的 refundable_until;超期退款请与买家线下处理
429rate_limited超出商户调用配额按 Retry-After 退避
502processor_error上游通道异常,本地资金未被修改使用相同幂等键安全重试
500internal_error平台内部错误带相同幂等键重试;持续出现请附 request_id 联系我们

重试原则

  • 网络超时、429、502 和 500:保留相同幂等键,指数退避后重试。
  • 400、401、403:先修复参数、凭据或权限,不要原样循环重试。
  • 404:确认资源标识与测试/正式环境是否一致。
  • 409:重新查询订单、退款或拒付的最新状态,再决定下一步。
⚠️

请求超时后不要直接判定订单不存在并重新生成订单号。正确做法是用原 out_trade_no 重试,或调用订单查询确认真实状态。

调用频率限制

商户 API 按商户维度限流,窗口为一分钟:

类别配额覆盖接口
写120 次 / 分钟下单、退款、创建链接与端点等会触达上游的操作
读600 次 / 分钟各类查询与列表
导出10 次 / 分钟列表接口的 format=csv

超出后返回 429 rate_limited,响应头 Retry-After 给出距离窗口重置的秒数。按这个秒数退避即可,不必自己猜。

ℹ️

这个额度是给异常流量兜底的,不是计费口径。正常业务量需要更高配额时联系平台运营调整即可。

metadata