# Send a test event

`POST https://api.parasend.com/v1/webhook_endpoints/{id}/test`

Source: https://parasend.com/docs/api/webhooks/test

Authentication: `Authorization: Bearer <API key>` (a `ps_test_` key in test mode, `ps_live_` in live mode).
Send an `Idempotency-Key` header: a retry with the same key returns the first answer.

Sends one signed sample event of `event_type` (any type; `delivery.created` by default), marked with the header `Parasend-Test: true`, and waits up to 10 seconds for the answer. Returns the attempt, the event sent, and the first 512 bytes of your endpoint's response as text (`response_excerpt`), which is not stored. The sample event is not kept: it cannot be replayed and never appears in GET /events. The attempt is listed in the endpoint's attempts with `test: true`.

## Path parameters

- `id` (string, required): The webhook endpoint's ID, starting `whk_`.

## Body (application/json)

- `event_type` (string, optional): Every event type. `delivery.*` events follow a delivery from creation to its end, `batch.*` a batch, and `member.*`, `email_sender.*` and `recipient_domain.*` your account. `delivery.email_opened` is a hint (the e-mail client loaded an image), never proof of receipt; `delivery.confirmed` is the recipient confirming receipt. `delivery.auth_failed` carries a `reason`, such as `personal_code_mismatch` or `id_document_mismatch`. The `secret.*`, `request.*` and `lookup.*` events belong to features that are not available yet. New types may be added: ignore types you do not know. One of: `delivery.created`, `delivery.rejected`, `delivery.notified`, `delivery.opened`, `delivery.email_opened`, `delivery.auth_failed`, `delivery.confirmed`, `delivery.downloaded`, `delivery.delivered`, `delivery.reminded`, `delivery.bounced`, `delivery.expired`, `delivery.revoked`, `delivery.consignment_failed`, `delivery.evidence_sealed`, `delivery.evidence_timestamp_deferred`, `delivery.evidence_timestamp_recovered`, `delivery.paper_pending_approval`, `delivery.paper_dispatched`, `delivery.paper_failed`, `document.previewed`, `batch.finalized`, `batch.completed`, `lookup.completed`, `consent.granted`, `consent.withdrawn`, `invitation.sent`, `link.opened`, `otp.sent`, `otp.verified`, `otp.locked`, `secret.attached`, `secret.available`, `secret.revealed`, `secret.copied`, `secret.expired`, `secret.exhausted`, `secret.revoked`, `request.sent`, `request.opened`, `request.fulfilled`, `request.expired`, `request.closed`, `request.reopened`, `deletion.scheduled`, `recipient_domain.verified`, `recipient_domain.degraded`, `recipient_domain.failed`, `member.suspended`, `member.restored`, `member.removed`, `batch.cancelled`, `batch.policy_changed`, `delivery.policy_changed`, `email_sender.verified`, `email_sender.degraded`, `email_sender.failed`, `email_sender.restored`.

## Example: Send a test delivery.confirmed

```bash
curl -X POST "https://api.parasend.com/v1/webhook_endpoints/whk_01M6R27T4KCSN7M0CHFGVH7JRA/test" \
  -H "Authorization: Bearer $PARASEND_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "event_type": "delivery.confirmed"
  }'
```

```js
const res = await fetch('https://api.parasend.com/v1/webhook_endpoints/whk_01M6R27T4KCSN7M0CHFGVH7JRA/test', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.PARASEND_KEY}`,
    'Idempotency-Key': crypto.randomUUID(),
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    event_type: 'delivery.confirmed',
  }),
});
const data = await res.json();
```

## Response 200

The test attempt.

```json
{
  "id": "wha_01M6R27T5AHW8DQ6B11PRVD7NA",
  "event_id": "evt_01M6R27T58P38M9BDCG5V1STPB",
  "event_type": "delivery.confirmed",
  "attempt_number": 1,
  "ok": true,
  "status_code": 200,
  "latency_ms": 1,
  "replay": false,
  "test": true,
  "failure_stage": null,
  "error": null,
  "created": "2026-11-06T09:15:05.771Z",
  "next_retry_at": null,
  "exhausted": false,
  "event": {
    "id": "evt_01M6R27T58P38M9BDCG5V1STPB",
    "object": "event",
    "type": "delivery.confirmed",
    "created": "2026-11-06T09:15:05.768Z",
    "resource": {
      "type": "delivery",
      "id": "dlv_00000000000000000000000000"
    },
    "batch_id": null,
    "reason": null,
    "data": null
  },
  "response_excerpt": "ok"
}
```

Errors: one shape, `{"error": {type, code, message, param, request_id}}`; every code is listed at https://parasend.com/docs/errors.
