Cuando un sistema depende de un servicio externo que no controlas —y menos aún si de él depende una obligación legal del usuario— la pregunta de diseño no es cómo llamarlo, sino qué pasa cuando no contesta.
En facturación electrónica esa pregunta tiene consecuencias inmediatas: un comprobante que se pierde entre la emisión y la autorización es un problema fiscal para el emisor.
Aislar la frontera
La primera decisión es tratar la comunicación con el organismo como una frontera del sistema, no como una llamada más. El documento se persiste antes de intentar transmitirlo, con un estado propio que sobrevive a la caída del servicio remoto.
A partir de ahí, la transmisión es un proceso asíncrono con cola, reintentos con retroceso exponencial y un límite explícito antes de escalar el caso a intervención humana.
Estados que reflejan la realidad
El error frecuente es modelar dos estados —enviado y autorizado— cuando la realidad tiene más: generado, firmado, en cola, transmitido, en espera de respuesta, autorizado, rechazado y devuelto.
Modelar el estado intermedio es lo que permite responderle al usuario dónde está su comprobante en lugar de mostrar un error genérico.
Observabilidad desde el primer día
Sin métricas de cola, tasa de rechazo y tiempo de autorización, la degradación del servicio remoto se detecta cuando llama el primer cliente. Con ellas, se detecta antes y se comunica.