Skip to Content
v1.0Documentación oficial de la API LX CloudPos · estable en producción
V1ErroresEstrategias reintento

Estrategias de reintento

La API responde con códigos transitorios (429, 5xx) y permanentes (4xx salvo 429). Solo conviene reintentar los transitorios y los errores de red, siempre con backoff exponencial y jitter.

Decisión rápida

function shouldRetry(err) { if (!err.response) return true; // network error const status = err.response.status; if (status === 429) return true; if (status >= 500 && status < 600) return true; return false; }

Backoff exponencial con jitter

const backoffMs = (intento) => { const base = Math.min(1000 * Math.pow(2, intento), 30000); const jitter = Math.random() * 1000; return base + jitter; };

Patrón completo

async function callWithRetry(fn, maxRetries = 5) { for (let i = 0; i < maxRetries; i++) { try { return await fn(); } catch (err) { if (!shouldRetry(err) || i === maxRetries - 1) throw err; // Si hay Retry-After, respétalo const retryAfter = err.response?.headers['retry-after']; const waitMs = retryAfter ? parseInt(retryAfter) * 1000 : backoffMs(i); await sleep(waitMs); } } }