- Home
- Apps
- SaaS Tools
- Mexico CFDI E-Invoicing (FacturAPI) for ERPNext
Illustrative previewA build-to-order ERPNext app that stamps SAT-compliant CFDI 4.0 invoices through FacturAPI/PAC,
validates the SAT catalogs, and handles complemento de pago and cancellation flows end to end.
ECOSIRE builds, installs, and supports it after a scoping call.
What is Mexico CFDI E-Invoicing (FacturAPI) for ERPNext?
A build-to-order ERPNext app that stamps SAT-compliant CFDI 4.0 invoices through FacturAPI/PAC, validates the SAT catalogs, and handles complemento de pago and cancellation flows end to end. ECOSIRE builds, installs, and supports it after a scoping call. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- ERPNext Compatibility
- —
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- MariaDB 10.6+
About this Product
Any Mexican business running ERPNext quickly hits a wall at invoicing time. The SAT requires every Sales Invoice to be stamped as a CFDI 4.0 (Comprobante Fiscal Digital por Internet), with a certified PAC applying the digital seal, a valid uso CFDI, a matching regimen fiscal for both emisor and receptor, correct RFC formatting, and — for anything not paid on the spot — a separate Complemento de Pago (REP) when the money actually arrives. ERPNext core has no notion of any of this. Its Sales Invoice, Payment Entry, and Customer DocTypes were never designed for the SAT catalogs, so accountants end up double-keying every invoice into a portal or a third-party desktop tool, reconciling by hand, and hoping the cancellation window and acuse are handled correctly.
ECOSIRE builds a proper Frappe app (erpnext_mx_cfdi) that closes that gap by wiring ERPNext directly to FacturAPI, which acts as your certified PAC. We add the SAT-specific fields where they belong — custom fields and child DocTypes on Sales Invoice, Payment Entry, and Customer for uso_cfdi, regimen_fiscal, forma_pago, metodo_pago, objeto_impuesto, and RFC — plus new DocTypes such as CFDI Log (one row per stamping attempt with UUID, status, and the returned XML/PDF) and SAT Catalog records so c_UsoCFDI, c_RegimenFiscal, c_FormaPago, and c_ClaveProdServ values are validated against real allowed lists instead of free text. RFC format is checked with a validated pattern before anything is sent, so malformed tax IDs never reach the PAC.
Technically, the stamping is driven by hooks.py doc events. On Sales Invoice on_submit, a server-side handler assembles the CFDI 4.0 payload, calls FacturAPI over HTTPS, stores the returned UUID (folio fiscal), the sealed XML, and the PDF back on the document, and writes a CFDI Log entry — all inside idempotent, retry-safe logic so a network blip never produces a double-stamp. Payment Entry on_submit generates the Complemento de Pago automatically when metodo_pago is PPD. Cancellations follow the SAT motivo-de-cancelacion flow (01–04, including substitution UUID) exposed as a whitelisted method and a document action. Whitelisted REST methods let you stamp, fetch, or cancel programmatically; client scripts surface stamping status, the UUID, and one-click XML/PDF download in the Sales Invoice form; role-based permissions and a dedicated CFDI role profile keep stamping and cancellation limited to your fiscal team; and a scheduler event reconciles any invoice left in a pending or error state against FacturAPI so nothing silently falls out of sync.
Because this is build-to-order, you are not downloading a generic marketplace add-on and hoping it fits. After a short scoping call we confirm your PAC/FacturAPI account, your emisor certificates (CSD), your series/folios, your regimen fiscal, and the exact invoice and payment flows you use. We then build the app against your ERPNext version (Frappe/ERPNext v15 or v16), test it on a staging copy of your data with your real customers and product catalog, and only cut over to production after you sign off on UAT. Typical delivery is one working week from confirmed scope, and you receive the full app source in a Git repository you own, so nothing about your compliance stack is a black box.
What you get
- Installable source code for your build, targeting your ERPNext version (Frappe/ERPNext v15 or v16)
- Installation and configuration on your environment: FacturAPI/PAC keys, CSD certificates, series/folios, and SAT emisor settings
- Technical documentation covering DocTypes, custom fields, hooks, whitelisted methods, and the scheduler reconciliation job
- End-user guide plus a live training session for your accounting team on stamping, payments, and cancellations
- UAT on a staging copy of your data with a documented rollback plan before production cutover
- Post-go-live support window for bug fixes and stamping issues after launch
- Git repository handover so you own and control the full app source
- SAT catalog seed data (uso CFDI, regimen fiscal, forma/metodo de pago) loaded and validated for your operation
Who this is for
Mexican staff accountant
Needs every ERPNext Sales Invoice to become a SAT-compliant CFDI 4.0 without re-keying into a separate portal, with correct uso CFDI, regimen fiscal, and RFC validated before stamping.
Controller / finance manager
Owns month-end close and SAT reconciliation; wants complemento de pago handled automatically, cancellations tracked with the right motivo, and a clean audit trail of every UUID and its status.
ERPNext administrator / IT lead
Runs the Frappe bench and wants a clean, versioned app with proper DocTypes, permissions, and whitelisted APIs — not brittle customizations — that upgrades cleanly on v15/v16.
Owner of an SME or contadora firm
Runs invoicing for one or several Mexican entities and needs FacturAPI-based stamping wired into ERPNext so filing stays compliant without buying yet another standalone facturacion tool.
How Mexico CFDI E-Invoicing (FacturAPI) for ERPNext Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| CFDI 4.0 stamping in ERPNext | Native to your Sales Invoice via FacturAPI/PAC on submit | Possible but you design and maintain the PAC integration | Sometimes, often for an older CFDI version or generic setup | None — ERPNext core has no CFDI concept |
| SAT catalog validation | uso CFDI, regimen fiscal, forma/metodo de pago validated against SAT catalogs | Depends entirely on what your developer builds | Partial; catalogs may be stale or free-text | None — plain text fields only |
| Complemento de pago (REP) | Auto-generated from Payment Entry for PPD, linked to source UUIDs | Must be specified and built from scratch | Varies; often manual or unsupported | Not supported |
| Cancellation flow | Full SAT motivo 01–04 with substitution UUID | Build-your-own; easy to miss substitution rules | Basic cancel, may lack motivo/substitution handling | Not supported |
| Fit to your business | Scoped to your entities, series, regimen, and flows | Fully custom but you carry all requirements risk | Generic — you adapt your process to the app | N/A |
| Source ownership | Full app in a Git repo you own | You own it; you also maintain it alone | Usually closed or license-locked | N/A |
| Support and updates | Post-go-live window plus optional SAT-update retainer | Only if you retain the original developer | Vendor-dependent, shared roadmap | Community only, no CFDI scope |
| Delivery model | Build-to-order, tested on staging, UAT sign-off, one working week | Long, variable; scope creep common | Instant install but generic fit | Already in ERPNext but does nothing for CFDI |
Frequently Asked Questions about Mexico CFDI E-Invoicing (FacturAPI)
How long does delivery take?
This is build-to-order. Typical delivery is one working week from confirmed scope. After a scoping call we finalize your PAC account, certificates, series/folios, and invoice flows, then build, test on staging, and cut over only after your UAT sign-off. Timeline depends on how many entities and payment flows you run.
Is this an instant download from a marketplace?
No. ECOSIRE builds, installs, and supports it for your specific ERPNext setup. It is not an off-the-shelf Frappe Cloud download. You receive the full app source in a Git repository you own once it is delivered.
Which ERPNext versions are supported?
We build against your version — Frappe/ERPNext v15 or v16. We confirm the exact version during scoping and target it so the app installs cleanly on your bench and upgrades predictably.
Do I need my own FacturAPI or PAC account?
Yes. FacturAPI acts as your certified PAC and stamps under your emisor certificates (CSD). You provide the FacturAPI account and CSDs; we wire ERPNext to it, load your SAT catalog values, and configure sandbox and live modes. We can advise on FacturAPI setup during scoping.
Does it handle complemento de pago and cancellations?
Yes. Payment Entry submission auto-generates the Complemento de Pago (REP) for PPD invoices and links it to the source CFDI UUIDs. Cancellations follow the SAT motivo-de-cancelacion flow (01–04), including substitution UUID, exposed as a document action and a whitelisted method.
What about support and updates after go-live?
Every build includes a post-go-live support window for bug fixes and stamping issues. Because you own the Git repository, your team or ECOSIRE can extend it later. We offer ongoing support and SAT/CFDI regulatory-update retainers separately if you want us to track PAC and SAT changes for you.
Will it disrupt my existing ERPNext data or invoices?
No. We test on a staging copy of your data with your real customers and product catalog, provide a documented rollback plan, and only cut over to production after you sign off on UAT. Stamping logic is idempotent and retry-safe to prevent duplicate CFDIs.
Related Modules

