Z Zise Developers
账户中心 › Webhook

会员状态

会员建档成功、或商户级停用状态发生变化时发送。

事件类型

事件什么时候发
member.created会员建档成功
member.suspended商户级停用状态变化(停用与恢复共用这一条)

投递约定

事件体只带 ID 与状态

没有金额、没有资产代码、没有卡号的任何片段、没有风控原因。这不是省字节 —— webhook 端点是你的服务,我方没有办法保证它的传输与存储; 而 GET /v1/<资源>/{id} 那条路径上有 API Key、scope、 代理会员三层校验。要详情就拿 data.id 回查, 别指望从事件体里读出金额来记账

逐条

member.created 会员建档成功
什么时候发

POST /v1/members 真的新建了一行会员(返回 201)那一刻。幂等命中(同一个 external_member_id 已存在,返回 200)不发 ——否则你每次重试注册都会收到一条「新会员」。⚠ status_version 恒为 0:会员行上没有状态机版本。这一条一个会员只发一次,没有第二条可以乱序。

事件体
{
  "event_id": "evt_2f1c8a9b4d7e4c1fa0b3e5d6c7a8b901",
  "event_type": "member.created",
  "created_at": "2026-08-12T09:30:00Z",
  "merchant_id": "acme",
  "livemode": true,
  "data": {
    "object": "member",
    "id": "4b7c1e02-9a3d-4f18-8c55-2d61ab0f9e77",
    "external_member_id": "u_88123",
    "status": "normal",
    "status_version": 0
  }
}
member.suspended 商户级停用状态变化(停用与恢复共用这一条)
什么时候发

POST /v1/members/{id}/suspend 真的改动了 merchant_status 之后。恢复也发这一条,带 status: normal —— 方向靠 status 区分。给恢复另造一条事件会让「这个人现在能不能用」需要看两条事件流才答得出。这一位只影响该会员在你这边的可用性,平台级封禁是另一套、你看不到。⚠ status_version 恒为 0,而这一条会来第二次(停用 → 恢复 → 再停用)。所以这里是全部事件里唯一真的要按 created_at 排序的地方 ——别写「version 相等就跳过」,那会让恢复那条被丢掉,你这边的人永远解不开。

事件体
{
  "event_id": "evt_7c93a1d05e6b4a2f9d81c4e0f2a37b56",
  "event_type": "member.suspended",
  "created_at": "2026-08-12T10:02:11Z",
  "merchant_id": "acme",
  "livemode": true,
  "data": {
    "object": "member",
    "id": "4b7c1e02-9a3d-4f18-8c55-2d61ab0f9e77",
    "external_member_id": "u_88123",
    "status": "suspended",
    "status_version": 0
  }
}

验签

验签方式与所有事件一致,见 Webhook 概览; 可以用签名调试器逐字符比对签名串。