diff --git a/src/content/docs/crowdin/project-management/webhooks.mdx b/src/content/docs/crowdin/project-management/webhooks.mdx
index 6ce89845..d726eba8 100644
--- a/src/content/docs/crowdin/project-management/webhooks.mdx
+++ b/src/content/docs/crowdin/project-management/webhooks.mdx
@@ -90,6 +90,8 @@ In the **Calls History** section, you can view the list of calls of all the conf
## Failing Webhooks
+Crowdin sends each event to your webhook URL once, so an event that fails isn't sent again.
+
Webhooks that fail 100 or more times in the last 24 hours with response codes in the 4xx or 5xx ranges are automatically disabled.
### Disabled Webhooks
diff --git a/src/content/docs/developer/capabilities/webhooks.mdx b/src/content/docs/developer/capabilities/webhooks.mdx
index 2ccbc6b7..7c7d35f8 100644
--- a/src/content/docs/developer/capabilities/webhooks.mdx
+++ b/src/content/docs/developer/capabilities/webhooks.mdx
@@ -61,10 +61,6 @@ import groupDeleted from '/src/assets/code/webhooks/group.deleted.json?raw';
You can add webhooks to build integrations with the third-party services or with your backend. After you configure a webhook for the project, Crowdin will start sending POST or GET requests with data to the webhook URL via HTTP.
-
-
## Configuring Webhooks
Webhook integration can be implemented at different levels, including Project, Account, or Organization level.
@@ -93,6 +89,22 @@ Depending on your approach to webhooks management, you might need to add dedicat
Read more about [IP Addresses](/developer/ip-addresses/#webhooks-ai-providers-and-mt-engines).
+## Delivery
+
+Crowdin sends each queued event to your endpoint once. A delivery counts as successful when your endpoint responds with a `2XX` status before the request times out. Any other response, a timeout, or a connection error is recorded as a failed call, and Crowdin doesn't send that event again. If the webhook has **Batch webhooks** enabled, Crowdin combines several events into one request with an `events` array, and the response applies to every event in that request.
+
+
+
+Treat every request as the only notification you'll get for an event. Respond first, do the processing afterward, and use the API to catch up on anything your service missed while it was unavailable.
+
+Each request names the event in the `event` field and carries the payload of the object it describes. If your service needs to recognize a request it has already handled, build an idempotency key from these values, for example the event name plus the object ID and its timestamp.
+
+
+ Read more about Failing Webhooks in [Crowdin](/webhooks/#failing-webhooks) and [Crowdin Enterprise](/enterprise/webhooks/#failing-webhooks).
+
+
## Events
You can configure webhooks for different events that occur in the project, account, or organization.
diff --git a/src/content/docs/enterprise/project-management/webhooks.mdx b/src/content/docs/enterprise/project-management/webhooks.mdx
index 3817e77e..3edec75b 100644
--- a/src/content/docs/enterprise/project-management/webhooks.mdx
+++ b/src/content/docs/enterprise/project-management/webhooks.mdx
@@ -95,6 +95,8 @@ Alternatively, you can review the full list of sent webhooks in the **Tools > We
## Failing Webhooks
+Crowdin Enterprise sends each event to your webhook URL once, so an event that fails isn't sent again.
+
Webhooks that fail 100 or more times in the last 24 hours with response codes in the 4xx or 5xx ranges are automatically disabled.
### Disabled Webhooks