# Responding to webhooks

Source: https://developers.swell.is/backend-api/webhooks/responding-to-webhooks

Your endpoint must respond to successful requests with a `2xx` HTTP status code. Response codes outside this range will indicate that you were not able to receive the webhook event.

Any other information returned by your script is ignored. Real-time order webhooks are an exception: a webhook configured for the `taxes` or `shipping` event reads the response body and merges it into the cart or order being processed. See [Functions and webhooks](https://developers.swell.is/guides/core-concepts/functions-and-webhooks) for the response format.

If a webhook is not acknowledged successfully, Swell retries it after 1 minute and then with an exponential back-off, up to 10 attempts a day. After every 10th failed attempt, the next retry is 12 hours later. The store's admins receive a warning email after every 10 failed attempts, at most once a day. If the endpoint keeps failing for 4 days without a successful delivery, the webhook is disabled until it is re-enabled, and the admins are notified. Re-enabling the webhook retries its pending events.

To stop retries for an event, respond with status `410`, or with a non-2xx response whose JSON body includes `"retry": false`.

Unless otherwise specified, webhook requests have a timeout of 10 seconds. In cases where webhook handlers are long-running or resource-intensive, we recommend implementing a messaging queue to handle incoming webhook requests asynchronously.
