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

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

© 2026 KukoPay. All rights reserved.

产品

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

开发者

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

公司

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

开始

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

对接指南

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

资金

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

API 参考

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

接口约定

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

Webhook 端点

配置多个接收地址、按事件类型订阅,以及安全地轮换签名密钥。

POST   /api/v1/webhook_endpoints
GET    /api/v1/webhook_endpoints
GET    /api/v1/webhook_endpoints/{endpoint_id}
POST   /api/v1/webhook_endpoints/{endpoint_id}
DELETE /api/v1/webhook_endpoints/{endpoint_id}
POST   /api/v1/webhook_endpoints/{endpoint_id}/rotate_secret

事件格式与验签见 Webhook。这里只讲端点管理。

每个环境最多配置 5 个端点,各自有独立的签名密钥和事件订阅。端点按环境隔离——沙箱端点永远收不到正式事件。

创建

curl -X POST "https://web.kukopay.com/api/v1/webhook_endpoints" \
  -H "X-Api-Key: kuko_live_你的密钥" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://api.yourshop.com/hooks/kukopay",
    "description": "订单履约服务",
    "enabled_events": ["payment.succeeded", "refund.succeeded"]
  }'
参数必填说明
url✅正式环境必须是可公网访问的 HTTPS 地址
description备注,便于在控制台区分多个端点
enabled_events订阅的事件类型,省略为全部

enabled_events 传 ["*"] 表示订阅全部,并且会自动包含之后新增的事件类型。

签名密钥

{
  "object": "webhook_endpoint",
  "endpoint_id": "whe_8c2f41ab9d0e7635",
  "url": "https://api.yourshop.com/hooks/kukopay",
  "enabled_events": ["payment.succeeded", "refund.succeeded"],
  "status": "enabled",
  "secret": "whsec_4f81a2c9...",
  "secret_notice": "请立即保存该签名密钥,它不会再次以明文返回。"
}
🚨

secret 只在创建和轮换时返回这一次。它加密存储,之后无法再读回明文——这正是设计目的:控制台被人看到也拿不到密钥。没保存就只能轮换一把新的。

更新与停用

curl -X POST "https://web.kukopay.com/api/v1/webhook_endpoints/whe_8c2f41ab9d0e7635" \
  -H "X-Api-Key: kuko_live_你的密钥" \
  -H "Content-Type: application/json" \
  -d '{ "status": "disabled" }'

想暂停接收时建议改成 disabled 而不是删除:投递历史挂在端点上,删掉之后就查不到这段时间漏了什么。

轮换签名密钥

curl -X POST "https://web.kukopay.com/api/v1/webhook_endpoints/whe_8c2f41ab9d0e7635/rotate_secret" \
  -H "X-Api-Key: kuko_live_你的密钥"

签发新密钥,旧密钥在 24 小时内继续并行签名。两个签名出现在同一个 X-KukoPay-Signature 头里(多个 v1=),任意一个验签通过即为合法请求。

X-KukoPay-Signature: t=1758268800,v1=9c1f...,v1=3ea7...
                                    新密钥      旧密钥

所以你可以在窗口期内任意时刻更新配置,不必和平台同步切换。

⚠️

轮换前请先确认你的验签代码能处理多个 v1=。只取第一个或用 Object.fromEntries 之类只保留最后一个的写法,会在窗口期内验签全部失败。Webhook 页 有三种语言的正确实现。

投递优先级

情况事件发往
下单时传了 notify_url只发这个地址,不发给已配置端点
没传 notify_url所有订阅了该事件类型的端点
两者都没有开发者中心配置的单一地址(兜底)

多个端点各自独立重试,一个端点故障不会拖住其它端点。

事件API 调用日志