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

# How inboxes capture requests

> What a webhook testing inbox stores, which requests it keeps, and when a sender is dropped

A webhook testing inbox is a URL that records the HTTP requests your system sends. It is separate from [outbound platform webhooks](/integrations/webhooks), which deliver DevHelm events to you.

## Create an inbox

```bash theme={null}
export DEVHELM_API_TOKEN=dh_live_xxxxxxxx
devhelm inboxes create --name stripe-webhooks -o json
```

The JSON includes `id`, `httpUrl`, and `publicToken`. Senders call `httpUrl`. You use `id` with `devhelm inboxes wait` and the TypeScript client.

## What gets stored

Send any HTTP method to the inbox URL. A path after the token, such as `/hooks/stripe`, is stored as the event path. Query parameters are stored with repeated keys kept.

```bash API theme={null}
curl -X POST "https://api.devhelm.io/api/v1/ingest/<public-token>" \
  -H "Content-Type: application/json" \
  -d '{"hello":"world"}'
```

Each captured event includes:

* HTTP method, path, and query
* Request headers, as received
* The body as text, up to 256 KB (`bodyTruncated` when the text view is cut)
* `sha256` of the raw body bytes

The raw body bytes, not a re-serialized JSON document, are what you download to [verify a signature](/testing/webhooks/verify-signatures).

The reply the sender sees is the inbox mock response (status, content type, body, and delay). Change that reply in [Simulate a failing receiver](/testing/webhooks/simulate-failures).

## When a request is dropped

Set the inbox to `disabled` and new requests are not stored. The sender receives 404.

```bash theme={null}
devhelm inboxes update <inbox-id> --status disabled
```

Turn capture back on with `--status active`.

The inbox records `retentionDays` (the plan default when you omit it on create). That value is how long captured events are kept.

## Next steps

<CardGroup cols={2}>
  <Card title="Assert in a test" icon="code" href="/testing/webhooks/assert-in-tests">
    Wait for the next matching request and read the body.
  </Card>

  <Card title="Webhook Testing API" icon="book" href="/api-reference/webhook-testing">
    Inboxes, events, raw bodies, and wait.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.