Skip to main content
Mexico CFDI E-Invoicing (FacturAPI) for ERPNext — A build-to-order ERPNext app that stamps SAT-compliant CFDI 4 — 1/1Illustrative preview

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.

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

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
Full SAT cancellation flow with motivo de cancelacion (01–04) and substitution-UUID handling, exposed as a document action and whitelisted method
`CFDI Log` DocType recording one row per stamping attempt with UUID (folio fiscal), timestamp, status, error message, and returned XML/PDF
Custom fields on Sales Invoice, Payment Entry, and Customer for `uso_cfdi`, `regimen_fiscal`, `forma_pago`, `metodo_pago`, `objeto_impuesto`, and tax regime
Idempotent, retry-safe stamping logic so network failures never produce a duplicate CFDI or double-charge the PAC
Sealed XML and SAT-stamped PDF stored on the invoice with one-click download via client scripts in the form
Scheduler event that reconciles pending/errored invoices against FacturAPI so no document silently drifts out of sync
Whitelisted REST API methods to stamp, fetch, and cancel CFDIs programmatically for integrations and bulk operations
Role-based permissions and a dedicated CFDI role profile restricting stamping and cancellation to the fiscal team
Configurable emisor settings (CSD certificates, series/folios, tax regime) in a single Frappe settings DocType, with sandbox/live FacturAPI toggle
Automatic XML + PDF delivery attached to the invoice and emailable to customers on stamping

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 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

CriterionECOSIRECustom BuildCompetitorERPNext Native
CFDI 4.0 stamping in ERPNextNative to your Sales Invoice via FacturAPI/PAC on submitPossible but you design and maintain the PAC integrationSometimes, often for an older CFDI version or generic setupNone — ERPNext core has no CFDI concept
SAT catalog validationuso CFDI, regimen fiscal, forma/metodo de pago validated against SAT catalogsDepends entirely on what your developer buildsPartial; catalogs may be stale or free-textNone — plain text fields only
Complemento de pago (REP)Auto-generated from Payment Entry for PPD, linked to source UUIDsMust be specified and built from scratchVaries; often manual or unsupportedNot supported
Cancellation flowFull SAT motivo 01–04 with substitution UUIDBuild-your-own; easy to miss substitution rulesBasic cancel, may lack motivo/substitution handlingNot supported
Fit to your businessScoped to your entities, series, regimen, and flowsFully custom but you carry all requirements riskGeneric — you adapt your process to the appN/A
Source ownershipFull app in a Git repo you ownYou own it; you also maintain it aloneUsually closed or license-lockedN/A
Support and updatesPost-go-live window plus optional SAT-update retainerOnly if you retain the original developerVendor-dependent, shared roadmapCommunity only, no CFDI scope
Delivery modelBuild-to-order, tested on staging, UAT sign-off, one working weekLong, variable; scope creep commonInstant install but generic fitAlready 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.

Request a quote

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

Request a Quotation

Tell us about your Mexico CFDI E-Invoicing (FacturAPI) requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.