Odoo Sales Reports in Jordan: Which Figures Match JoFotara
In Jordan, the Odoo sales figure that should match JoFotara is Invoice Analysis plus uninvoiced shop receipts. See why POS receipts skip that report, how to split local and export sales by fiscal position, and how to keep fils exact in Excel.
Published 2026-10-17 · METCH
Which Odoo sales figure should match JoFotara?
The short answer for a business in Jordan: Invoice Analysis, plus uninvoiced shop receipts if your tills send receipts to JoFotara. Odoo submits customer invoices and credit notes to JoFotara from the Send step through the l10n_jo_edi module, so the invoice figure is the one that should line up with what the Income and Sales Tax Department (ISTD) has received from you.
Odoo has three standard sales reports, and each answers a different question:
- Accounting > Reporting > Management > Invoice Analysis (the Invoicing app on Community): what was invoiced, net of credit notes. It opens with the Invoiced and Customers filters on, and Odoo's own help text points here, not to Sales Analysis, for turnover.
- Sales > Reporting > Sales (Sales Analysis): what was ordered, by salesperson, team, customer, product or company.
- Point of Sale > Reporting > Orders: what each shop and register sold.
Three things catch owners out the first time they open Odoo 19 or 20:
- The Sales Analysis graph opens on Qty Ordered, so 1,250 means units of every product added together, not JOD 1,250.000. Switch the measure to Untaxed Total.
- The Sales > Reporting menu appears only for users with the Sales Administrator right.
- The pivot no longer has a Comparison option: Odoo 19 removed Previous Period and Previous Year from the search filters. Group the columns by Order Date: Year or Month to see periods side by side, or use the standard dashboards, which show the previous period.
None of this needs custom code.
Orders or invoices in dinars: why the two figures differ
Sales Analysis reads order lines. It dates each order by its Order Date, which Odoo resets when a quotation is confirmed, and two default filters apply: Sales Orders (excludes quotations and cancelled orders) and Order Date: Last 365 Days. A credit note issued later for a returned pallet does not reduce the order, so a month with heavy returns looks better here than in your books.
Invoice Analysis reads posted invoices and counts credit notes as negative. Before you trust a month, open the customer invoices and credit notes, group them by JoFotara State and clear anything still To Send. Sent (Demo) means the company's JoFotara Demo Mode was on and nothing reached ISTD, so it does not count either.
Four Jordanian details to settle before anyone compares the two:
- Tax: Untaxed Total and Untaxed Amount exclude general sales tax (16% standard rate; the localization also carries 10%, 4% and 0% rates). The Total measure includes it, and the special sales tax too for companies registered in it. Judge performance on untaxed figures.
- Local vs export: group Invoice Analysis by Fiscal Position. The localization's Jordan and Non-Jordan positions separate local sales from 0% export sales, which a QIZ exporter will want side by side.
- Currency: both reports convert to JOD at the rate stored on each document. The dinar's dollar peg keeps USD orders steady, but a European buyer's EUR orders move with the euro.
- Fils: Odoo keeps the dinar to three decimals. Keep three in Excel too, or reconciliations will be off by rounding.
Shop receipts and payment methods: the JoFotara side of Point of Sale
Retail is where reports disagree most. With Jordan Electronic Receipts (JoFotara) enabled in Point of Sale settings, each paid order goes to JoFotara as a receipt and becomes an invoice only if the customer asks. Uninvoiced orders post as one journal entry per session, so they reach your income accounts but never Invoice Analysis. For a retailer, what JoFotara received is Invoice Analysis plus uninvoiced POS orders.
Group the POS orders list by JoFotara Receipt State weekly. Orders usually stay To Send for one of these reasons:
- Payment methods: Odoo ticks JoFotara Cash only on methods with a cash journal. Card, CliQ and Customer Account then count as receivable, which requires a customer on the order, and Odoo will not send an order that mixes cash with them. Agree with your accountant how card and CliQ are reported, then set the box to match.
- A cash order above JOD 10,000 with no customer.
- A refund with no return reason, or whose original order was never sent.
- A global discount or any other negative line.
Read each shop in Point of Sale > Reporting > Orders, grouped by Point of Sale. For takings per payment method use Point of Sale > Orders > Payments, because the Orders report files a split payment under its first method.
With Sales also installed, the pos_sale bridge adds POS orders to Sales Analysis, so its Untaxed Total includes shop sales. Give each POS its own Sales Team in its settings and filter those teams out for B2B orders alone.
Importer margins, returns and branches from Amman to Aqaba
An importer's margins are wrong until freight, customs duty and clearance through Aqaba are in product cost. Odoo does this with Landed Costs: enable it under Inventory > Configuration > Settings > Valuation (it installs Purchase too) and allocate each container's charges to its receipts. It only raises the cost of FIFO or average-cost products; Odoo 19 refuses it when all products use standard cost.
Then turn margins on: in Odoo 19, Sales > Configuration > Settings > Pricing > Margins; in Odoo 20, margins install with Sales. No Margin % totals in a pivot, so divide Margin by Untaxed Total. Read past margins in Sales Analysis: Invoice Analysis values old invoices at today's cost, so a new container moves last quarter's figures.
Returns need two checks:
- Which products drive them: Invoice Analysis with the Customers and Credit Notes filters, grouped by Product.
- Whether they reached JoFotara: create each credit note with its invoice's Credit Note button and a reason, which links the two and fills Customer Reference. Odoo needs both to send it.
For branches in Zarqa, Irbid or Aqaba, create each in the company form's Branches tab and group reports by Company. JoFotara credentials sit on each company record, so a branch ISTD registered as a separate income source can carry its own sequence; confirm with your accountant. A branch in the Aqaba Special Economic Zone follows the zone's own sales tax rules; set up its taxes before comparing margins. On a Standard plan, branches trigger an upsell to Custom; check Odoo's pricing page.
Before the sales tax return: period-close checks, and when Odoo is not the tool
Before your accountant files the sales tax return (most registrants file for two-month periods; confirm yours), run the same checks every period:
- JoFotara backlog: the value and count of invoices, credit notes and POS orders still To Send. The target is zero.
- Invoiced sales: Invoice Analysis filtered on the period's invoice dates, with Untaxed Amount and Total side by side, plus uninvoiced POS orders.
- Local and export share: the same report grouped by Fiscal Position.
- Returns ratio: credit notes as a share of invoices.
- Payment mix, including CliQ: Point of Sale > Orders > Payments.
The standard Sales dashboard comes with Community; building your own needs Odoo Spreadsheet, which is Enterprise.
Clean data makes these checks quick: one customer record per tax number, a cost on every product, CliQ as its own payment method, and a country on every customer, since it sets both the fiscal position and the JoFotara invoice type that sending requires.
Odoo is not the right tool for everything. Its CRM forecast is built from the opportunities your team enters. Predictive Lead Scoring can set each deal's probability from past won and lost deals, but Odoo's standard sales reports do not project future sales from historical trends. A group consolidating Odoo with other systems may need a separate BI tool.
METCH is an official Odoo Ready Partner with an Odoo-certified consultant, and it works with businesses in Jordan. Book a free consultation, bring last period's JoFotara totals and an Odoo export, and we will reconcile them with you.
Frequently asked questions
Is Odoo linked to JoFotara, and which sales report matches what the tax department sees?
Yes. The Jordan localization installs the JoFotara connector (l10n_jo_edi), set up under Accounting > Configuration > Settings > Electronic Invoicing (Jordan) with your Activity Number (sequence of income source), Client ID, Secret Key and taxpayer type. It submits customer invoices and credit notes from the Send step. The matching figure is Invoice Analysis with its default Invoiced and Customers filters. If your tills send receipts, add Point of Sale > Reporting > Orders with the Not Invoiced filter and the Subtotal w/o Tax measure.
How do I export a sales file from Odoo for my sales tax return in Jordan?
Open Invoice Analysis, keep the default Invoiced and Customers filters, and set Invoice Date to the months of your tax period. In the pivot, put Fiscal Position and month in the rows, with Untaxed Amount and Total as measures, then download the .xlsx and keep three decimals. Retailers add uninvoiced POS orders from Point of Sale > Reporting > Orders. Clear anything still To Send first. This is a working file for your accountant, who still prepares and files the return.
Why doesn't my Odoo sales total match what JoFotara shows?
Usually one of five reasons. Uninvoiced POS receipts reached JoFotara but sit outside Invoice Analysis. Some documents are still To Send, or show Sent (Demo), which never reached ISTD. Invoice Analysis nets credit notes against invoices, so compare it with invoices minus returns. One side includes tax and the other does not, so compare Total with Total. Or an Excel export rounded to two decimals and lost the fils. Check them in that order.
What are the most important sales reports for a retail shop in Jordan?
Start with Point of Sale > Reporting > Orders, grouped by Point of Sale to compare branches, with the Margin measure once product costs are filled in. For cash, card and CliQ takings use Point of Sale > Orders > Payments, grouped by Payment Method, since the Orders report counts a split payment under its first method only. Read the Session Report at each day's close. Weekly, group POS orders by JoFotara Receipt State so no paid order is left To Send.
Need help with this?
METCH is a certified Odoo partner serving Jordan — book a free consultation.
Get a proposal