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

# Idempotency

> Retry requests that move money without double charges, transfers or payouts.

Every request that moves money takes an `Idempotency-Key` header. Use a new value for every new payment, transfer or payout (a UUID is ideal). If your request times out, send it again **with the same key**: you get the first result back instead of a second payment, transfer or payout.

```http theme={null}
Idempotency-Key: 6f1c2b9e8a6d4c1f9b0e3a7d5c2f8e10
```

| Request | Rules |
| - | - |
| Payments | Required, 8 to 255 characters. Same key with a different body returns `422 idempotency_key_reused`. |
| Transfers | Required, up to 64 characters. Same key for a different transfer returns `422 idempotency_key_reused`. A repeat of the same transfer returns `200` with the header `Idempotent-Replayed: true`. |
| Payouts and refunds | The same as transfers. |

> [!NOTE]
>
> Payment links move no money, so their endpoints take no `Idempotency-Key`. Sending the same request twice makes two links.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.