DocuExtract
Extrae automáticamente los datos fiscales clave de facturas y tickets.
El Problema
La captura manual de datos de facturas para contabilidad es lenta y propensa a errores humanos, y las empresas necesitan un flujo confiable incluso cuando el OCR no está seguro del resultado.
La Solución
DocuExtract permite subir una factura o ticket y usa OCR para extraer los datos fiscales clave, dejándolos listos para contabilidad. Cuando la confianza del reconocimiento es baja, el documento pasa a un flujo de revisión humana en vez de guardar datos poco fiables.
Arquitectura / Engineering
- Diseñé el pipeline de procesamiento (subida → OCR/extracción → parsing → persistencia) separando el procesamiento server-side de la UI.
- Integré Tesseract.js (español + inglés) para OCR sobre imágenes, y extracción de la capa de texto nativa de PDFs con pdf-parse.
- Construí un sistema de confianza combinando fiabilidad del OCR y campos fiscales detectados, que deriva automáticamente a revisión humana por debajo de un umbral configurable.
- Implementé regex especializadas para identificar NIT/RIF/CUIT/RFC/RUC, fechas (numéricas y en texto) y montos según palabras clave contables.
- Aislé los datos por empresa con Row Level Security de Supabase y serví los documentos originales mediante URLs firmadas de corta duración desde un bucket de Storage privado.
- Mantuve la `service_role key` de Supabase exclusivamente en Route Handlers de servidor, sin exponerla nunca al navegador.
Funcionalidades Clave
- Subida de facturas/tickets con validación de tipo y tamaño de archivo.
- OCR sobre imágenes (Tesseract.js) y extracción de texto nativo en PDFs.
- Extracción y normalización de campos fiscales: identificación fiscal, fechas, montos e ítems.
- Scoring de confianza con derivación automática a revisión humana.
- Revisión y validación manual del documento antes de marcarlo como completado.
- Exportación de facturas a CSV.
Retos Técnicos
- Separar el procesamiento server-side (OCR, parsing, acceso a Storage) de la UI, para que la `service_role key` nunca llegue al cliente.
- Diseñar el cálculo de confianza combinando la fiabilidad del OCR con la cantidad de campos clave detectados, en vez de un umbral arbitrario único.
- Aislar los datos por empresa con RLS para que ningún usuario pueda leer o escribir facturas de otra empresa aunque conozca su ID.
Resultado / Estado Actual
Desplegado en Vercel. El flujo completo —subida, OCR/parsing, persistencia y revisión humana— funciona de extremo a extremo sobre imágenes y PDFs con capa de texto nativa.
Limitación conocida
Los PDFs escaneados sin capa de texto nativa no se rasterizan a imagen para aplicarles OCR, ya que esa conversión suele requerir dependencias nativas (poppler-utils) que complican el despliegue serverless. Estos documentos se marcan automáticamente como pendientes de revisión manual; añadir un worker dedicado para rasterizarlos es la mejora documentada para una siguiente iteración.