settlement.status_changed
Sent when a settlement run starts and when it finishes, scheduled or started with POST /v1/settlements. Check outcome on a completed run: failed_partial and failed_all can be retried with POST /v1/settlements/{id}/resettlements. Answer with any 2xx within 10 seconds. Anything else, a timeout or a redirect is retried up to 6 times over about a day. Events can arrive out of order, so compare statuses rather than trusting arrival order.
settlement.status_changedWebhookWebhook-IdstringrequiredThe event id. The same event can arrive more than once; use this to ignore repeats.
Webhook-TimestampstringrequiredUnix seconds when this attempt was signed. Reject a delivery older than 5 minutes.
Webhook-Signaturestringrequiredv1, then a comma, then the base64 HMAC-SHA256 of "{Webhook-Id}.{Webhook-Timestamp}.{raw body}" keyed with your endpoint's signing secret. Compare in constant time.
application/jsonidstringrequiredThe event id, the same as the Webhook-Id header.
typestringrequiredcreatedAtstring<date-time>requiredWhen the change happened.
dataSettlementRunEventDatarequiredA settlement run as carried by its event. The event has no run id; list runs with GET /v1/settlements and match on reference when you need it.
Show propertiesHide properties
referencestringrequiredstatusstringrequiredrunning or completed. Others can appear, so do not treat this list as closed.
outcomestringSet once completed: settled, failed_partial or failed_all. Others can appear.
itemCountintegerrequiredHow many payments the run made.
totalstringrequiredThe amount settled. A decimal string in major units.
currencystringrequiredstartedAtstring<date-time>requiredcompletedAtstring<date-time>Received. Any 2xx stops retries.