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

# Webhooks

> Set your endpoint, copy your signing secret, send a test event, and replay any delivery that didn't land.

**Dashboard → Webhooks** is where you point Minisend at your server and see everything it has sent you. If you'd rather your code was told about a payment than have to keep asking, this is the page to set up first.

For what the events contain and how to check a signature, see [Webhooks](/webhooks/overview).

## Endpoint

Paste your HTTPS URL, something like `https://yourbusiness.com/webhooks/minisend`, and save. Minisend starts posting signed events to it right away.

You can leave it blank if you'd rather poll the [status endpoint](/api-reference/get-checkout) instead. That works perfectly well; it just means your code has to keep asking rather than being told.

## Secret

Your signing secret is generated the first time you open this page and shown once, in a copy-once banner like an API key. Copy it then and store it wherever your server reads its configuration from.

**Regenerate** rotates it. The old value stops working immediately and every signature after that uses the new one, so update your server at the same time rather than later.

<Tip>
  Lost it? Regenerating is the way back. There's no way to read an existing secret, which is the same reason it's safe to store.
</Tip>

## Send a test event

The **Send test** button fires a signed sample payload at your endpoint on demand. It's the quickest way to confirm your signature check works before a real payment depends on it.

A test event is signed exactly like the real thing, but it isn't recorded as a delivery and it's never retried.

## Deliveries

Every delivery Minisend has attempted is listed here, newest first, with the event, the status, and the response your endpoint gave. It's the first place to look when something didn't reach you.

| What you see  | What it means                                      |
| ------------- | -------------------------------------------------- |
| **Delivered** | Your endpoint answered `2xx`                       |
| **Retrying**  | An attempt failed and the next one is scheduled    |
| **Failed**    | All 8 attempts were used, or the delivery aged out |

The [retry schedule](/webhooks/overview#retries) runs 8 attempts over roughly 33 hours, so a short outage on your side usually resolves itself with nothing for you to do.

## Replay

If a delivery failed and you've since fixed your endpoint, **Replay** sends it again rather than making you wait out the schedule. It resends the exact bytes originally signed, under the same `X-Minisend-Event-Id`, with a fresh timestamp and signature so your freshness check still passes.

Replay is available to owners and admins.

<Note>
  After five failed deliveries in a row, this page flags your endpoint as down and we get a heads-up too. Fix the endpoint, then replay what was missed rather than waiting for the remaining attempts.
</Note>
