Skip to main content
Sendcloud uses webhooks to notify your application of parcel updates, such as changes in delivery status.
Webhooks are scoped to the integration they are configured on. You’ll only receive webhook events for parcels created through this integration, and for actions that belong to it. If you have multiple integrations, each one needs its own webhook configuration.
To receive the parcel data for every update to a parcel, you need to:
  • In the Sendcloud platform, go to Settings > Integrations, and click Configure on your Sendcloud API integration.
  • Select the Webhook feedback enabled checkbox.
  • In the Webhook url field, enter the URL of the endpoint in your application that will process the data.
  • Click Save.
  • Optional: to check your setup, click Test API webhook to send a test webhook to your application.
Sendcloud signs every webhook request using an HMAC (Hash-based Message Authentication Code) signature with the SHA-256 algorithm. It uses the Secret Key or the Webhook Signature Key as the secret, depending on your integration type. To check that a webhook came from Sendcloud, compute the HMAC-SHA256 over the entire raw request body, exactly as received and before any parsing, using your secret. Then compare the hex-encoded result with the value of the Sendcloud-Signature header.
Additional notes:
  • The data your application receives is the same as the parcel payload described in the Parcel status changed webhook reference.
  • If a delivery fails, Sendcloud retries it. See Retry behavior for the schedule.
  • Webhooks can arrive out of order, for example if your application was unreachable for a while. Use the timestamp field in each payload to find the most recent update.
  • For return parcels, you’ll only receive webhook updates if the outgoing shipment was created through the API integration.

Retry behavior

Your endpoint must respond with a 2xx status code within 10 seconds. Sendcloud follows redirects, sending the same request with the same body to the new URL. If a delivery fails because of a temporary problem, Sendcloud retries it. Sendcloud makes up to 10 attempts in total over about an hour and a half. The first retry happens within 5 minutes, and the wait between later retries grows to roughly half an hour. These failures are retried:
  • The request times out or your endpoint can’t be reached.
  • Your endpoint returns 406, 408, 409, 429, or a 5xx status code.
Any other 4xx status code, such as 400, 401, 404, or 422, stops delivery right away without retries. Every failed attempt is logged in the connection issue log.