稳定币账户 › Webhook
提现状态
提现锁定、完成或失败时发送。
事件类型
| 事件 | 什么时候发 |
|---|---|
withdrawal.order.locked | 会员自助链上提现已提交,资金已从可用余额扣走 |
withdrawal.order.completed | 会员自助链上提现已出款完成 |
withdrawal.order.failed | 会员自助链上提现未完成,资金已全额退回可用余额 |
投递约定
- 我方向你配置的端点发
POST,application/json,超时 10 秒。 - 回任意 2xx 即视为收到。 非 2xx 或超时会按退避重投。
- 请求头四个:
content-type·z-signature·z-event-id·z-event-type。 - 按
z-event-id去重 —— 同一条事件可能到达多次。
事件体只带 ID 与状态
没有金额、没有资产代码、没有卡号的任何片段、没有风控原因。这不是省字节 ——
webhook 端点是你的服务,我方没有办法保证它的传输与存储;
而 GET /v1/<资源>/{id} 那条路径上有 API Key、scope、
代理会员三层校验。要详情就拿 data.id 回查,
别指望从事件体里读出金额来记账。
逐条
withdrawal.order.locked
会员自助链上提现已提交,资金已从可用余额扣走什么时候发
会员在 App 里提交提现的那一刻 —— 钱这时已经不在可用余额里了(进了独立的提现在途桶),还没有出款。把它当成「余额已减少」的通知,不是「钱已经到对方地址」。终局看 withdrawal.order.completed / .failed。与 POST /v1/withdrawals 那条两段式扣账无关,见页首说明。
事件体
{
"event_id": "evt_5e81c0a7f39b4d26ae4713b8c0d5f9a2",
"event_type": "withdrawal.order.locked",
"created_at": "2026-08-12T13:05:22Z",
"merchant_id": "acme",
"livemode": true,
"data": {
"object": "withdrawal",
"id": "8f2a41d6-0c7b-4e39-9a15-63d0c8be7f24",
"external_member_id": "u_88123",
"status": "locked",
"status_version": 1
}
}withdrawal.order.completed
会员自助链上提现已出款完成什么时候发
上游确认出款完成、结算凭证落账那一刻。这是终态。中间态(审核通过、已广播上链)刻意不外发 —— 它们是我方内部流程的可见性,多发只会让你以为有什么要处理。
事件体
{
"event_id": "evt_c47d2be9105f43a8b6e0972d15c8340a",
"event_type": "withdrawal.order.completed",
"created_at": "2026-08-12T13:41:57Z",
"merchant_id": "acme",
"livemode": true,
"data": {
"object": "withdrawal",
"id": "8f2a41d6-0c7b-4e39-9a15-63d0c8be7f24",
"external_member_id": "u_88123",
"status": "completed",
"status_version": 4
}
}withdrawal.order.failed
会员自助链上提现未完成,资金已全额退回可用余额什么时候发
两种情形共用这一条:我方审核驳回,或上游出款失败。两者对会员的下一步完全不同(前者要问客服,后者可以直接重发),但事件体里区分不了 —— 要知道是哪一种得回查。手续费在失败时全额退还,不会留在我方。
事件体
{
"event_id": "evt_0b6e3f9d82c74a15ae37d0561fb92c48",
"event_type": "withdrawal.order.failed",
"created_at": "2026-08-12T13:52:10Z",
"merchant_id": "acme",
"livemode": true,
"data": {
"object": "withdrawal",
"id": "8f2a41d6-0c7b-4e39-9a15-63d0c8be7f24",
"external_member_id": "u_88123",
"status": "failed",
"status_version": 3
}
}验签
验签方式与所有事件一致,见 Webhook 概览; 可以用签名调试器逐字符比对签名串。