La aceptan POST /citations, POST /calls, POST /sanctions y POST /webhooks. Sin la cabecera, el POST va tal cual.
La clave tiene de 1 a 100 caracteres: letras, números, _, -, : y punto. Si no, 400 invalid_idempotency_key. Un UUID nuevo por operación va bien.
Es por servidor y se guarda al menos 24 horas.
La misma clave con otro cuerpo o en otra ruta es un error tuyo, no un reintento: 422 idempotency_key_reused. El orden de los campos del JSON no cuenta.
Mientras la primera sigue en curso, 409 idempotency_in_progress: espera y reintenta.
Un error 4xx también es la respuesta a esa clave y se repite igual. Un 5xx no se guarda: reintentar lo vuelve a intentar de verdad.
En las llamadas del CAD, la clave se guarda además en la propia llamada: un reintento nunca crea otra.