Mercado Pago Gateway for ERPNext
A build-to-order Mercado Pago payment gateway for ERPNext that brings Pix, boleto, card installments (cuotas), Checkout Pro/Bricks and webhook reconciliation into your ERPNext instance. ECOSIRE builds, installs, and supports it after a scoping call — not an instant marketplace download.

Metabase Embedded Analytics
A build-to-order Frappe app that embeds signed Metabase dashboards directly inside ERPNext Desk, with per-user row filtering, SSO pass-through, and one-click provisioning of governed read-only database access. ECOSIRE scopes, builds, installs, and supports it for your ERPNext v15/v16 site.

Mollie Payments for ERPNext
A Mollie payment gateway built as a proper Frappe app for ERPNext, bringing iDEAL, Bancontact, SEPA, Sofort, cards, PayPal and Apple Pay into your quotation-to-payment flow. ECOSIRE scopes, builds, installs and supports it for your v15/v16 instance.

Moyasar Payment Gateway for ERPNext
A build-to-order Moyasar payment gateway for ERPNext that lets Saudi and MENA sellers accept mada, Apple Pay, STC Pay, SADAD and cards directly from ERPNext. ECOSIRE builds, installs and supports it against your v15/v16 site — request a quotation and we scope, build and hand over the source.
Mexico CFDI E-Invoicing (FacturAPI)
A build-to-order ERPNext app that stamps SAT-compliant CFDI 4.0 invoices through FacturAPI/PAC, validates the SAT catalogs, and handles complemento de pago and cancellation flows end to end. ECOSIRE builds, installs, and supports it after a scoping call.
- CFDI 4.0 XML stamping through FacturAPI acting as your certified PAC, triggered on Sales Invoice `on_submit` via `hooks.py` doc events
- SAT catalog validation for `c_UsoCFDI`, `c_RegimenFiscal`, `c_FormaPago`, `c_MetodoPago`, and `c_ObjetoImp` enforced through link/select fields backed by `SAT Catalog` DocTypes
- RFC validation with a pattern check for both emisor and receptor before any payload reaches the PAC
- Complemento de Pago (REP) auto-generated from Payment Entry `on_submit` when `metodo_pago` is PPD, linked back to the source CFDI UUIDs