Back to home

Impact

At Idea15 (Aug–Sep 2025), the accounting flow covered by automatic capture reached about 80%, and the income-projection model scored above 92% accuracy on internal history.

Period

Client

Idea15

Role

Software engineer, design and development

Stack

  • Node.js
  • Python
  • OCR
  • APIs
  • Forecasting

Smart CFDI Billing System

CFDI issuance form with OCR-extracted fields

The problem

Manual billing and income registration consumed hours of administrative work, with a high margin of human error in data entry.

The solution

Electronic billing and automated stamping platform, integrating OCR for data extraction and predictive models to project income flows.

Architecture

Node.js services for the CFDI flow (issuance, stamping, XML). Python for OCR on inbound receipts and for the income-projection model. APIs to the PAC and to the accounting store. OCR does not guess the folio: it extracts fields and a human confirms doubtful ones before stamping.

How it was measured

Figures reported by the system engineer at Idea15, Aug–Sep 2025. The 80% is the share of the capture/stamping flow that stopped being typed by hand. The 92% is projection accuracy against the firm's internal history, not a public benchmark. No third-party audit.

How do you extract a CFDI or a receipt without typing the XML by hand?

A Python service runs OCR on the inbound document, proposes fields, and a human confirms the doubtful ones. Node.js builds the XML, calls the PAC for stamping, and stores the result in the accounting store.

The work

Idea15 needed to stop typing invoices. In Mexico that is not “a nicer form.” It is CFDI, XML, complements, a PAC, and a capture error the SAT will not forgive. The work ran August–September 2025. I designed and built the issuance and stamping flow, OCR extraction, and a model that projects income from already-stamped history. Six weeks. Not a quarter of discovery.

The architecture splits the problem. Node.js owns the procedure: build the voucher, talk to the PAC, persist the XML. Python owns vision and projection: read inbound paper or PDF, propose fields, and estimate cash. APIs between them are explicit. OCR does not stamp alone. If field confidence is low, a human confirms. That is slower than a “100% automatic” demo and more honest than sending a made-up folio to the PAC. The confirmation queue is part of the product, not a later phase.

The 80% I report is the share of the capture and stamping flow that stopped being typed. The rest is still judgment: exceptions, odd complements, cases that did not deserve a model. The 92% is projection accuracy against Idea15's internal history, not a public dataset and not the SAT. Nobody outside audited those two figures. They lived through six weeks of engineering and an operator who measured them. A recruiter who asks for the 92% notebook will not find it on GitHub: the history belongs to the firm.

This is the most Mexico-specific system in the portfolio. It is not a RAG tutorial. It is stamping, OCR, and a cash model. If I later publish an article or a CFDI XML parsing utility, this is the work it comes from. Until then, this page is the source. This site's privacy notice does not cover Idea15's fiscal data; it covers Franco's contact form.

Screenshots

Stamped XML view and fiscal folio
Queue of receipts pending human confirmation
Income projection panel on stamped history
Capture error blocked before the PAC
Issued invoices list with stamping status
API integration into the accounting store
Monthly summary of automatic flow versus manual typing

Also in this record