CRM & integrations · Practical guide

Webhook failures and retries: keep integrations from losing or duplicating work

A reliable webhook endpoint verifies the sender, records accepted work durably and processes it in a way that tolerates repeated or out-of-order delivery. Investigate failed deliveries using the provider's event record and your own processing history. Do not replay every event blindly: first determine whether its business action already happened. Combine bounded retries with reconciliation so a temporary outage does not become a silent gap in customer, payment or order records.

Published by Britixo4 minute read

When this guide is useful

Business application owners and developers maintaining event-driven integrations.

  • A provider reports delivery failures but the application shows no useful error.
  • Some events are processed twice after a service interruption.
  • A later status is overwritten by an older event.
  • The endpoint returns success before work has been recorded reliably.
Practical guidance · 01

Separate delivery from processing

Trace one event across the provider's delivery attempt, your endpoint, any queue and the downstream application. Record a correlation identifier at each stage. A successful HTTP response means only what your implementation makes it mean; it does not necessarily prove that the customer record was updated.

Verify signatures using the provider's documented method and the correct raw request data. Reject invalid deliveries, avoid logging secrets and keep endpoint configuration separate from application credentials. Check whether a proxy or body parser changes the signed payload before verification.

Practical guidance · 02

Acknowledge only after durable acceptance

Keep the receiving endpoint focused on validation and recording the work. When processing takes time, place accepted events in a durable queue and return the documented successful response after acceptance. A long synchronous operation can exceed the provider's timeout even when the downstream change eventually succeeds.

Stripe's webhook guidance documents retries, duplicate events and the absence of guaranteed event ordering. Those behaviours are useful reminders, but every provider has its own contract. Confirm its timeout, retry period, event identifiers and response expectations rather than borrowing another service's assumptions.

  • Store the provider event identifier and processing state.
  • Keep failed jobs available for investigation and controlled replay.
  • Monitor queue age as well as queue length.
Practical guidance · 03

Make repeated delivery safe

Use a durable processing record to recognise an event already completed or accepted. Protect downstream side effects with a stable business-operation key where the destination supports it. A duplicate event should not send another email, create another invoice or apply another credit.

Stripe's idempotent-request documentation illustrates one provider's mechanism for recognising repeated operations. Understand the scope and retention of your chosen mechanism. An in-memory flag lost during restart is not a sufficient record, and using a new key for each retry defeats the purpose.

Practical guidance · 04

Handle stale events and recover deliberately

If a provider does not promise ordering, use its documented version or current-state retrieval approach before applying a potentially stale change. For an order-status update, a delayed 'created' event should not overwrite a later cancellation. Define what to do when the source cannot be reached for confirmation.

After an outage, compare source and destination records for the affected interval. Repair confirmed gaps through a bounded replay or reconciliation process. Distinguish temporary failures from invalid requests and permissions problems; repeated retries will not fix a missing required field or revoked access.

From diagnosis to delivery

How Britixo can help

Britixo can assess and improve webhook-based connections between business systems. A scoped repair can cover endpoint verification, durable processing, duplicate protection, retry rules and an operational failure view. We can also design reconciliation so your team can distinguish delayed work from missing records after an outage. The supported event types, provider constraints and recovery actions should be documented in the delivery scope. Contact Britixo with the affected platform, event type and sanitised delivery identifiers; avoid sharing signing secrets or complete sensitive payloads in an initial enquiry.

Talk through your requirements

Common questions

Should a failed webhook always be retried immediately?

No. Follow the provider's contract and distinguish temporary failures from permanent validation or access errors. Use bounded delays and avoid creating a retry storm.

Is returning HTTP 200 enough?

Only if the event has been durably accepted or already processed according to your design. Returning success before reliable acceptance can cause lost work.

Can we assume events arrive in order?

Only when the provider explicitly guarantees the required ordering. Otherwise design for stale delivery and use supported version or current-state checks.

Sources and further reading

Use the original documentation to check current product terms, eligibility and technical details.

Published by Britixo on 29 October 2026. How these guides are prepared. Product availability and delivery scope are confirmed for your requirements.