Skip to main content
Every webhook is a POST to your endpoint with a JSON body. The type field says which event it is, and data is the entity the event is about. See the webhooks guide for setup, delivery, and signature verification.

Headers

string
required
Unique event ID. Same value as the body id, and stays the same across retries.
string
required
When this delivery attempt was sent, in Unix seconds.
string
required
Space-separated list of v1,<base64 HMAC-SHA256> signatures. See Verify signatures.

Body

string
required
Unique event ID. Same value as the webhook-id header.
string
required
The event type. One of the event types below.
string
required
When the change happened, in ISO 8601 UTC. Retries keep the original value.
object
required
The entity the event is about, after the change. Its fields depend on type.

Event types

Sent every time a claim’s status or status_reason changes, including a change to the status reason alone. The fields below are the content of data in the webhook body.
string
required
Unique claim ID. Use it with GET /v1/claims/{id}.
string | null
required
The carrier’s claim reference, if one is assigned yet.
string
required
Carrier identifier.
enum<string>
required
The claim’s status after the change. One of CREATED, UNDER_REVIEW, PENDING_ACTION, PENDING_REFUND, PENDING_REFUND_AMOUNT_CONFIRMED, RESOLVED, CANCELED, REJECTED, or CLOSED. See What happens after you create a claim.
object | null
required
Set when status is PENDING_ACTION, CANCELED, or REJECTED. null for every other status. See Status reasons.
object
required
The claimed shipment.
object
required
The key-value pairs you sent when you created the claim, returned unchanged. Keys and values are strings. An empty object if you sent none.
Example

Response

Return any 2xx status within 10 seconds to acknowledge the event. The response body is ignored. Any other status, a timeout, or a connection error is retried with exponential backoff.
Last modified on November 2, 2026