A build-to-order ERPNext integration that submits your Sales Invoices to Jordan's ISTD JoFotara national e-invoicing platform, generates ISTD-schema UBL, and returns the cleared invoice UUID and QR back onto the document. ECOSIRE scopes, builds, installs, and supports it on your Frappe/ERPNext v15 or v16 site. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $399.00 USD; request a quote for a scoped proposal.

A build-to-order ERPNext integration that submits your Sales Invoices to Jordan's ISTD JoFotara national e-invoicing platform, generates ISTD-schema UBL, and returns the cleared invoice UUID and QR back onto the document. ECOSIRE scopes, builds, installs, and supports it on your Frappe/ERPNext v15 or v16 site.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
If your business is mandated onto Jordan's ISTD JoFotara platform, every taxable Sales Invoice now has to be transmitted to the national system, cleared, and stamped with an official invoice UUID and QR before it is legally valid. ERPNext out of the box has no idea JoFotara exists: it produces its own invoice numbering and print formats, but it cannot build the ISTD-mandated UBL XML, cannot call the JoFotara API, cannot carry the returned UUID, and cannot reconcile Sales tax, General tax, and Special tax the way the ISTD schema expects. Teams end up re-keying every invoice into a government portal by hand, which is slow, error-prone, and impossible to audit at volume.
ISTD-compliant UBL XML generator that maps `Sales Invoice`, `Customer`, `Item`, and `Sales Taxes and Charges` onto the JoFotara national invoice schema
`hooks.py` `on_submit` doc event that signs and posts each invoice to the JoFotara API, plus an optional manual submit action for phased rollout
Clearance-response handling that writes the returned invoice UUID, QR payload, and submission status back onto the Sales Invoice via custom fields
QR code rendered into the ERPNext print format so the customer PDF carries the official ISTD mark
Sales tax, General tax, and Special tax category mapping aligned to the ISTD schema, with configurable rounding and tax-inclusive/exclusive handling
Dedicated `JoFotara Settings` DocType with encrypted credential fields and sandbox/production endpoint toggle
ECOSIRE builds a proper Frappe app that closes that gap end to end. We ship it as a real app in your bench (its own module, not loose customizations), so it upgrades cleanly and is fully reversible. The core is an ISTD-compliant UBL generator that maps ERPNext's Sales Invoice, Customer, Item, and Sales Taxes and Charges data onto the JoFotara invoice schema, including the Sales/General/Special tax categories, buyer tax identifiers, and rounding rules. A hooks.py on_submit doc event (with an optional manual "Submit to JoFotara" action for controlled rollouts) signs and posts the UBL to the JoFotara API, handles the clearance response, and writes the returned invoice UUID, QR payload, and submission status back onto the Sales Invoice via dedicated custom fields. The QR is rendered into your print format so the customer-facing PDF carries the official mark.
Under the hood the integration is built the Frappe way. Credentials and the environment toggle (sandbox vs production ISTD endpoints) live in a single settings DocType with encrypted password fields and permissions locked to an accounting/compliance role profile. A JoFotara Submission Log DocType records every request/response, HTTP status, UUID, and error detail so failures are diagnosable instead of silent. Whitelisted server methods expose submit, re-submit, and status-check actions that your users trigger from the form or that we call over the Frappe REST API; a scheduler event sweeps invoices left in a pending or failed state and retries or flags them for review. Client scripts surface status badges and block invalid submissions before they reach the government system. Credit notes / returns are mapped to the corresponding JoFotara cancellation flow where the ISTD rules allow it.
Because this is build-to-order, nothing ships blind. We start from your actual chart of accounts, tax templates, company tax registration, and invoice volume, confirm the exact ISTD scope that applies to you, then build against a staging copy of your site. You get the installable app source for your version, install and configuration on your environment, UAT sign-off on staging before we touch production, and a post-go-live support window. Typical delivery is 2-4 weeks from confirmed scope, targeting Frappe/ERPNext v15 or v16.
Runs a company that has been brought onto the ISTD JoFotara platform and needs every Sales Invoice cleared and stamped without hand-keying into the government portal. Wants compliance handled inside the ERPNext they already run.
Owns invoice accuracy and the tax close. Needs correct Sales/General/Special tax mapping, an audit trail of every submission, and a reliable retry path when JoFotara rejects or times out — not silent failures.
Maintains the Frappe bench and site. Wants a clean, upgrade-safe app (its own module, encrypted settings, whitelisted methods) rather than scattered customizations, with a git handover they can support after go-live.
Oversees several Jordanian legal entities on one or more ERPNext sites and needs consistent JoFotara clearance, per-company credentials, and centralized submission monitoring across all of them.
Buy the license on ecosire.com and download the Jordan JoFotara E-Invoicing for ERPNext 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 Jordan JoFotara E-Invoicing for ERPNext 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 |
|---|---|---|---|---|
| JoFotara / ISTD compliance | Built to the ISTD UBL schema and clearance flow for your setup | Depends entirely on your developer's ISTD knowledge | Generic e-invoicing app, rarely Jordan-specific | |
| Tax mapping (Sales/General/Special) | Mapped from your real tax templates and verified in UAT | Hand-coded, error-prone without domain expertise | Assumes a standard model that may not match yours | |
| UUID + QR handling | UUID and QR written back onto the invoice and print format | Must be built and tested from scratch | Sometimes partial, often not on the PDF | |
| Error handling & audit | Submission-log DocType, retries, readable errors | Only as good as what you commission | Varies; often a black box | |
| Fit to your site | Built against a staging copy of your v15/v16 site | Fully bespoke but on your budget and timeline | One-size-fits-all, limited configuration | |
| Support & ownership | Support window + git handover you fully own | You own it but also maintain it alone | Vendor lock-in, subscription-dependent | |
| Upgrade safety | Standalone app, reversible, version-targeted | Risk of loose customizations breaking on upgrade | Depends on vendor's upgrade cadence | |
| Time to value | 2-4 weeks from confirmed scope | Often longer; depends on hiring and iteration | Fast to install but slow to fit correctly |
No. This is a build-to-order engagement. ECOSIRE scopes the work against your actual ERPNext setup, tax templates, and JoFotara registration, then builds, installs, and supports it. There is no instant marketplace download — the result is a version-specific app configured for your environment.
Typical delivery is 2-4 weeks from confirmed scope. The exact timeline depends on your invoice complexity (tax categories, credit notes, multi-company), the state of your ERPNext data, and JoFotara credential provisioning. We confirm dates in writing after the scoping call.
Frappe/ERPNext v15 and v16. We build the app against your specific version so hooks, DocTypes, and REST behavior match your site. Tell us your version on the scoping call and we target it directly.
A `hooks.py` `on_submit` doc event (or a manual submit action) calls the JoFotara API with ISTD-schema UBL, handles the clearance response, and writes the invoice UUID and QR back onto the Sales Invoice. Credentials and the sandbox/production toggle live in an encrypted settings DocType; every call is recorded in a submission log DocType.
Failures are never silent. The invoice is flagged with a readable error, the full request/response is written to the `JoFotara Submission Log`, and a scheduler event sweeps pending/failed invoices to retry or flag them for review. Your team can re-submit from the form or over the REST API.
Every engagement includes a post-go-live support window for defect fixes and submission troubleshooting. Because JoFotara/ISTD rules and ERPNext both evolve, we also offer ongoing maintenance for schema changes and version upgrades — scoped separately after the initial window ends.
Yes, where the ISTD rules allow it. Credit notes and returns are mapped to the corresponding JoFotara cancellation flow, and the resulting status is written back onto the ERPNext document so your records and the national system stay in sync.
A build-to-order ERPNext integration that submits your Sales Invoices to Jordan's ISTD JoFotara national e-invoicing platform, generates ISTD-schema UBL, and returns the cleared invoice UUID and QR back onto the document. ECOSIRE scopes, builds, installs, and supports it on your Frappe/ERPNext v15 or v16 site.