A build-to-order ERPNext app that turns your Sales Invoices into Verifactu-compliant certified records and Facturae B2B e-invoices, with TicketBAI (Basque) support and direct AEAT submission. ECOSIRE scopes, builds, installs and supports it on your 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 turns your Sales Invoices into Verifactu-compliant certified records and Facturae B2B e-invoices, with TicketBAI (Basque) support and direct AEAT submission. ECOSIRE scopes, builds, installs and supports it on your v15/v16 site.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
Spanish companies running ERPNext hit a hard wall the moment invoicing compliance stops being optional. The Verifactu regime under the Anti-Fraud Law (Ley Antifraude, RD 1007/2023) requires billing software to generate tamper-evident, chained, hash-signed invoice records — and the phased B2B e-invoicing mandate (Ley Crea y Crece) will require structured Facturae exchange between businesses. ERPNext core produces a clean Sales Invoice, but it has no concept of a Verifactu registro de facturación, no invoice-record hash chain, no Facturae 3.2.x XML export, no TicketBAI flow for the Basque foral territories, and no connection to the AEAT web services. Bolting this on with ad-hoc report exports is exactly the kind of manual, unauditable process the law is designed to eliminate.
`Verifactu Invoice Record` DocType capturing issuer NIF, series/number, issue timestamp, per-rate tax breakdown, previous-record hash and current SHA-256 fingerprint
Chained hash-signing so each record references its predecessor, producing the tamper-evident registro chain the Anti-Fraud Law requires
`hooks.py` document events on `Sales Invoice` `on_submit`/`on_cancel` that build and stamp the compliance record automatically, with cancellation handled as an anulación record rather than a delete
Facturae 3.2.x XML generation with XAdES digital signing for structured B2B e-invoice exchange under Ley Crea y Crece
TicketBAI variant for Álava, Bizkaia and Gipuzkoa: province-specific chained XML, TBAI identifier and QR generation via the correct foral schema
AEAT Verifactu web-service submission with X.509 certificate authentication, response CSV/code capture and rejection-reason write-back onto the record
ECOSIRE builds a proper Frappe app — not a spreadsheet macro or a one-off script — that installs cleanly alongside ERPNext and owns the entire Spanish compliance surface. We add a Verifactu Invoice Record DocType that captures the mandated fields (issuer NIF, invoice series and number, issue timestamp, tax breakdown, previous-record hash and current SHA-256 fingerprint) so every submitted Sales Invoice produces an immutable, chained record. hooks.py document events (on_submit, on_cancel) fire server scripts that build the record, compute the chained hash, and stamp the invoice — so compliance happens automatically at submit time, not as an afterthought. A Facturae Export module generates signed Facturae 3.2.x XML (XAdES) for B2B counterparties, and where the customer operates in Álava, Bizkaia or Gipuzkoa, the TicketBAI variant produces the province-specific chained XML and QR/TBAI identifiers required by the foral haciendas.
Submission is wired to the tax authority, not left to manual upload. Scheduler events poll a submission queue and push records to the AEAT Verifactu web service (or the relevant provincial TicketBAI endpoint) with certificate-based authentication, then write the acknowledgement, CSV/response code and any rejection reasons back onto the record. Whitelisted methods exposed through the Frappe REST API let your other systems trigger generation or re-submission programmatically, while dedicated role profiles and DocType permissions keep certificate handling and AEAT submission scoped to the finance and compliance roles that should own it. Client scripts add the practical touches — a compliance status indicator on the Sales Invoice, a one-click "view Verifactu record", and validation that blocks submission when NIF, tax codes or series configuration are incomplete.
Because this is build-to-order, nothing ships until we have agreed your scope. We start with a short scoping call to confirm your ERPNext version (v15 or v16), which regimes apply (national Verifactu, Facturae B2B, and/or one or more TicketBAI provinces), your invoice series design, and your AEAT/foral certificate setup. From confirmed scope, typical delivery is 2 to 4 weeks: we build on a staging copy of your site, run UAT against real invoice scenarios and the AEAT test environment, then install to production with a rollback plan. You receive the full source, a git repository handover, documentation and a training session — and a post-go-live support window so the first real filing period is covered.
Legally accountable for Verifactu and the incoming B2B e-invoice mandate, needs certified, chained records generated automatically from ERPNext without adopting a second billing system or risking Anti-Fraud Law penalties.
Owns the site day-to-day and wants a clean, installable app with well-structured DocTypes, hooks and API methods they can read, maintain and extend after handover — not a black-box binary or a pile of untracked server scripts.
Runs entities that fall under both national Verifactu and provincial TicketBAI (Álava, Bizkaia, Gipuzkoa), and needs one ERPNext app that handles each regime's specific chaining, identifiers and endpoints from the same Sales Invoice.
Wants a repeatable, supported compliance app to deploy across multiple client ERPNext sites, with documentation and a git handover so their team can support it rather than re-solving Verifactu for every client.
Buy the license on ecosire.com and download the ERPNext Spain Verifactu & B2B E-Invoicing app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install ERPNext Spain Verifactu & B2B E-Invoicing and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Verifactu chained records | Auto-generated on submit via hooks with SHA-256 hash chain | Possible but you design the chaining and hashing yourself | Sometimes present, rarely tailored to your series design | |
| Facturae B2B XML | Signed Facturae 3.2.x (XAdES) export built in | Build the schema and signing from scratch | May cover Facturae but often generic/unsigned | |
| TicketBAI (Basque) | Álava/Bizkaia/Gipuzkoa variants with TBAI IDs and QR | Rarely attempted; heavy per-province work | Usually out of scope | |
| AEAT submission | Certificate-based web-service push with response write-back | You integrate and maintain the endpoints yourself | Manual export/upload common | |
| Fit to your ERPNext | Scoped to your v15/v16 site, series and certificates | Fully bespoke but you carry all the work | Configure yourself around a fixed design | |
| Source & ownership | Full source plus git repository handover | You own it, at full build cost and risk | Often closed-source or license-locked | |
| Support & updates | Post-go-live window plus update engagements for schema changes | You staff and fund all maintenance | Vendor SLA varies, may lag AEAT changes | |
| Delivery model | Build-to-order, 2-4 weeks from confirmed scope, UAT + rollback | Long in-house project with unclear timeline | Instant install but generic fit |
This is a build-to-order app, not an instant download. After a short scoping call to confirm your ERPNext version, applicable regimes (Verifactu, Facturae B2B, TicketBAI provinces), series design and certificates, typical delivery is 2 to 4 weeks from confirmed scope. We build on a staging copy of your site, run UAT, then install to production.
No. ECOSIRE builds it to your scope and installs it for you. We tailor it to your ERPNext version, your invoice series, your certificate setup and the exact Spanish regimes that apply to your entities, then hand over the source and git repository so you own the code.
Frappe/ERPNext v15 and v16. We confirm your exact version on the scoping call and build the app against it so migrations, fixtures and hooks line up with your site. If you run an older version we will flag any upgrade considerations before starting.
Every engagement includes a post-go-live support window covering your first real filing period. Because you receive the full source and git repo, your team can maintain it, and ECOSIRE offers ongoing support and update engagements to track AEAT/foral schema and endpoint changes as the Verifactu and B2B mandate timelines evolve.
Yes, when both apply to you. The app can generate the national Verifactu chained records and, for entities in Álava, Bizkaia or Gipuzkoa, the province-specific TicketBAI XML, identifiers and QR codes, submitting each to the correct endpoint. We scope which regimes you need so you only build what applies.
Submitting a Sales Invoice triggers a hooks.py document event that builds the chained, hashed record. A scheduler job then pushes it to the AEAT Verifactu web service (or the TicketBAI endpoint) using your X.509 certificate, and writes the response code, CSV and any rejection reasons back onto the record — all without blocking invoice posting.
It installs as a separate Frappe app with its own DocTypes, hooks and role profiles, so it layers onto your Sales Invoice flow rather than replacing it. We run full UAT on a staging copy of your site and ship a rollback plan, so we validate against your existing customizations before touching production.
A build-to-order ERPNext app that turns your Sales Invoices into Verifactu-compliant certified records and Facturae B2B e-invoices, with TicketBAI (Basque) support and direct AEAT submission. ECOSIRE scopes, builds, installs and supports it on your v15/v16 site.