A build-to-order ERPNext app that generates SAT-compliant CFDI 4.0 XML, stamps it through your PAC, and handles payment complementos and cancellations directly inside Sales Invoice and Payment Entry. ECOSIRE scopes, builds, installs and supports it for your Frappe/ERPNext v15/v16 site. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order ERPNext app that generates SAT-compliant CFDI 4.0 XML, stamps it through your PAC, and handles payment complementos and cancellations directly inside Sales Invoice and Payment Entry. ECOSIRE scopes, builds, installs and supports it for your Frappe/ERPNext v15/v16 site.
لا حاجة للدفع الآن. يؤدي هذا إلى إرسال طلب عرض سعر إلى فريقنا — وسنتواصل معك عبر البريد الإلكتروني بالأسعار والخطوات التالية.
If you sell in Mexico, every invoice has to become a SAT-stamped CFDI 4.0 with a valid UUID before it is legally issued — and ERPNext core has no idea what a CFDI, a PAC, or a complemento de pago is. Teams typically bridge the gap with brittle spreadsheets, a separate portal from their PAC (Finkok, SW Sapien, Facturama, etc.), and manual re-keying that drifts out of sync with the actual Sales Invoice. The moment SAT rejects an XML for a bad RegimenFiscalReceptor, a missing UsoCFDI, or a wrong ObjetoImp, the finance team is stuck reconciling paper against a portal that the ERP never sees.
Custom `CFDI Document` DocType linked 1:1 to Sales Invoice, storing UUID, SAT seal, stamp timestamp and full XML/PDF attachments
`PAC Settings` single DocType for PAC credentials, CSD certificate (`.cer`/`.key`) upload and sandbox/production environment switching
CFDI 4.0 XML builder that populates `cfdi:Comprobante`, `Emisor`, `Receptor`, `Conceptos` and the `Impuestos` block from invoice, item and tax data
`hooks.py` `on_submit` doc event on Sales Invoice that auto-generates and stamps the CFDI through your PAC's API
Adapter layer for common PACs (Finkok, SW Sapien, Facturama and others) behind one whitelisted stamping method
Payment complemento (`Complemento de Pago 2.0` / `Pagos20`) generated from Payment Entry with correct `ImpSaldoAnt`/`ImpPagado` references
ECOSIRE builds a proper Frappe app that makes CFDI 4.0 a native part of your ERPNext document flow. We add a custom CFDI Document DocType linked one-to-one to Sales Invoice, plus a PAC Settings single DocType holding your credentials, CSD certificate (.cer/.key), and environment (sandbox vs. production). On submit, a hooks.py doc event (Sales Invoice: on_submit) builds the CFDI 4.0 XML from the invoice, its items, customer RFC and tax rows — populating cfdi:Comprobante, cfdi:Emisor, cfdi:Receptor, cfdi:Conceptos and the cfdi:Impuestos block with correct IVA/retenciones — then calls your PAC's stamping API through a whitelisted server method. The returned TimbreFiscalDigital (UUID, SAT seal, certificate number, stamp timestamp) is written back onto the linked record and the stamped XML plus a rendered PDF are attached to the invoice.
Payment complementos are handled where the money actually moves: a doc event on Payment Entry builds the Complemento de Pago 2.0 (Pagos20) referencing the related CFDIs, their IdDocumento UUIDs, ImpSaldoAnt/ImpPagado amounts and payment method, then stamps it through the same PAC lane. Cancellations follow the SAT 4.0 motive codes (01–04) with the substitution-UUID requirement for code 01; we expose a guarded cancel action that calls the PAC's cancellation endpoint, records the acuse, and reflects the accepted/pending status back on the document. A scheduler event polls for pending cancellation acknowledgements so nobody has to babysit the PAC portal. Everything is permission-gated with a dedicated role profile so only authorized accounting users can stamp or cancel, and the stamped artifacts are reachable over the Frappe REST API for downstream integrations.
Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call to confirm your PAC, CFDI use cases (ingreso, egreso, pago, traslado), regimes and edge cases, then build against your chart of accounts and tax templates. You get the work validated on a staging bench first, a UAT sign-off, and a clean cutover to production on Frappe/ERPNext v15 or v16. Typical delivery is 2-4 weeks from confirmed scope, and you receive the full source as an installable Frappe app plus the git repository so you are never locked in.
Runs ERPNext for a company that must issue CFDI 4.0 for every sale and needs stamping, complementos and cancellations to happen inside the ERP instead of a separate PAC portal.
Rolling out ERPNext for a Mexican client and needs a reliable, source-available CFDI 4.0 app they can install, extend and support rather than building SAT compliance from scratch.
Operates several Mexican legal entities on one ERPNext site and needs consistent, auditable e-invoicing with per-entity CSD certificates, RFCs and PAC settings.
Owns the bench and wants a clean Frappe app with well-defined hooks, permissions and REST endpoints that integrates with existing tax templates and doesn't fight future upgrades.
قم بشراء الترخيص من موقع ecosire.com وقم بتنزيل تطبيق ERPNext Mexico CFDI 4.0 E-Invoicing ZIP من لوحة تحكم حسابك.
قم باستخراج ملف ZIP إلى مجلد تطبيقات مقعدك، أو قم بتشغيل "bench get-app" مع المسار إلى التطبيق المستخرج.
قم بتشغيل `bench --site SITE_NAME install-app APP_NAME` متبوعًا بـ`bench migrate` لتثبيت ERPNext Mexico CFDI 4.0 E-Invoicing وتطبيق مخططه.
افتح إعدادات ترخيص ECOSIRE على موقعك وقم بتنشيط مفتاح الترخيص الخاص بك. يتطلب تطبيقي ecosire_connect وecosire_license_client المجانيين.
| المعيار | ECOSIRE | بناء مخصص | منافس | أودو الأصلي |
|---|---|---|---|---|
| SAT CFDI 4.0 stamping | Built into Sales Invoice submit via PAC adapter | You build the XML and PAC integration yourself | Generic app, may not match your PAC or regimes | |
| Payment complemento (Pagos20) | Generated from Payment Entry with correct references | Extra scope you must design and test | Sometimes partial or add-on only | |
| Cancellation flow (motives 01-04) | Guarded cancel with acuse and substitution UUID | Hand-rolled against SAT rules | Varies; often manual via PAC portal | |
| ERPNext integration | Native DoctTypes, hooks, permissions, REST API | Depends on your team's Frappe depth | Bolt-on, may fight your tax templates | |
| Source code ownership | Full source plus git repo handover | You own it but carry all the build cost | Often closed or subscription-locked | |
| Fit to your PAC and regimes | Scoped to your PAC, RFCs and use cases | Fully bespoke if you invest the time | One-size-fits-most defaults | |
| Delivery and support | 2-4 weeks, UAT, training, support window | Unpredictable timeline, self-supported | Instant install but generic support | |
| Version support (v15/v16) | Built and validated for your version | You handle upgrade compatibility | Depends on maintainer's roadmap |
This is build-to-order, not an instant download. Typical delivery is 2-4 weeks from confirmed scope. After the scoping call we agree on your PAC, CFDI use cases and edge cases, build against your ERPNext configuration, validate on staging, and then cut over to production.
The stamping layer is built as an adapter, so we integrate the PAC you already use or plan to use — common ones include Finkok, SW Sapien and Facturama. We confirm the exact PAC and its sandbox/production endpoints during scoping so the app is built against your real credentials.
Every build includes a post-go-live support window for defect fixes and stamping/cancellation issues. Because you receive the full source and git repository, you can also extend it yourself. SAT format changes and version upgrades (for example moving from ERPNext v15 to v16) can be handled under a support or maintenance arrangement.
We build for Frappe/ERPNext v15 and v16. We confirm your exact version and bench setup at scoping so the app, its DoctTypes and hooks are validated against the version you run in production.
Yes. Beyond the CFDI 4.0 ingreso invoice, the app builds the payment complemento (`Complemento de Pago 2.0`) from Payment Entry and implements SAT cancellation flows with the 01-04 motive codes, including the substitution-UUID requirement for code 01.
You own it. We hand over the full source as an installable Frappe app plus the git repository. There is no license server or vendor lock-in — you can host, extend and maintain it independently.
Stamping is idempotent and guarded, so re-submitting or amending an invoice won't produce a double-timbrado. We also validate SAT fields like `UsoCFDI`, `RegimenFiscalReceptor` and `ObjetoImp` before calling the PAC to cut down on rejections, and only users in the dedicated role profile can stamp or cancel.

A custom-built Magento 2 / Adobe Commerce extension that adds a real-time 3D product viewer with color, material, size, and per-component selectors, plus accurate per-option pricing. Built, installed, and supported by ECOSIRE on your store.
A build-to-order ERPNext app that generates SAT-compliant CFDI 4.0 XML, stamps it through your PAC, and handles payment complementos and cancellations directly inside Sales Invoice and Payment Entry. ECOSIRE scopes, builds, installs and supports it for your Frappe/ERPNext v15/v16 site.