Recomendaciones para integraciones ante escenarios de intermitencia o Timeouts DIAN
Sumario
Recomendaciones para integraciones ante escenarios de intermitencia o Timeouts DIAN
Ante escenarios de intermitencia o lentitud en la respuesta DIAN se describen:
Puntos de falla por timeout:
En un análisis de riesgo de falla decimos que debemos considerar 4 puntos principalmente de fuente de timeouts.
- En el request enviado a TFHKA por parte del sistema: Este caso se identifica porque al volver a enviar un documento a nuestra plataforma o al consultar el estatus del documento, no se informará que existe uno previamente. Existe una baja probabilidad de una transacción que sí se haya recibido, pero por un error interno transaccional la misma se hace rollback y aunque existe evidencia de su recepción la plataforma actuará como si no tuviese registro previo. Sin embargo, este escenario es inferior al 0,01% de nuestras transacciones.
- En el request de TFHKA a la DIAN: Este caso se identifica de forma similar al indicado previamente. Sin embargo, hemos visto que en los momentos de inestabilidad de la plataforma de la DIAN, la cual puede ocurrir ante controles de cambio mayores. Este escenario no sólo corresponde a temas de red (no alcance de los paquetes de red), sino que a veces se debe a procesos no conclusivos dentro del propio sistema de la DIAN (similar a lo indicado previamente para TFHKA, desconocemos una tasa de probabilidad de este escenario).
- En el response de la DIAN a TFHKA: Hemos registrado tiempos largos de validación por parte de la plataforma de la DIAN a veces (muy muy pocas veces) mayores a 10 min. Estos casos se conocen porque la plataforma TFHKA aunque desconoce el estatus conclusivo de la transacción en la DIAN, cuando se consulta por la misma (una vez ha sido validada que puede requerir varios intentos), se obtiene respuesta definitiva de validación por parte de la DIAN.
- En el response de TFHKA a a usuario del sistema: Se detecta porque hay una transacción concluida (excepto que hablemos de escenarios 2 o 3) en nuestra plataforma obtenible por consultas de estatus y descarga de documentos.
Cuando la DIAN presenta retrasos en procesamiento:
Los códigos de error 100/500 responden a dificultad de comunicación con la plataforma de la DIAN o a una respuesta inesperada por parte del proceso de validación de la DIAN. En algún próximo intento transaccional del mismo consecutivo fiscal ocurre lo siguiente:
a) La DIAN nos indica que el documento ya ha sido previamente procesado.
b) La plataforma de TFHKA identificando que es un escenario 3 busca ejecutar la reconstrucción transaccional de ese consecutivo fiscal indicando como válido el registro que originó la transacción y retornando el UBL que le corresponde a esa transacción.
c) Dado que el intento transaccional que disparó el proceso de reconstrucción es distinto a nivel de contenido del documento que había sido previamente validado en la DIAN, pero que no se había podido obtener estatus conclusivo se puede producir disparidad o inconsistencia de información en el documento.
d) The Factory HKA Colombia cuenta en sus logs múltiples intentos transaccionales en sus entradas, pero solo uno de ellos es el correctamente validado por la DIAN (El primero entregado efectivamente a la DIAN que cumple las condiciones de validación, es importante resaltar que previamente pudo haber otros casos que fueran rechazados por validación DIAN o que quedaran en el escenario 2). Dado que ese proceso de validación concluyó en un timeout o en un error inesperado de conexión la misma podría estar en los escenarios 2 y 3.
e) El siguiente intento transaccional es el que "revela" que el escenario realmente era el 3 y es requerido la reconstrucción transaccional con el documento previamente validado. (Esto ocurre porque el reintento de la transacción se genera antes de que nuestros procesos de reconstrucción automáticos puedan hallar de la DIAN estatus definitivo). Si esto último ocurre entonces la respuesta de nuestra plataforma es "documento previamente generado" evitando que el escenario sea aún más complejo.
Recomendaciones:
1) Código 102: Número de documento inválido:
2) Código 200 con esValidoDIAN = true:
3) Código 200 con esValidoDIAN = false:
Generalmente cuando la DIAN está intermitente aumentan sus tiempos de respuesta considerablemente, lo cual puede ocasionar time Outs en los puntos 2, 3 y 4 como se muestra en la siguiente imagen:
Cuando se presentan time Out en los enlaces 2, 3 y 4 (comunicación con la TFHKA-DIAN), es donde resulta más complejo debido a los siguientes escenarios:
- Vencimiento del tiempo de espera de conexión entre TFHKA-DIAN (enlace 2), lo cual hace que el documento quede en espera ó en proceso y el ERP pudo haber recibido en código 100, 103 ó una excepción por time out, en estos escenarios en la mayoría de los casos el ERP puede hacer el reenvío y el documento será procesado ya que nuestro WS al detectar si el documento ya existe en la DIAN realiza un proceso de reconstrucción para cerrar la transacción correctamente.
- Se recibe respuesta de la DIAN pero con una estructura no esperada (enlace 3), ejemplo que el app Response (validación DIAN) llegue vacío ó la DIAN nos retorne un código no esperado producto de la intermitencia. Este escenario es el más complejo y es en cual a veces muchas facturas tienen que regenerarse de manera manual, muchas veces en esta situación nuestra plataforma retorna incluso un 200 y un CUFE pero esto no quiere decir que el documento fue autorizado por la DIAN ya que en la propiedad esValidoDIAN se retorna en 'false'.
Adicional, es importante tener presente siempre el escenario o la facturación por contingencia ya que ante intermitencia o latencia tecnológica este esquema de facturación está definido en la normativa.