Una factura parece un documento ordenado: proveedor, número, fecha, base, impuestos, total y líneas. En la práctica esos datos aparecen en sitios distintos, dentro de un PDF nativo o de una foto hecha con el móvil.
En Tesselia Labs hemos tratado 100 facturas reales en PDF y JPEG. Comparamos una IA propia (OCR y un modelo de visión), Odoo Extract API y un modelo de lenguaje comercial: qué hace cada una, cuánto tarda, cuánto cuesta y qué controles necesita.
Cómo leemos cada factura
El documento pasa por varias etapas. Un PDF nativo se lee como texto y tablas; una imagen pasa por OCR. Después analizamos la extracción. Si los datos son ambiguos o incompletos, entra el modelo de visión. El resultado sale estructurado.
flowchart LR
A([PDF / imagen]) --> B[PDF: texto y tablas]
A --> C[Imagen: OCR]
B --> D[Análisis]
C --> D
D -->|completo| F([Resultado])
D -->|ambiguo o incompleto| E[VLM]
E --> F
classDef start fill:#38bdf8,stroke:#7dd3fc,color:#0b1220,stroke-width:2px
classDef step fill:#1e293b,stroke:#64748b,color:#e2e8f0,stroke-width:1.5px
classDef vlm fill:#7c3aed,stroke:#c4b5fd,color:#ffffff,stroke-width:2px
classDef finish fill:#ff2e7a,stroke:#fb7185,color:#ffffff,stroke-width:2px
class A start
class B,C,D step
class E vlm
class F finish
En la validación comprobamos:
- que el NIF tenga un formato válido;
- que la fecha se pueda interpretar;
- que subtotal más impuestos coincida con el total;
- que estén los campos imprescindibles;
- que el valor extraído esté anclado en el documento.
Resultados operativos
| Solución | Tiempo medio por documento | Coste estimado por documento |
|---|---|---|
| IA propia (OCR, VLM) | 17,7 s | Infraestructura propia |
| Odoo Extract API | 2,3 s | ≈ 0,12 € |
| IA comercial | 16,0 s | ≈ 0,04 € |
La IA propia corre sobre servidores propios. El coste de la IA comercial es una estimación a partir del uso de tokens. Los tiempos van de extremo a extremo: desde que entra el archivo hasta que sale un JSON.
En esta muestra, Odoo Extract fue la opción más rápida. La IA propia y la comercial se mueven alrededor de los 16–18 segundos.
La IA propia da control sobre datos y reglas. Encaja con volumen, privacidad o formatos estables: el OCR resuelve muchos documentos y el modelo de visión entra cuando hace falta.
Odoo Extract API encaja en el flujo contable de Odoo. Su uso depende de créditos, coste por documento y límites del servicio.
La IA comercial interpreta documentos variables y produce una salida estructurada. El coste depende de páginas, tokens y modelo. Puede extraer ella sola o completar lo que el OCR deja a medias.
La calidad de los modelos varía
El rendimiento cambia con las facturas de cada empresa. Unos reciben PDFs digitales de pocos proveedores; otros, fotos, tickets, varias monedas o facturas con decenas de líneas.
Cada proceso da más peso a unos campos. A veces bastan proveedor, fecha y total. En otros, un error en el número, el IVA o una línea invalida la automatización. Extraer un campo y extraerlo bien son cosas distintas: un valor plausible puede estar en el sitio equivocado.
En nuestra prueba, el grado de extracción se movió entre el 55 % y el 92 %, según el método. Ese intervalo describe esta muestra.
Conclusiones
- Se puede automatizar una parte amplia del trabajo. Las tres aproximaciones convierten facturas heterogéneas en datos utilizables.
- Aunque se automatice, se siguen detectando casos complejos. Esos casos requieren revisión humana.
- La solución adecuada depende del caso de uso y de los documentos a procesar.