Guía
Idempotencia
Si su sistema reintenta requests por timeouts de red, evite aplicar dos veces el mismo cambio con un Idempotency-Key.
Envíe un identificador único en el header Idempotency-Key — sirve cualquier string estable de hasta 255 caracteres: un UUID, o una key derivada del contenido del lote (como hace el script del catálogo de 1000) — y Automeli recuerda la respuesta durante 24h. Reintentos posteriores con el mismo body devuelven la respuesta cacheada, sin volver a aplicar el cambio.
header
Idempotency-Key: 2c4e2f7a-8b1d-4e7c-9c4f-1d2e3f4a5b6c- →Misma key + mismo body: devuelve la respuesta original. Header
Idempotent-Replay: true. - →Misma key + body distinto:
409 E_IDEMPOTENCY_CONFLICT. - →Key nueva: procesa normal y cachea.
Aplica a los endpoints de escritura idempotentes de v2: POST /v2/products, POST /v2/products/test/promote, PATCH /v2/products/sync-status, POST /v2/products/ml-actions y su cancelación, y el reintento y la cancelación de jobs (POST /v2/products/jobs/{job_id}/retry y
/cancel). Es especialmente importante en los dos primeros: sin él, un reintento por timeout crea un job duplicado y consume créditos de más. Reutilice la misma key solo para reintentar el mismo request, no para uno nuevo.En
POST /v2/products/ml-actions el header es obligatorio para close y republish reales (sin dry_run): sin él responde 428 E_ACTION_IDEMPOTENCY_KEY_REQUIRED. Repetir un republish sin key crearía publicaciones duplicadas en Mercado Libre.