Manejo de rechazos
Cuando Hacienda rechaza un comprobante, LX CloudPos te lo notifica por webhook con "ind_estado": "rechazado" y el motivo en el campo mensaje. Tu integración debe registrarlo, alertar al equipo y, según la causa, dejarle al usuario la opción de corregir y reemitir.
El siguiente handler persiste el estado localmente, alerta a Slack y deja un comentario donde decidir qué automatizar:
async function manejarRechazo(evento) {
await db.facturas.update({
where: { clave: evento.clave },
data: { estadoLocal: 'rechazado', mensajeError: evento.mensaje }
});
// Notifica al equipo
await alertarSlack({
canal: '#alertas-facturacion',
mensaje: `Comprobante rechazado: ${evento.clave}\nMotivo: ${evento.mensaje}`
});
// Si es por error del cliente (datos incorrectos),
// notificá al usuario para que corrija y reemita
}Antes de procesar el evento, verificá la firma HMAC del webhook y aplicá deduplicación por nonce; de lo contrario un reintento puede dispararte dos alertas para el mismo rechazo.