Improved
[API FE DOM] Flujo de procesamiento asíncrono – Facturas de consumo (E32)
10 days ago by Alanube
Este cambio introduce un flujo asíncrono robusto para el procesamiento de facturas de consumo (E32), diseñado diseñado para:
- Manejar correctamente escenarios de errores de conexión, timeouts o indisponibilidad temporal del ente fiscal (DGII).
- Reducir y corregir casos de falso rechazo, donde un documento puede figurar inicialmente como rechazado o no encontrado, pero luego resultar aceptado por la DGII.
A continuación se detalla el comportamiento completo del sistema.
1️⃣ Recepción de la request inicial
Una vez recibida la solicitud de emisión de una factura E32, pueden ocurrir dos escenarios:
✅ Escenario 1 – Emisión exitosa
- La comunicación con la DGII funciona correctamente.
- El documento es procesado y emitido sin inconvenientes.
- El flujo finaliza normalmente con el estado correspondiente (aceptado o rechazado).
⚠️ Escenario 2 – Error 500
- Ocurre un error 500 (problemas de conexión, timeout u otros errores relacionados con la comunicación con la DGII).
- El documento pasa automáticamente al flujo de procesamiento asíncrono.
2️⃣ Flujo asíncrono de validación y reintentos
🔍 Consulta instantánea
Se realiza una consulta inmediata del documento en la DGII
- Si el documento es encontrado:
- Se actualiza su estado como aceptado o rechazado, según la respuesta de la DGII.
- El flujo finaliza.
- Si el documento no es encontrado, se continúa con el esquema de reintentos.
⏱️ Consultas programadas
En caso de no encontrar el documento, se realizan hasta 3 consultas adicionales:
- A los 5 minutos desde la request inicial
- A los 10 minutos desde la request inicial
- A los 15 minutos desde la request inicial
En cualquiera de estas consultas:
- Si el documento es encontrado, se actualiza como aceptado o rechazado y el flujo finaliza.
- Si no se encuentra, se continúa con el siguiente paso.
3️⃣ Reenvío del documento
Si luego del tercer intento (15 minutos) el documento no fue encontrado, se procede a:
- Reenviar el mismo documento a la DGII.
Posibles resultados del reenvío:
🔁 Error 500 nuevamente
- El flujo vuelve al inicio del proceso asíncrono
- Consultas a los 5, 10 y 15 minutos
- Se entra en un loop controlado hasta obtener un resultado definitivo.
⚠️ Error por documento duplicado
- Se realiza una consulta instantánea adicional del documento en la DGII.
- Esto se debe a que se han detectado casos donde, tras este error, el documento figura como aceptado.
- Resultados posibles:
- Si el documento aparece como aceptado, se actualiza y el flujo finaliza.
- Si no se encuentra, el documento se marca como rechazado y el flujo finaliza.
❌ Otro error distinto a duplicidad
- El documento se marca como rechazado.
- El flujo finaliza.
4️⃣ Finalización del flujo
Se considera que un documento está finalizado cuando:
- Fue marcado como aceptado o rechazado, y
- Finalizó el procesamiento automático del sistema.
A partir de este punto, cualquier gestión adicional debe realizarse de forma manual.
