Docupath: Consulta periódica (Polling) — proceso automático
El Flujo ② (Docupath → Gosocket) entrega el documento procesado por push, pero solo ocurre cuando el documento llega a estado approved en Docupath — una transición que requiere revisión manual en el portal, ya que la función de auto-aprobación ("autoreview") de Docupath no se comporta de forma confiable. Por eso el Flujo ② es solo una contingencia manual, no el mecanismo principal.
Este flujo (③) es el proceso automático de la integración: Gosocket consulta directamente el resultado por su cuenta, con una política de reintentos escalonada en tres niveles, sin depender de que alguien apruebe nada a mano en el portal.
Actores del proceso
Ambientes
| Ambiente | Base URL |
|---|---|
| DEV / Pruebas | https://api.docupathdev.app |
| PRD / Producción | https://api.docupath.app |
Mismas credenciales y access_token que el Flujo ① (Gosocket → Docupath) — no se requiere autenticación adicional.
Flujo del proceso
Paso 1 — Autenticación
Este flujo reutiliza el access_token OAuth 2.0 obtenido en el Flujo ①. Si expiró (dura ~1 hora), se renueva con el refresh_token antes de continuar el polling — ver POST /v1/oauth/token. Como la ventana total del polling puede extenderse hasta 15 horas (ver más abajo), el token se renueva varias veces a lo largo del proceso.
Paso 2 — Consultar periódicamente
GET /v1/documents/search?external_id={id} usando el mismo external_id que Gosocket envió en el Flujo ①. La política de reintentos tiene tres niveles anidados:
En el peor de los casos (nunca hay una respuesta válida), Gosocket realiza un total de 125 consultas (5 consultas × 5 reprocesos × 5 repeticiones), con una diferencia de entre 12 y 15 horas entre la primera y la última consulta. Si se agotan todos los reintentos sin que current_status llegue a pending_review o approved, el documento debe marcarse como pendiente/error en la tabla de monitoreo de Gosocket para revisión manual — Docupath no notifica proactivamente cuando un documento queda atascado en processing.
Paso 3 — Obtener XML y PDF
En cuanto la respuesta incluye processed_info, el polling se considera resuelto — no es necesario esperar a approved: