Skip to Content
v1.0Documentación oficial de la API LX CloudPos · estable en producción
V1Cookbook RecetasPolling vs webhook

Polling vs webhook

Hacienda demora segundos o minutos en resolver un comprobante. Tenés dos formas de enterarte del resultado: consultar repetidamente (polling) o recibir una notificación (webhook). El primero es simple pero caro y lento; el segundo es la opción recomendada cuando podés exponer un endpoint público.

Patrón polling (no recomendado)

Consultás el detalle del comprobante en bucle hasta que cambie de estado. Sirve para pruebas locales o cuando no podés exponer un endpoint público.

async function esperarHacienda(clave, maxIntentos = 30) { for (let i = 0; i < maxIntentos; i++) { const { data } = await axios.get(`/api/v1/facturas/${clave}`); if (data.estadoHacienda === 'aceptado') return data; if (data.estadoHacienda === 'rechazado') throw new Error('Rechazado'); await sleep(30000); // 30s } throw new Error('Timeout esperando Hacienda'); }

Patrón webhook (recomendado)

Emitís y olvidás. LX CloudPos te notifica cuando Hacienda responde y vos solo lees el resultado de tu propia base de datos.

// 1. Emisor: emite y olvida await emitirFactura(data); // 2. Receptor webhook: marca el resultado app.post('/webhooks/lxs', verificarHmac, async (req, res) => { const evento = parsearEvento(req.body); await db.facturas.update({ where: { clave: evento.clave }, data: { estadoFinal: evento.ind_estado } }); res.status(200).end(); }); // 3. Frontend: consulta el estado de la BD propia, sin tocar la API