理财 › Webhook
理财订单结算
定期到期结本息、或活期派息落账时发送。
事件类型
| 事件 | 什么时候发 |
|---|---|
earn.order.settled | 理财收益已入账(活期派息 / 定期到期结本息) |
投递约定
- 我方向你配置的端点发
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 回查,
别指望从事件体里读出金额来记账。
逐条
earn.order.settled
理财收益已入账(活期派息 / 定期到期结本息)什么时候发
两件不同的事共用这一条:· 活期派息——每期派息过账之后,data.id 是会员内部 id、 status_version 恒为 0(活期是余额包,不是一笔一单);· 定期到期结算——本息结清之后,data.id 是定期订单号、带 status_version。区分方法是拿 data.id 去 GET /v1/earn/orders 找:找得到就是定期,找不到就是活期派息,这时用 GET /v1/earn/positions 看活期本金。⚠ 定期起息不发事件 —— 申购那一刻发起方是你(或会员自己),没有新信息。
事件体
{
"event_id": "evt_9e04b7c2513f486da8021c6e5f7b3d90",
"event_type": "earn.order.settled",
"created_at": "2026-08-13T00:05:00Z",
"merchant_id": "acme",
"livemode": true,
"data": {
"object": "earn_order",
"id": "b52c8e17-3d94-40af-8617-c9e0d21a4f35",
"external_member_id": "u_88123",
"status": "settled",
"status_version": 2
}
}验签
验签方式与所有事件一致,见 Webhook 概览; 可以用签名调试器逐字符比对签名串。