# Resend one delivery

Source: https://checkslip.com/en/docs/redeliver-delivery

POST `https://api.checkslip.com/api/webhooks/deliveries/{delivery_id}/redeliver`

API key

Sends the same payload, byte for byte, again with the original webhook-id but a new webhook-timestamp and signature, and starts the retry schedule over. Works on FAILED and SUCCEEDED deliveries. Your system receives the message again; without deduplication on webhook-id it records it twice. An Idempotency-Key is required; the same key for the same delivery returns the first result and does not queue again. It cannot be resent when the endpoint is disabled (ENDPOINT_DISABLED), deleted (ENDPOINT_DELETED), the message's data has been deleted (PAYLOAD_EXPIRED), or the original message was not kept (PAYLOAD_INTEGRITY_MISMATCH). Needs an API key with webhook:manage.

## Parameters

| Field | In | Type | Required |
| --- | --- | --- | --- |
| `delivery_id` | path | `string` | yes |
| `traceparent` | header | `string` | no |
| `Idempotency-Key` | header | `string` | yes |

## Responses

### 202 `application/json`

| Field | Type | Required |
| --- | --- | --- |
| `id` | `string` | yes |
| `message_id` | `string` | yes |
| `endpoint_id` | `string` | yes |
| `event_type` | `slip.checked \| webhook.test` | yes |
| `request_id` | `string (uuid) \| null` | yes |
| `status` | `PENDING \| RETRYING \| SUCCEEDED \| FAILED \| CANCELLED` | yes |
| `attempt_count` | `integer` | yes |
| `next_attempt_at` | `string (date-time) \| null` | yes |
| `last_attempt_at` | `string (date-time) \| null` | yes |
| `last_http_status` | `integer \| null` | yes |
| `created_at` | `string (date-time)` | yes |

### Possible errors

400 401 403 404 409 410 422

An error as Problem Details. All codes are listed at [Error codes](https://checkslip.com/en/docs/errors)

**cURL**

```bash
curl -X POST https://api.checkslip.com/api/webhooks/deliveries/string/redeliver \
  -H "Authorization: Bearer $CHECKSLIP_API_KEY" \
  -H "Idempotency-Key: order-1042-slip-1"
```

**Node.js**

```javascript
const res = await fetch("https://api.checkslip.com/api/webhooks/deliveries/string/redeliver", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CHECKSLIP_API_KEY}`,
    "Idempotency-Key": "order-1042-slip-1",
  },
});
const data = await res.json();
```

**Python**

```python
import os

import requests

res = requests.post(
    "https://api.checkslip.com/api/webhooks/deliveries/string/redeliver",
    headers={
        "Authorization": f"Bearer {os.environ['CHECKSLIP_API_KEY']}",
        "Idempotency-Key": "order-1042-slip-1",
    },
)
data = res.json()
```

```json
{
  "id": "string",
  "message_id": "string",
  "endpoint_id": "string",
  "event_type": "slip.checked",
  "request_id": "0b6c2f5e-8a41-4d1e-9c3a-5f7e2d18a6b4",
  "status": "PENDING",
  "attempt_count": 1,
  "next_attempt_at": "2026-11-05T09:30:00+07:00",
  "last_attempt_at": "2026-11-05T09:30:00+07:00",
  "last_http_status": 1,
  "created_at": "2026-11-05T09:30:00+07:00"
}
```
