
Short answer: Odoo can be adapted to Uzbekistan's tax rules: books in sum on the national chart of accounts, 12% VAT (0% on exports, exempt supplies separately) calculated automatically, an MXIK (IKPU) code on every product, and e-invoices sent through Didox. Odoo 19 added an official Uzbekistan localization with the chart of accounts and VAT rates. MXIK codes, e-invoicing, VAT return lines and Central Bank rates are set up during implementation; Deep Vision has a ready-made Odoo module for Didox.
The question we hear most from CEOs and chief accountants is: "It's a foreign system. Does it know our taxes?" Many companies run operations in one program and tax accounting in 1C. The result is double data entry, e-invoice VAT that differs from the books by a few sum, invoices rejected because of a wrong MXIK code, and an accountant reconciling three sources by hand at every month-end.
No ERP delivers its full value unless it complies with local tax and reporting rules. Below we explain how Odoo handles VAT, MXIK codes, e-invoices, accounts, currencies and tax reports: what is standard, what is configured and what needs an integration. Bank reconciliation, month-end close and reports are covered in The Odoo Accounting module.
Is Odoo compliant with Uzbekistan's tax legislation?
Tax localization means adapting an ERP's chart of accounts, tax rates, document templates, reports and government integrations to one country's requirements. In Odoo it has three layers.
- Standard package. Odoo 19 includes the "Uzbekistan - Accounting" module (l10n_uz). It adds a four-digit national chart of accounts in Uzbek, Russian and English, 12% VAT on sales and purchases, 0% export and exempt taxes, VAT accounts, and the taxpayer ID (STIR) on invoices. In Enterprise, the l10n_uz_reports package adds a balance sheet and profit and loss statement.
- Configured during implementation. Fiscal positions, a tax report mapped to VAT return lines, MXIK fields on products, local print templates, rounding rules, analytic accounting.
- Integrations. E-invoicing through Didox, Asl Belgisi product marking, bank statements, Central Bank rates, fiscal devices in retail.
Odoo 17 and 18 have no official Uzbekistan package, so the chart of accounts and taxes are set up during the project. That is more work, which is why a partner who knows local legislation well remains the decisive factor.
Which taxes should an ERP handle in Uzbekistan?
An ERP should calculate each tax from the source document or give the accountant exact data for it; VAT is the most automatable.
- VAT. Standard rate 12%, exports 0%, some goods and services exempt. Odoo calculates it on every document line.
- Profit tax. General rate 15%. Odoo produces the P&L; the accountant makes tax base adjustments.
- Turnover tax. A simplified regime for small businesses. No VAT is charged, but e-invoices and MXIK codes are still required.
- Excise. A separate tax included in the VAT base (Odoo's "affects base of subsequent taxes" option).
- Import VAT and customs duties. Recorded from the customs declaration.
- Personal income tax and social tax. Calculated on payroll. Odoo Payroll needs separate localization or configuration for Uzbekistan; see Odoo HR apps.
Rates, thresholds and exemptions change, so check the current Tax Code with your accountant.
How is 12% VAT calculated and configured in Odoo?
In Odoo, VAT is a tax record on a document line: it calculates the amount, posts it to the right account and tags it for the matching tax report line. The setup:
- Taxes. 12% for sales and purchases, 0% for exports, a separate exempt tax. Ready in Odoo 19, created manually in earlier versions.
- Included or on top. Retail prices usually include VAT: from 1,120,000 sum, Odoo separates a base of 1,000,000 and VAT of 120,000. A wholesale price list may exclude VAT: 1,000,000 sum plus 12% gives 1,120,000.
- Product taxes. Each product gets default sales and purchase taxes; exempt products get the exempt tax.
- Fiscal positions. Rules that swap taxes by partner type: 0% export VAT for foreign customers; no input VAT from suppliers on turnover tax; VAT as a tax agent on services from non-residents (confirm this case with your accountant).
- Rounding. E-invoices usually calculate VAT per line. Set Odoo to round per line and totals match exactly.
- Tags. Each tax links to a tax report line through a tag, and the return is built from those tags.
In the Odoo 19 package, output VAT posts to 6411 "VAT Output" and input VAT to 4411 "VAT Input". When the period is closed, the balance moves to 6412 "VAT Payable" or 4412 "VAT Receivable". Different sub-accounts from your accounting policy can be set in the configuration.
How does Odoo track input VAT and offsets?
Input VAT is the tax paid to suppliers and offset against the VAT you owe; in Uzbekistan the basis for the offset is, as a rule, an e-invoice registered in the tax system. So purchases must be tied to e-invoices too.
- Vendor bills. Created from purchase orders; VAT posts to 4411.
- Incoming e-invoices. The Didox module downloads them into Odoo, where they are matched to vendor bills. You see which purchases are backed by a signed e-invoice, so unconfirmed VAT isn't offset by mistake.
- Imports. VAT paid at customs is a separate entry based on the customs declaration. Duties and freight go into product cost through Landed Costs.
- Mixed supplies. With taxable and exempt sales, input VAT is allocated under the Tax Code using separate taxes and accounts; the accountant approves the rule.
Tip: before each month-end close, compare input VAT in Odoo with the incoming e-invoice register in your taxpayer account, so differences surface before filing, not in an audit.
What is an MXIK (IKPU) code and where does Odoo store it?
An MXIK code (IKPU in Russian) is a 17-digit product or service identifier from the Unified Electronic National Catalogue; it appears on e-invoices, electronic contracts and till receipts. 17-digit codes have applied since July 2021. You find them at tasnif.soliq.uz, and each code is linked to a unit of measure (package).
Standard Odoo, including the version 19 package, has no MXIK field. The localization or the Didox module adds it to the product form. In practice:
- Fill in codes once. Export products to Excel, add the code and package from tasnif.soliq.uz, import back.
- Mandatory check. Set up a validation that blocks posting an invoice if the code is empty or not 17 digits.
- Services too. Delivery, rent and consulting lines need MXIK codes like goods do.
- Units of measure. The Odoo unit must match the code's package; mixing up "piece" and "box" often gets e-invoices rejected.
- Retail. Receipts also show the MXIK code, so when Odoo POS is connected to a fiscal module or virtual cash register, codes come from the product. See Odoo POS for retail.
- Marked goods. Asl Belgisi products also need a marking code for every unit. Deep Vision has a ready-made Odoo module for this too: Asl Belgisi digital marking.
How do you send e-invoices from Odoo through Didox?
In Odoo, e-invoices are not retyped in a separate portal: a posted invoice goes to the operator through Deep Vision's Didox module, and the buyer's response returns to Odoo. VAT accounting relies on this data.
- Odoo creates the invoice from the order and delivery; STIR, MXIK codes, package, quantity, price and VAT come from master data.
- The module converts it to the operator's format and sends it to Didox via API.
- The authorised person signs it with a digital signature (E-IMZO).
- The status returns to Odoo: sent, signed or rejected, with the reason in plain language.
- Incoming e-invoices are downloaded and matched to vendor bills.
Sales, e-invoices and VAT now come from one source. For operators, hybrid invoices and e-waybills, see E-invoicing: Didox, Soliq and ERP integration.
How does the national chart of accounts work in Odoo?
Uzbek accounting uses a chart of accounts based on National Accounting Standard No. 21; the Odoo 19 localization creates its four-digit accounts with names in three languages. Familiar accounts stay where accountants expect them:
- 4010: receivables from customers;
- 6010: payables to suppliers and contractors;
- 5010 / 5110 / 5210: cash, main bank account, foreign currency accounts;
- 2910: goods in stock;
- 9020 / 9120: revenue from goods and cost of goods sold;
- 9540 / 9620: exchange gains and losses;
- 4411 / 6411 / 6412 / 4412: VAT accounts.
One detail matters: a report tag places each account on a balance sheet or P&L line, and per Odoo's documentation an untagged account doesn't appear in these reports.
On Odoo 17 or 18, or when moving from 1C, you map old accounts to new ones and enter opening balances at the cut-over date. See Migrating from 1C to Odoo.
Sum, dollars and the Central Bank rate: how does Odoo handle currencies?
The company currency is the sum; each document keeps its own currency, and the journal entry is converted to sum at the transaction date rate. This fits the national standard's requirement to report foreign currency items in the national currency.
- Rates. Daily loading of the official Central Bank rate is set up through an integration.
- Imports. Bill in dollars, customs in sum, payment from currency account 5210.
- Exchange differences. If an invoice and its payment use different rates, the difference posts to 9540 or 9620 on reconciliation.
- Revaluation. Open currency balances are revalued at the month-end rate.
- Domestic settlements. Payments between residents are, as a rule, in sum, so domestic prices and e-invoices are in sum.
How does Odoo prepare the VAT return and tax reports?
Odoo builds the tax report from journal entries: each tax line reaches the right return line through its tag, and any figure drills down to its source document. This automates the forms filed with the tax authorities.
The VAT period is a calendar month; the return and payment are generally due by the 20th of the following month. The monthly cycle:
- Check. All invoices and bills are posted, e-invoice statuses are current.
- Reconcile. Output and input VAT in Odoo match the e-invoice register in your taxpayer account.
- Tax report. Odoo shows amounts by return line. The Odoo 19 package's ready-made reports are the balance sheet and P&L, so VAT return lines are configured during implementation.
- Close. Odoo's tax closing entry moves the 6411 and 4411 balances to 6412 or 4412. A lock date then prevents changes to that month.
- File. The return is filed at my.soliq.uz with a digital signature. Odoo prepares the figures and detail; the accountant files.
The tax report and closing are part of the Enterprise Accounting app; in Community, extra modules cover them. Invoice registers, reconciliation statements and financial statements come from the same entries, so most audit issues are caught early.
Which tax mistakes should you avoid?
- "We'll add MXIK codes later." An integration sends wrong codes as fast as right ones. Clean them before go-live.
- Ignoring the rounding method. Rounding per document creates small differences with e-invoices.
- Skipping fiscal positions. Exports and non-VAT suppliers get fixed by hand, and errors creep in.
- Offsetting VAT without an e-invoice. VAT claimed on unsigned or rejected e-invoices invites audit questions.
- Not tracking rule changes. A new e-invoice format needs a module update, so have a support agreement.
Checklist: is your Odoo ready for Uzbek tax requirements?
- Company currency is sum; Central Bank rates load automatically.
- Chart of accounts follows the national structure; every account has a report tag.
- 12%, 0% export and exempt taxes exist; VAT accounts are set.
- Fiscal positions cover exports, turnover tax suppliers and non-residents.
- Rounding matches e-invoices.
- Every product and service has a 17-digit MXIK code and correct package.
- E-invoices go out through Didox, statuses return, incoming invoices download.
- VAT return lines are configured in the tax report.
- Each month ends with a tax closing entry and a lock date.
- Accountants are trained; support is planned for the first tax period.
How can Deep Vision help?
Deep Vision is an official Odoo Gold Partner in Tashkent; we implement Odoo Accounting adapted to Uzbek tax requirements and connect our ready-made e-invoicing and marking modules.
- Localization. Chart of accounts, VAT, fiscal positions, a tax report for the return, local print templates.
- Ready-made modules. Didox e-invoicing and Asl Belgisi marking.
- Data. MXIK codes, partner STIRs, opening balances, migration from 1C.
- Experience. 7 certified specialists, 26 client projects in the Odoo partner directory, clients such as Optika.uz, Timsoll and RockBeton.
- Timelines. A full project usually takes 2–6 months; standard Sales and Inventory often go live in 6–8 weeks.
To be clear: Odoo doesn't replace your accountant. It cuts manual entry and prevents audit errors, but policy and tax decisions stay with your finance team. About the service: Odoo implementation. For budgeting: Odoo ERP pricing in Uzbekistan. To discuss your tax setup, fill in a short brief.
Frequently asked questions
Does Odoo calculate Uzbek VAT?
Yes. 12%, 0% export and exempt rates are set up as taxes and calculated on every document line. In Odoo 19 they are part of the official Uzbekistan package.
Does Odoo have an official Uzbekistan localization?
Yes, since Odoo 19: the chart of accounts, VAT taxes and accounts, plus a balance sheet and P&L in Enterprise. MXIK codes, e-invoicing, return lines and rates are added during implementation.
Does Odoo file the VAT return itself?
Usually not. Odoo prepares the amounts and detail; the return is filed at my.soliq.uz with a digital signature. The gain: no manual collection, and figures already reconciled with e-invoices.
How do I load MXIK codes into Odoo?
Export products to Excel, add codes and packages from tasnif.soliq.uz and import the file back. The code then lives on the product and flows into every invoice and receipt.
Does Odoo work with Didox?
Standard Odoo has no connection to Uzbek e-invoicing operators. Deep Vision's module sends invoices to Didox, returns statuses and downloads incoming e-invoices.
Can a turnover tax payer use Odoo?
Yes. It doesn't charge VAT, but still needs e-invoices, MXIK codes and revenue tracking. If it later becomes a VAT payer, the tax settings change and the database stays the same.
Can tax data be moved from 1C to Odoo?
Yes. You move opening balances, open debts and master data with STIRs and MXIK codes, not the full history; 1C stays as an archive.
Summary
Odoo works within Uzbekistan's tax system when the localization is done properly. Sales, e-invoices and VAT come from one source, and the accountant reviews figures instead of collecting them.
For a free consultation on adapting Odoo to your tax requirements, fill in the brief or call +998 77 093 00 07.