# Test a webhook

> Send a signed test event or a test run of your Flow to your webhook receiver, and check each delivery attempt in Outbox.

Breadcrumb: Webhooks › Testing · Updated: 2026-10-18
Docs index: https://docs.cevoid.com/developers/llms.txt

Test your receiver with real signed requests before you rely on it. A test event checks the connection and your signature code; a test run of your Flow sends the event your receiver will get in production.

## Send a test event

1. Go to Settings → Integrations → Cevoid API.
2. Open the menu of your webhook destination and choose Send test, then Send test again to confirm. Result: Cevoid queues a signed `cevoid.test` request and opens its delivery.
3. Check the attempt and your receiver's response in the delivery.

The destination must be enabled and its URL must pass the [URL checks](https://docs.cevoid.com/developers/webhooks/set-up.md#url-requirements). A test event is signed, retried and logged like any other delivery.

## Test event body

A test event uses the same envelope as every other event, with `type: "cevoid.test"`. `data` holds a fixed message instead of resources, and there is no `origin`, because no Flow sent it. `id` and `created_at` change with every test:

```json title="Example payload"
{
  "created_at": "2026-08-03T12:00:00.000Z",
  "data": {
    "message": "Cevoid webhook destination test"
  },
  "id": "d8177c1d-39da-4c4d-93cd-5964043735e4",
  "type": "cevoid.test",
  "version": 1
}
```

- `type` (`string`, required): The event type, always `cevoid.test`.
- `id` (`string<uuid>`, required): Unique event ID, the same value as the `webhook-id` header. Retries keep it; a replay gets a new one.
- `created_at` (`string<date-time>`, required): When the delivery was scheduled to send, in ISO 8601 UTC: for a Flow, when its webhook action ran, after any Wait step. Retries and replays keep it.
- `version` (`integer`, required): Payload version, currently `1`.
- `data` (`object`, required): A fixed message instead of resources.
  - `data.message` (`string`, required): Always `Cevoid webhook destination test`.

To check your signature code without sending a request, use the [HMAC test vector](https://docs.cevoid.com/developers/webhooks/verify-signatures.md#hmac-test-vector). It signs this body.

## Test a flow

Choose Trigger test run in the menu of a Flow to run it once against a subject you pick, such as an order. How the webhook action behaves depends on the version you test:

- **Current draft:** Cevoid builds the payload and checks it, but sends nothing.
- **Live version:** Cevoid sends a real signed request, with the Flow's trigger as `type`, `origin.flow` set and the subject's resources in `data`. For order triggers you can also test with a mock order.

In Outbox, deliveries of a test run show a _Test_ badge. Your receiver gets no marker in the request, so test against a receiver or a destination that does not touch production data.

## Delivery log

Outbox lists every attempt with its status, duration and the first 2,048 bytes of your response. Choose View deliveries in the destination's menu to see only that destination's deliveries, or filter Outbox by _Webhook destination_. See [Retries and replays](https://docs.cevoid.com/developers/webhooks/retries-and-replays.md#delivery-log) for what each attempt keeps.

To send a failed test again after you fix your receiver, see [Retry and replay](https://docs.cevoid.com/developers/webhooks/retries-and-replays.md#retry-and-replay).

## Receive webhooks on your machine

Cevoid sends only to public HTTPS URLs, so it cannot reach `localhost`. To test a receiver running on your machine, expose it through a tunnel service that gives you a public HTTPS URL, and create a separate destination for that URL. Remove the destination from your Flows when you are done.

## Troubleshooting

- **No request arrives:** confirm the destination is enabled and the Flow is published, then check Outbox for the delivery and its status.
- **Send test is refused:** enable the destination and check its URL against the [URL requirements](https://docs.cevoid.com/developers/webhooks/set-up.md#url-requirements).
- **Redirect or network error:** point the destination at the final public HTTPS URL. Redirects are not followed and private addresses are blocked.
- **Signature mismatch:** see [Verify webhook signatures](https://docs.cevoid.com/developers/webhooks/verify-signatures.md#troubleshooting).

## Related articles

- [Outbox](https://docs.cevoid.com/flows/outbox.md)
- [Flow runs](https://docs.cevoid.com/flows/flow-runs.md)

---

Canonical: https://docs.cevoid.com/developers/webhooks/testing
