El repte
Una assessoria que porta la comptabilitat de diverses empreses dedicava bona part del temps a una tasca repetitiva: descarregar factures del correu, obrir-les, llegir-les i registrar a mà cada assentament. Cada client enviava els documents en formats diferents (PDF, escanejos, fotos fetes amb el mòbil) i el volum creixia cada trimestre.
A això s’hi afegia l’arribada de VeriFactu, que obliga a revisar com s’emeten i es registren les factures. Els programes que feien servir no encaixaven bé amb una feina multiempresa ni permetien automatitzar l’entrada de documents.
El repte no era només llegir factures. Calia respectar el pla de comptes de cada empresa, saber si cada document era una factura emesa o rebuda, no generar assentaments duplicats quan la mateixa factura arribava dues vegades i, sobretot, no donar per bona una lectura equivocada. En comptabilitat, un error que passa sense que ningú el vegi surt més car que teclejar.
La solució
Vam desenvolupar una aplicació de comptabilitat amb intel·ligència artificial pensada per treballar amb moltes empreses alhora. L’app es connecta per IMAP a les bústies on arriben les factures (també es poden pujar a mà), descarta els fitxers ja importats i llegeix cada document pel camí més fiable: si és una Facturae en XML, en pren les dades directament; si porta el QR tributari de VeriFactu o TicketBAI, manen aquestes dades; en la resta combina OCR (Tesseract i pdfplumber) amb Claude.
Doble lectura i validació creuada. Cada factura la llegeixen dos lectors independents: l’OCR amb la plantilla apresa del proveïdor i la IA. Si coincideixen en els camps clau (NIF, número, data, base, IVA, IRPF, total, venciment i desglossament d’impostos), la lectura es dona per fiable. Si no coincideixen, hi entra un segon model d’IA que llegeix sense pistes i desempata camp a camp. Només es valida sola la factura en què tot quadra; la resta va a una cua de revisió amb el que va llegir cada lector i el motiu concret.
Emesa o rebuda, sense preguntar. L’app compara els NIF del document amb el de l’empresa i decideix si és una factura emesa o rebuda. Quan hi ha dubtes, no ho endevina: demana confirmació i mou el fitxer a la seva carpeta.
Aprèn de cada correcció. Quan l’equip valida o corregeix una factura, l’app desa una plantilla del proveïdor (on són les seves dades, els seus comptes comptables, el seu IVA i IRPF habituals) i passa la correcció a la IA com a pista la propera vegada. En aprendre un proveïdor nou, torna a llegir les seves factures que esperen a la cua i valida les que queden a punt. A més, coneix el patró habitual de cada proveïdor i avisa del que se n’aparta; si s’escapa un error, aquest proveïdor torna a revisió manual fins que demostra ser fiable. Una mostra de les factures validades soles es marca per a auditoria: així l’assessoria mesura la taxa d’error real en lloc de suposar-la.
Al voltant d’aquest nucli hi ha el que una assessoria fa servir cada dia: importació d’extractes bancaris, sèries d’emissió, factures recurrents, diaris, informes fiscals, perfils d’exportació i còpies de seguretat. L’emissió està preparada per a VeriFactu.
El backend està fet en Python amb FastAPI i SQLAlchemy, empaquetat amb Docker i ja en producció. L’arquitectura multiempresa permet fer-la servir com a base d’un producte SaaS. Cada factura corregida entra en una bateria de proves amb factures reals que es torna a passar a cada canvi.
La validació automàtica es pot desactivar: aleshores tot queda com a proposta i l’equip ho confirma, una a una o en bloc. La IA fa la feina repetitiva i la responsabilitat comptable continua en mans de professionals.