El reto
Una asesoría que lleva la contabilidad de varias empresas dedicaba buena parte de su tiempo a una tarea repetitiva: descargar facturas del correo, abrirlas, leerlas y registrar a mano cada asiento. Cada cliente enviaba los documentos en formatos distintos (PDF, escaneos, fotos hechas con el móvil) y el volumen crecía cada trimestre.
A eso se sumaba la llegada de VeriFactu, que obliga a revisar cómo se emiten y registran las facturas. Los programas que usaban no encajaban bien con un trabajo multiempresa ni permitían automatizar la entrada de documentos.
El reto no era solo leer facturas. Había que respetar el plan de cuentas de cada empresa, saber si cada documento era una factura emitida o recibida, no generar asientos duplicados cuando la misma factura llegaba dos veces y, sobre todo, no dar por buena una lectura equivocada. En contabilidad, un error que pasa sin que nadie lo vea sale más caro que teclear.
La solución
Desarrollamos una aplicación de contabilidad con inteligencia artificial pensada para trabajar con muchas empresas a la vez. La app se conecta por IMAP a los buzones donde llegan las facturas (también se pueden subir a mano), descarta los ficheros ya importados y lee cada documento por el camino más fiable: si es una Facturae en XML, toma los datos directamente; si lleva el QR tributario de VeriFactu o TicketBAI, esos datos mandan; en el resto combina OCR (Tesseract y pdfplumber) con Claude.
Doble lectura y validación cruzada. Cada factura la leen dos lectores independientes: el OCR con la plantilla aprendida del proveedor y la IA. Si coinciden en los campos clave (NIF, número, fecha, base, IVA, IRPF, total, vencimiento y desglose de impuestos), la lectura se da por fiable. Si no coinciden, entra un segundo modelo de IA que lee sin pistas y desempata campo a campo. Solo se valida sola la factura en la que todo cuadra; el resto va a una cola de revisión con lo que leyó cada lector y el motivo concreto.
Emitida o recibida, sin preguntar. La app compara los NIF del documento con el de la empresa y decide si es una factura emitida o recibida. Cuando hay dudas, no lo adivina: pide confirmación y mueve el fichero a su carpeta.
Aprende de cada corrección. Cuando el equipo valida o corrige una factura, la app guarda una plantilla del proveedor (dónde están sus datos, sus cuentas contables, su IVA e IRPF habituales) y le pasa la corrección a la IA como pista la próxima vez. Al aprender un proveedor nuevo, relee las facturas suyas que esperan en la cola y valida las que quedan listas. Además, conoce el patrón habitual de cada proveedor y avisa de lo que se sale de él; si se escapa un error, ese proveedor vuelve a revisión manual hasta que demuestra ser fiable. Una muestra de las facturas validadas solas se marca para auditoría: así la asesoría mide la tasa de error real en lugar de suponerla.
Alrededor de ese núcleo está lo que una asesoría usa cada día: importación de extractos bancarios, series de emisión, facturas recurrentes, diarios, informes fiscales, perfiles de exportación y copias de seguridad. La emisión está preparada para VeriFactu.
El backend está hecho en Python con FastAPI y SQLAlchemy, empaquetado con Docker y ya en producción. La arquitectura multiempresa permite usarla como base de un producto SaaS. Cada factura corregida entra en una batería de pruebas con facturas reales que se vuelve a pasar en cada cambio.
La validación automática se puede desactivar: entonces todo queda como propuesta y el equipo lo confirma, una a una o en bloque. La IA hace el trabajo repetitivo y la responsabilidad contable sigue en manos de profesionales.