A build-to-order Odoo module that submits your invoices to Jordan's JoFotara national e-invoicing platform with ISTD-compliant XML and embedded QR codes. ECOSIRE builds, installs, and supports it around your chart of accounts and tax setup. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $499.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module that submits your invoices to Jordan's JoFotara national e-invoicing platform with ISTD-compliant XML and embedded QR codes. ECOSIRE builds, installs, and supports it around your chart of accounts and tax setup.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
If your business trades in Jordan, the Income and Sales Tax Department (ISTD) mandate to clear invoices through the JoFotara national e-invoicing platform is not something you can satisfy from stock Odoo. Odoo Community and Enterprise handle Jordanian VAT/general sales tax on the accounting side, but neither ships a JoFotara connector: there is no ISTD-compliant XML export, no submission client for the JoFotara API, no clearance-status tracking on the invoice, and no QR code carrying the validated fiscal reference. Teams end up re-keying every account.move into the JoFotara portal by hand, which does not scale and breaks the moment invoice volume rises or an audit asks for a reconciled trail.
Extends `account.move` with JoFotara clearance state, submission UUID, ISTD reference number, QR payload and error-log fields as stored, `@api.depends`-computed values
Serialises invoices into the ISTD-mandated JoFotara XML schema (seller/buyer TINs, line items, tax subtotals, totals, signature envelope)
Live submission to the JoFotara REST API with authenticated session handling, clearance-response parsing and stored fiscal reference
Line-level mapping of Jordanian general sales tax and special/income sales tax from your existing Odoo tax codes to JoFotara tax categories
Compliant QR code generation embedded into the customer invoice via a QWeb report override (PDF and portal)
Clearance lifecycle on the invoice: draft, submitted, cleared, rejected — with explicit resubmission and reason-of-rejection capture
ECOSIRE builds a dedicated Odoo module that closes that gap end to end. We extend account.move with the JoFotara lifecycle — clearance state, submission UUID, ISTD invoice number, QR payload and error log — as stored fields driven by compute/@api.depends methods, so status is always derivable and auditable rather than typed in. On validation (or via a queued automated action), the module serialises the invoice into the ISTD-mandated XML structure: seller/buyer identifiers, tax registration numbers, line-level sales-tax and general-sales-tax mapping from your Jordanian tax codes, totals, and the required digital signature envelope. It calls the JoFotara REST API over an authenticated channel, parses the clearance response, stores the returned reference, and generates the compliant QR code that is embedded into the customer-facing invoice via a QWeb report override. Retries, rejection reasons and resubmission are handled explicitly so a failed clearance never silently blocks your billing.
Technically the module is a clean, upgrade-safe addon: a proper __manifest__.py declaring dependencies on account, models under models/ using models.Model with typed fields, access control through ir.model.access.csv plus record rules so only authorised accounting users can resubmit or view raw payloads, backend views and an OWL status widget for at-a-glance clearance state, and server-side automated actions for bulk/scheduled submission. Because JoFotara is a live external system, we also expose the submission logic through Odoo's XML-RPC/JSON-RPC layer so upstream systems or your own scripts can trigger clearance programmatically. It is built and tested against Odoo 17.0, 18.0 and 19.0, and against both Community and Enterprise (Enterprise's account_edi framework is used where present; a self-contained submission path is provided for Community).
Because this is build-to-order, you are not downloading a generic zip and hoping it fits. After a short scoping call we confirm your Odoo version and edition, your JoFotara taxpayer credentials and onboarding stage, your chart of accounts and exact sales-tax/general-sales-tax code mapping, and any branch or multi-company requirements. We then build the module to that scope, test it against the JoFotara sandbox, deploy to your staging environment for UAT, and cut over to production with a rollback plan. Typical delivery is 2-4 weeks from confirmed scope. You receive the full installable source, documentation, a training session, and a post-go-live support window — you own the code and the git repository at handover.
Runs billing in Odoo and is now under the ISTD JoFotara mandate. Needs invoices cleared automatically at validation, with QR codes on the printed invoice, without re-keying anything into the government portal.
Serves clients across Jordan and needs a reliable, code-owned JoFotara connector they can deploy and support per client, on Community or Enterprise, rather than betting on an unmaintained marketplace app.
Operates several legal entities or branches in Jordan with distinct taxpayer identifiers, and needs per-company credentials, correct tax mapping and a full audit trail for reconciliation and audits.
Wants to trigger JoFotara clearance from upstream systems via XML-RPC/JSON-RPC and needs a documented, extensible module rather than a black-box connector.
Buy the license on ecosire.com and download the Jordan JoFotara E-Invoicing for Odoo module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Jordan JoFotara E-Invoicing for Odoo, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| JoFotara API submission | Built-in live REST submission with clearance parsing and retry | Possible but you build the client and lifecycle yourself | Rarely covers Jordan; often generic EDI with no JoFotara endpoint | |
| ISTD-compliant XML | Purpose-built to the ISTD schema, validated in sandbox | Must be authored and maintained in-house | Schema may lag ISTD changes or be region-mismatched | |
| QR code on invoice | Validated fiscal QR embedded via QWeb report override | Requires custom QWeb and payload logic | Sometimes present, often not JoFotara-specific | |
| Jordanian tax mapping | Scoped worksheet maps your codes to JoFotara categories | You define and verify the mapping yourself | Generic tax handling, manual reconciliation needed | |
| Fit to your Odoo version/edition | Built for your 17/18/19 + Community or Enterprise | Fully bespoke but at your cost and risk | Version support varies; upgrades can break it | |
| Support and updates | Post-go-live window + scoped schema/version maintenance | Depends entirely on internal capacity | Depends on vendor; can be unmaintained | |
| Code ownership | Full source + git repository handed over | You own it (you built it) | Usually closed/licensed, no source | |
| Time to compliance | 2-4 weeks from confirmed scope, tested before cutover | Often months of build and testing | Fast to install but may not clear correctly |
No. This is a build-to-order module. ECOSIRE builds it against your specific Odoo version, edition and JoFotara/tax setup, then installs and supports it. There is no instant marketplace download — you get code tailored to your environment and full ownership at handover.
Typically 2-4 weeks from confirmed scope. The timeline starts once we've agreed your Odoo version/edition, JoFotara onboarding stage and credentials, chart of accounts, and tax-code mapping on the scoping call. Simpler single-company setups land toward the shorter end; multi-company or heavily customised tax setups toward the longer end.
Yes. We build and test against Odoo 17.0, 18.0 and 19.0 on both editions. On Enterprise we leverage the `account_edi` framework where it fits; on Community we provide a self-contained submission path so you get the same JoFotara clearance and QR output either way.
Every engagement includes a post-go-live support window for defect fixes and clearance-issue triage. If JoFotara changes its XML schema or API, or you upgrade Odoo versions, we scope that as a maintenance update. Because you own the git repository, your own team or any Odoo partner can also maintain it.
Yes — that mapping is a core scoping deliverable. We build a worksheet reconciling your existing Odoo tax codes to the JoFotara tax categories, including general sales tax and special/income sales tax handling, so line-level subtotals and totals in the submitted XML match ISTD requirements.
Always. We validate against the JoFotara sandbox and run UAT on your staging environment before production cutover, with a documented rollback plan. Your live billing is never the test bed.
Yes. Submission runs at invoice validation or via a scheduled automated action, and the submission method is exposed over Odoo's XML-RPC/JSON-RPC API so upstream systems or your own scripts can trigger and read clearance status programmatically.
A build-to-order Odoo module that submits your invoices to Jordan's JoFotara national e-invoicing platform with ISTD-compliant XML and embedded QR codes. ECOSIRE builds, installs, and supports it around your chart of accounts and tax setup.