> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onlyfansapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fair webhook delivery (/webhooks/fair-webhook-delivery)

OnlyFans API distributes webhook delivery capacity across teams to prevent a large backlog
or slow endpoint from monopolizing delivery. Fair delivery runs automatically, with no
changes needed to your integration.

For OnlyFans and Fanvue, chat and presence traffic have separate delivery capacity, helping
keep presence bursts from delaying messages.

## When your endpoint slows down

If your endpoint cannot keep up, its deliveries wait for capacity while other eligible
deliveries continue. Waiting for capacity does not consume a retry attempt.

When your endpoint recovers, queued deliveries can resume. Catching up takes longer if new
events arrive faster than your endpoint can accept them. Fair delivery does not guarantee
a fixed delivery time.

Existing [retry and endpoint-pause policies](/webhooks/delivery-and-retries) still apply.
Events that were never queued during an endpoint pause are not recovered automatically.

## Ordering and retries

Deliveries can arrive out of order or more than once. Handle each event independently where
possible, and use the idempotency key to detect duplicates when one is present.

See [Delivery & retries](/webhooks/delivery-and-retries) for timeouts, retry behavior and
replaying recorded deliveries.

## Keep your receiver responsive

Keep your webhook handler short and move processing to a background worker, job queue or
asynchronous workflow. The request should acknowledge receipt, without waiting for that work
to finish.

1. [Verify the signature](/webhooks/protecting-your-webhooks).
2. Save the event to durable storage or enqueue it in a durable job queue.
3. Return `200 OK` or another successful `2xx` response immediately after the event is safely accepted.
4. Process the event asynchronously, including any API calls, business logic or notifications.

If you use a workflow trigger, configure it to respond once the event is safely queued,
without waiting for the entire workflow to complete.

<Callout title="Slow responses slow your deliveries">
  While your webhook request remains open, it occupies delivery capacity. Doing heavy work
  before responding can delay subsequent webhooks to your endpoint. If the request times out,
  it can also trigger a retry and duplicate processing.
</Callout>

Only acknowledge an event once it is safely stored. A successful response confirms receipt;
your application's processing determines when the update becomes visible to your users.