# Send a batch again

`POST https://rest.wordplus.cloud/wordplus/realtime/webhooks/{id}/resend`

Sends a batch your server did not take again now, the same events with the same ids. A batch is kept while it is
tried again, and three days after the tries end.

In the packages: `realtime.webhooks.resend( id )`.

## Parameters

| Name | In | |
|---|---|---|
| `id` (required) | path | The id of the batch, from its delivery. |

## Answer

What the webhook did with it: taken with a 2xx, or not, with its HTTP status (0 when nothing answered) and `error` (`timeout`, `unreachable`, `not_public`).

```json
{
  "ok": true,
  "delivered": true,
  "status": 204
}
```

## Refusals

- **400**: `bad_request`, `bad_room`: the request is not one the API takes. `reserved`: an event name kept for the room itself.
- **401**: `missing_signature`, `stale_signature` (a clock off by more than 5 minutes), `unknown_site`, `bad_signature` (a wrong secret, or a body or path other than the one signed).
- **403**: `not_included`: your plan does not include it.
- **404**: `not_found`: nothing by that name or id now.

## Examples

`wordplus()` (in Go `app.Request()`) signs and sends the request: https://docs.wordplus.cloud/api/signing/ has it in each language.

**curl**

```bash
wordplus POST '/wordplus/realtime/webhooks/7f9c2ba4-e88f-4c1b-9a2d-5b3e6f1a0c8d/resend'
```

**Node**

```js
const { delivered } = await wordplus('POST', '/wordplus/realtime/webhooks/7f9c2ba4-e88f-4c1b-9a2d-5b3e6f1a0c8d/resend');
```

**Python**

```python
delivered = wordplus("POST", "/wordplus/realtime/webhooks/7f9c2ba4-e88f-4c1b-9a2d-5b3e6f1a0c8d/resend")["delivered"]
```

**PHP**

```php
$delivered = wordplus('POST', '/wordplus/realtime/webhooks/7f9c2ba4-e88f-4c1b-9a2d-5b3e6f1a0c8d/resend')['delivered'];
```

**Go**

```go
answer, err := app.Request("POST", "/wordplus/realtime/webhooks/7f9c2ba4-e88f-4c1b-9a2d-5b3e6f1a0c8d/resend", nil)
```

