POST de creación del Client API exigen la cabecera Idempotency-Key.
400 IDEMPOTENCY_KEY_REQUIRED. La clave admite hasta 160 caracteres.
Cómo se comporta
EdTools guarda, por API key y por clave, un hash estable del cuerpo junto con el método, el path y la respuesta que dio.Misma clave, misma petición
Se devuelve la respuesta original, con su mismo código de estado. No se crea nada nuevo. Reintenta tranquilo.
Misma clave, petición distinta
409 IDEMPOTENCY_CONFLICT. Cambió el cuerpo, el método o el path: EdTools se niega a adivinar cuál de las dos querías.Los seis endpoints que la exigen
Los demás
POST del Vault (upload-url, complete, links) no la piden: operan sobre un recurso que ya existe y son seguros de repetir por su propia forma.
Cómo elegir la clave
Que sea determinista por operación de negocio, no aleatoria. Si la generas con un UUID nuevo en cada intento, no tienes idempotencia: tienes duplicados con nombres distintos.Cuando tienes un identificador estable, mejor el upsert
Si el sistema externo ya tiene su propio id, no crees: sincroniza. LosPUT /external/{externalId} son idempotentes por naturaleza — el identificador es la clave.
