---
title: Idempotencia
description: Reintente una compra de forma segura, sin comprar dos veces.
sidebar:
  order: 4
---
Un error de red puede dejarle con la duda de si una compra se realizó. Por eso, cada `POST /offsets` requiere un encabezado `Idempotency-Key`: un valor único por compra, como un UUID.

```txt
Idempotency-Key: 7f8d0c6e-2b1a-4e9f-9d3c-5a6b7c8d9e0f
```

## Qué sucede al reintentar [#what-happens-on-a-retry]

| Usted envía | Usted recibe |
| --- | --- |
| Una clave nueva | Una compra nueva (`201`). |
| La misma clave y el mismo cuerpo | La primera compra otra vez (`201`), con `Idempotent-Replayed: true`. No se compra nada dos veces. |
| La misma clave y un cuerpo diferente | `409 idempotency_key_reused`. Use una clave nueva para una compra nueva. |

La repetición devuelve la compra en su estado actual, por lo que su `status` puede haber pasado de `processing` a `placed`.

## Para tener en cuenta [#good-to-know]

- Las claves tienen de 1 a 255 caracteres ASCII imprimibles, y las conservamos de forma permanente, por modo.
- El orden de las claves y los espacios en el cuerpo no importan: `{"kg":1,"reference":"a"}` y `{ "reference": "a", "kg": 1 }` son la misma solicitud.
- Una compra que falla (por ejemplo, `402 insufficient_balance` o un error de validación) no guarda nada. Después de recargar, puede reintentar con la misma clave.
- Dos solicitudes con la misma clave en el mismo momento son seguras: una realiza la compra y la otra recibe la repetición.
