Wealth Order Settlement
Emitted when principal and interest settle at fixed-term maturity or flexible-product interest is credited.
Event Types
| Event | When Emitted |
|---|---|
earn.order.settled | Earn proceeds credited: flexible interest payments / fixed-term principal and interest at maturity |
Delivery Contract
- We send a
POSTrequest withapplication/jsonto your configured endpoint, with a 10-second timeout. - Any 2xx response acknowledges receipt. Non-2xx responses and timeouts trigger retries with backoff.
- Four request headers:
content-type·z-signature·z-event-id·z-event-type。 - Deduplicate by
z-event-id— the same event may be delivered more than once.
There are no amounts, asset codes, card number fragments or risk-control reasons. This is a security boundary: the webhook endpoint is your service, whose transport and storage we cannot guarantee.
The GET /v1/<resource>/{id} endpoint applies API key, scope and on-behalf-of checks. Fetch details using data.id;
do not use webhook payloads as the source of amounts for your ledger.
Event Details
earn.order.settled
Earn proceeds credited: flexible interest payments / fixed-term principal and interest at maturityTwo different operations share this event: · Flexible interest payment: after each interest posting, data.id is the internal member ID, with status_version always 0; flexible Earn uses a balance pool, not one order per transaction. · Fixed-term maturity settlement: after principal and interest settle, data.id is the fixed-term order ID and includes status_version. To distinguish them, look for data.id in GET /v1/earn/orders. A match indicates fixed-term settlement; no match indicates a flexible interest payment, for which GET /v1/earn/positions shows the flexible principal. ⚠ No event is sent when fixed-term interest starts accruing. You or the member initiated the subscription, so there is no new information.
{
"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
}
}Signature Verification
The signature verification procedure is the same for all events. See Webhook Overview; use the Signature Debugger to compare signing strings character by character.