Idempotencia & rate limits
Idempotencia
POST /messages exige la cabecera Idempotency-Key (única por operación; hasta 255 caracteres). Reintentar con la misma clave y el mismo payload devuelve 200 con status: "duplicado_identico" y no vuelve a enviar. Reusar la misma clave con un payload distinto devuelve 409 idempotency_conflict.
Usa un identificador estable por intento (p. ej. un UUID por mensaje) y reintenta con la MISMA clave ante errores de red — nunca duplicarás el envío.
Rate limits
- 2 mensajes/segundo por número de WhatsApp.
- 1200 mensajes/minuto por workspace.
- Ambos aplican; el más restrictivo gana. Al superarlos:
429 rate_limit_exceededcon cabeceraRetry-After(segundos). - Cuota mensual del plan agotada:
429 monthly_message_limit_exceeded(los mensajes de WhatsApp los factura Meta a tu WABA; la cuota es un límite comercial del plan).
Cabeceras
X-Request-Id— en toda respuesta; úsalo para soporte/trazabilidad.Retry-After— en429de rate limit; segundos hasta reintentar.