corallink
申请接入
开发者

用一个迭代周期完成集成

沙箱密钥即时签发,行为与生产环境完全一致,包括各类失败场景。代付被拒、结算延迟、合作方超时都可以先在沙箱里演一遍。

核心资源

七个对象,就是全部模型

如果整个资源关系图能装进脑子里,凌晨三点也能排障。我们刻意把它做小。

wallet
归属于某一法律主体的单币种余额
beneficiary
已核验的收款方,可跨批次复用
collection
一次入金尝试及其通道历史
payout
一条出金指令,可挂载锁汇
fx_lock
在固定有效期内保留的报价汇率
entry
总账分录的一边,余额由其推导
event
不可变状态变更,经回调推送
dispute
拒付或退汇及其证据包
回调事件

可信任、可重放的事件流

每个事件都带签名、按资源保序,并保留 30 天。发布期间漏收了一段?直接重放该时间区间即可追平状态,无需提工单,也无需导 CSV。

  • HMAC-SHA256 签名与时间戳容差校验
  • 至少一次投递,按资源 ID 保序
  • 指数退避重试 8 小时后转入待处理
  • 按时间区间或资源自助重放
{
  "id": "evt_7Qa4Lm20",
  "type": "payout.settled",
  "created_at": "2026-04-18T06:26:11Z",
  "data": {
    "payout_id": "pay_31Ax9K",
    "amount": 48200,
    "currency": "SGD",
    "settled_amount": 561238400,
    "settled_currency": "IDR",
    "rate": 11644.99,
    "rail": "id_local_rtgs",
    "ledger_entries": ["ent_88f1", "ent_88f2"]
  }
}
错误模型

告诉你该怎么办的错误码

每个错误都带有一个分类,用来回答唯一的问题:重试、改请求,还是上报。不留模糊地带。

retryable

合作方或网络的瞬时状况。带同一幂等键重发即可,不会产生重复指令。

invalid_request

请求体或其业务上下文有误。响应会指明具体字段以及它违反的规则。

requires_action

合规或额度需要人工决策。响应会包含可通过 API 追踪的工单编号。

先看规范,再谈签约

我们会直接发送完整的 OpenAPI 规范、回调事件目录与一把沙箱密钥,不必先安排销售会议。