Un fisco por país, un solo dominio

Emisión fiscal en cuatro países, cada uno con su organismo y sus propios motivos de rechazo: un núcleo de dominio común y un adaptador por fisco, con el rechazo tratado como estado y no como excepción.

Un país, un sistema, otra vez

Cada vez que la operación entraba a un país nuevo, se construía un emisor nuevo. No era pereza. Los organismos de Argentina, Colombia, Bolivia y Costa Rica no se parecen en casi nada: cambia el formato del documento, cambia el esquema de firma, cambian los códigos de rechazo y cambia qué significa exactamente “autorizado”.

El resultado eran bases de código separadas resolviendo el mismo problema de negocio —emitir un comprobante y probar que el fisco lo aceptó— sin compartir una sola línea. Un ajuste en la lógica de reintentos había que escribirlo una vez por país, y en la práctica se escribía bien una o dos.

La pregunta correcta no era cuántos países

Lo que no cambia es el negocio: un comprobante se recibe, se valida, se firma, se envía y queda autorizado o rechazado. Ese ciclo de vida pasó a ser un solo modelo de dominio, idéntico en los cuatro países.

Lo que sí cambia quedó detrás de un puerto, con una implementación por fisco: armado del documento, firma, transporte y traducción de los códigos del organismo a un vocabulario propio. Sumar un país es escribir un adaptador contra un contrato que ya está probado, no levantar un sistema.

El rechazo no es un error: es un estado

En un dominio regulado, la mitad del diseño está en el camino infeliz.

  • El rechazo del organismo dejó de ser una excepción que sube por el stack y pasó a ser un estado esperado del comprobante, con su motivo traducido y su reintento.
  • El reenvío es idempotente por construcción. Cuando el fisco tarda, se cae o responde dos veces, el sistema no puede emitir el mismo comprobante dos veces: eso no es un bug, es una multa.
  • La integridad de los datos fiscales en producción se trató como requisito, no como aspiración. Un comprobante perdido no se recupera pidiendo disculpas.

Qué cambió

  • Emisión en cuatro países desde un único núcleo de dominio, con el cumplimiento normativo de cada uno resuelto en su adaptador.
  • Un cambio en la lógica común —reintentos, estados, trazabilidad— se escribe una vez y llega a los cuatro fiscos.
  • Volumen diario de clientes corporativos, con emisión sostenida en producción y entregas dentro de las estimaciones acordadas.