Skip to content
meroxisPublic

About

Free, open-source accounting software for Iraqi companies, in Arabic, Kurdish (Sorani) and English. Iraqi Unified Accounting System, vouchers with approvals, invoices, stock, final accounts, IQD and USD. Windows app in the Microsoft Store, and a live demo.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Qasa ERP: accounting software for Iraqi companies, shown with its dashboard

Qasa ERP · قاصة ERP · قاسە ERP

Accounting software for Iraqi companies, built on the Iraqi Unified Accounting System.
Arabic, English and Kurdish. Dinars and dollars. Free for one PC.

Get Qasa ERP from the Microsoft Store

Try the live demo in your browser Or download the installer for Windows 10 and 11

Latest version Tests License: AGPL-3.0 Sponsor

Website · Install · Features · Screenshots · Plans · Compare · Switch from Excel · Run it · License

What it does

Qasa ERP keeps the books of an Iraqi company the way its finance department already works.

  • The books, the Iraqi way. The unified chart of accounts (النظام المحاسبي الموحد), receipt and payment vouchers and journal entries that go from preparer (المنظم) to checker (المدقق) to approver (المصادق), gap-free numbers, corrections by reversal rather than editing, period locking and a full audit log.
  • Sales, purchases and stock. Invoices with the total in words (تفقيط), returns, customers and suppliers with statements and credit limits, warehouses, opening stock and transfers, all valued at weighted average cost.
  • Reports that close the year. Trial balance, account statements and the final accounts: the trading, current operations and profit and loss accounts, and the balance sheet.
  • Three languages, two currencies. Arabic, English and Kurdish (Sorani), switchable at any time, with Arabic-Indic digits if you prefer; dinars and dollars at the day's rate.
  • A team, with controls. Sign-in, roles, and separate duties, so whoever prepares a voucher cannot approve it.
  • On your own PC. The Windows app, from the Microsoft Store or our installer, keeps the company file on your computer, works without internet and stays up to date. Several PCs can share it over the office network; an online edition (in the browser) is coming later and will share the same code.

بالعربية: قاصة ERP برنامج محاسبة مجاني ومفتوح المصدر للشركات العراقية، مبني على النظام المحاسبي الموحد: سندات القبض والصرف والقيود اليومية بتسلسل المنظم والمدقق والمصادق، وفواتير المبيعات والمشتريات ومردوداتها، والمخزن بمتوسط الكلفة، وميزان المراجعة والحسابات الختامية، بالدينار والدولار. يعمل على ويندوز دون إنترنت، وبالعربية والكوردية والإنجليزية. جرّب النسخة التجريبية أو ثبّته من Microsoft Store أو نزّل ملف التثبيت.

بە کوردی: قاسە ERP بەرنامەیەکی ژمێریاریی بەخۆڕایی و سەرچاوەکراوەیە بۆ کۆمپانیا عێراقییەکان، لەسەر سیستەمی ژمێریاریی یەکگرتوو: سەنەدی وەرگرتن و پارەدان و تۆماری ڕۆژانە بە زنجیرەی ئامادەکار و وردبین و پەسەندکەر، پسوولەی فرۆشتن و کڕین و گەڕاندنەوەکانیان، کۆگا بە تێچووی مامناوەند، تەرازووی پێداچوونەوە و هەژمارە کۆتاییەکان، بە دینار و دۆلار. لەسەر ویندۆز بێ ئینتەرنێت کار دەکات، بە کوردی و عەرەبی و ئینگلیزی. وەشانی تاقیکردنەوە بکەرەوە، لە Microsoft Store دایبمەزرێنە یان فایلی دامەزراندن دابگرە.

Status: Release 1 in progress. See the progress list. The live demo runs entirely in your browser with a sample company: nothing is sent to a server, and a reload starts it afresh.

Install

  • Microsoft Store (recommended): free, signed by Microsoft so Windows installs it without a warning, and kept up to date by the Store. Windows 10 version 1903 or later, or Windows 11, with 2 GB of memory.
  • Installer: Qasa-ERP-Setup.exe from Releases or qasaerp.com, for PCs without the Microsoft Store (Windows 10 and 11, 64-bit). It isn't code-signed yet, so Windows SmartScreen may show "Windows protected your PC" or "Unknown publisher": click More info, then Run anyway. GitHub shows each release file's SHA-256 next to it. The installed app updates itself from this repository's releases.

Both keep the company in %APPDATA%\Qasa ERP, so you can move from one to the other without losing your books (install the same version or a newer one; Help → About shows it), and uninstalling either keeps them. Keep only one on a PC: install the new one, then uninstall the other. Starter, Pro and Business licenses from my.qasaerp.com work in both; the Store doesn't sell them.

Screenshots

The same dashboard in Arabic, English and Kurdish

Dashboard in English

Dashboard
Cash and banks, this month's sales, what customers and suppliers owe, and the vouchers waiting for check or approval.

A sales invoice in Arabic

Sales invoice · Arabic
Ready to print, with the discount and the total in words. Returns are made from here.

A receipt voucher in Kurdish

Receipt voucher · Kurdish
Prepared, checked and approved by different people; each signature is recorded with its time.

Final accounts and balance sheet

Final accounts
Trading, current operations and profit and loss accounts, and a balance sheet that checks itself.

Trial balance in Arabic

Trial balance · Arabic
Movements and balances in two columns, as Iraqi accountants expect, with Excel export.

Stock card of an item

Stock card
Every move of an item, with the running quantity and its value at average cost.

Users, roles and sign-in

Users and roles
Sign-in, roles for each person and separate duties for a team (Pro).

Try it yourself

Open the live demo
No sign-up, no download

Get it from the Microsoft Store
Free for one PC · or the installer

The screenshots show the sample company that comes with the app (npm run seed:demo). node scripts/screenshots.mjs takes them again.

Run it

Needs Node.js 24 or newer.

npm install
npm run seed:demo   # optional: sample company with customers, items, invoices and vouchers
npm run dev         # API on :4417 + app on http://localhost:5173
npm test            # core + API tests
npm run typecheck

The database is data/qasa.sqlite (set QASA_DATA_DIR to move it). Delete the data folder to start fresh.

Windows app

apps/desktop wraps the same server and screens in Electron:

npm run desktop     # run the Windows app from source
npm run dist:win    # build apps/desktop/release/Qasa-ERP-Setup-<version>.exe
npm run dist:store -w @qasa/desktop   # …and the Microsoft Store package (Microsoft signs it when the Store accepts it)
  • The company file is %APPDATA%\Qasa ERP\data\qasa.sqlite; the support log is %APPDATA%\Qasa ERP\logs\main.log. The Microsoft Store version uses the same folder (its package doesn't virtualize it), so both versions work on the same books.
  • The built-in server listens on 127.0.0.1 only and answers only the app's own window (a new secret each launch).
  • The window has no Node access (sandbox, context isolation) and loads nothing but the app. Electron fuses stop the program being used as a plain Node runtime and make it reject tampered app files.
  • Updates: the installer version checks GitHub releases of this repository at start and every six hours, downloads in the background and asks before restarting. The Microsoft Store version is updated by the Store, from the package the same release workflow builds; its Help → Check for updates opens the Store page.

The company database on a MariaDB or MySQL server (Business)

Instead of the company file, a company can keep its books on its own MariaDB (10.6 or newer) or MySQL (8.0.16 or newer) server: Settings → Company database → Move the company to a database server.

  • One PC (the one that moves) works on the server; the other PCs keep connecting to that PC through the office network. The server holds a lock per database, so a second Qasa ERP on the same database is refused.
  • The move copies the whole company into an empty database and compares every table, row for row and in money, before anything switches; the PC's company file is kept aside, untouched. Move the company back copies it into a new company file the same way. Backups keep working and are always company files.
  • The same schema and rules as SQLite (packages/server/src/schema-mysql.ts, checked against the SQLite schema by schema.test.ts): posted vouchers, invoices and stock moves are protected by triggers, text compares byte for byte.
  • Security: TLS is required (only a server on the same PC may go without). Nothing, not even the user name, goes to the server before its certificate passes — a public certificate for its name, one signed by the certificate authority you give (MySQL's ca.pem), or exactly the self-signed certificate you confirmed by its SHA-256 fingerprint (MariaDB). The password is kept only on that PC, protected for its Windows user (DPAPI). Use a database user with rights on that one database only; the app warns about an account with rights on the whole server.
  • MySQL with binary logging (the default) lets an ordinary user create triggers only with log_bin_trust_function_creators = ON; the check says so before anything is moved.
  • The app's code stays synchronous, as with SQLite: the connection lives on a worker thread and each statement waits for its answer (pro/, Meroxis builds only). To run the whole test suite on a server: QASA_TEST_DB=mariadb|mysql QASA_TEST_SERVERS=<test-servers.json> npx vitest run.

Project layout

Folder What it is
packages/core Accounting rules with no UI or database: money in minor units, IQD/USD, amount in words (ar/en/ku), the unified chart of accounts, journal validation, vouchers, trial balance, account statement
packages/server Node.js API (Fastify) + SQLite (node:sqlite), or a MariaDB/MySQL server through the same Db interface. Posted entries are protected by database triggers; the audit log is append-only. The routes (routes.ts) don't depend on Fastify, so the website demo runs them in the browser
apps/web React screens, right-to-left and left-to-right, fonts bundled for offline use. npm run build:demo -w @qasa/web builds the browser-only demo (SQLite in WebAssembly) into apps/web/dist-demo
scripts/dev.mjs Starts server and app together

Accounting rules the code enforces

  • Money is stored as whole numbers (IQD dinars, USD cents) — never floating point. USD entries store the day's rate and their IQD value.
  • Every entry must balance; only sub-accounts (no children) take entries.
  • Vouchers follow the Iraqi approval chain: draft (المنظم) → checked (المدقق) → approved (المصادق). Only approved entries reach the reports.
  • Voucher numbers (RV-, PV-, JV-, RJ-) are given at approval, so posted numbers have no gaps.
  • Approved entries can never be edited or deleted — even by raw SQL — only reversed with a reversal entry (قيد عكسي).
  • Locked months take no new vouchers or approvals. Every change goes to the audit log.
  • Invoices are numbered when posted (INV-, PI-) and post their own entry: a sale debits the safe or the customer and credits sales (42), and moves its cost at weighted average from the warehouse account (137x) to cost of sales (35). Posting accounts are editable in Settings.
  • Stock moves are permanent. A posted invoice is never edited or deleted — cancelling it reverses its entry and puts the stock back; a purchase whose goods were already sold can't be cancelled.
  • A sale can't take more than the warehouse holds, and a credit sale can't pass the customer's credit limit.
  • Each warehouse has its own inventory account, so its stock value always equals its ledger balance.
  • An installment contract (INS-) schedules a posted credit sale: the invoice is the sale at the installment price, so the contract posts nothing itself. Each collection is a receipt voucher (Dr the safe, Cr the customer), posted at once and counted against the oldest installments; reversing it takes the payment back. The terms, the schedule and the collections can't be edited, only the contract cancelled, and a sale under an active contract can't be cancelled or returned. Monthly amounts are round (whole thousands of dinars or whole dollars), the last one taking the rest.

Release 1 progress

  • Project setup, database, migrations
  • Iraqi unified chart of accounts in 3 languages (to be reviewed by a licensed accountant)
  • Receipt / payment vouchers, journal entries, approvals, reversals, period locking, audit log
  • Trial balance and account statement (print + Excel export)
  • Sales & purchase invoices, customers & suppliers (with statements), items, warehouses, weighted-average stock
  • Opening stock, sales and purchase returns, stock transfers between warehouses
  • Installment sales (Pro): contracts from a credit sale or an earlier balance, guarantors, schedule, collection by receipt voucher, overdue aging, printed contract with the guarantor's pledge
  • Sales pipeline (Pro)
  • Payroll (Pro)
  • Final accounts: trading, current operations and profit and loss accounts, and the balance sheet (unified-system layout, to be reviewed by a licensed accountant)
  • Year-end closing: a closing entry moves revenue and expenses into the accumulated result (229) and locks the year; reopen by reversal
  • Users, roles and sign-in (Free: one password-protected user; Pro: up to 5 users with roles and separate duties)
  • Office-network (server) mode: other PCs work on one PC's company file over the office network (encrypted, with a pairing code), each person with their own user
  • Windows app and installer with automatic updates
  • In the Microsoft Store, signed by Microsoft
  • Plans (Free, Starter, Pro, Business) with signed license keys and a free first month on each PC
  • Backups: a daily checked copy of the company file in a folder of your choice, and restore
  • The company database on the company's own MariaDB or MySQL server (Business), with move there and back
  • Code signing of the installer (the Microsoft Store version is signed by Microsoft)

Plans

Free is the complete accounting product for one company on one PC, with no time limit. Starter, Pro and Business add what a growing company needs, and the app shows the full comparison, with the price of a year of each plan, under Plan & license. Starter is Pro for a small office: 2 users and 1 company, with every Pro feature except Qasa Relay and the cloud backup.

Free Starter Pro Business
A year, in Iraqi dinars free 165,000 350,000 1,000,000
Accounting, vouchers, invoices, returns, stock, trial balance ✓ ✓ ✓ ✓
Final accounts on screen print and Excel print and Excel print and Excel
Warehouses 1 unlimited unlimited unlimited
"Made with Qasa ERP" on invoices shown removed removed removed
Your company logo on printed papers ✓ ✓ ✓
Users, with sign-in 1 2, with roles and separate duties up to 5, with roles and separate duties unlimited
Office network (several PCs on one company file) ✓ (inside the office) ✓ ✓
Qasa Relay (the office network from anywhere over the internet) ✓ ✓
Companies 1 1 3 unlimited
Daily backups to a folder of your choice (OneDrive, Google Drive, USB) ✓ ✓ ✓
Encrypted cloud backup to Google Drive ✓ ✓
Year-end closing (closing entry, locked months, reopen by reversal) ✓ ✓ ✓
Company database on your own MariaDB or MySQL server ✓
Installment sales with guarantors ✓ ✓ ✓
Payroll ✓ ✓ ✓
Branches ✓
Online edition coming soon

Some features are still being built; the app marks them as coming soon. A plan never locks anyone out of their data: when a license ends, the company keeps everything and continues on the Free features. Only as many users as the plan allows can sign in (admins first, then the earliest made); no user is deleted. The first month on each PC is free, with every feature except Qasa Relay; it starts by itself on the first run and is given once per PC, not once per company. Licenses are keys signed by Meroxis (Ed25519), activated online once on each PC. Buy or renew one in the customer portal, my.qasaerp.com, and pay with Wayl, a bank transfer or cash. Licenses aren't sold in the Microsoft Store; a key from the portal works the same in the Store version and the installer.

Trust and security

  • Open source: the core app, with the rules that post every voucher and invoice, is here under the AGPL. Anyone can read how each dinar is posted. Two parts are not open source: the Starter, Pro and Business features are a separate proprietary module (pro/, not in this repository), and the compiled licence addon (native/licence) is proprietary too, all rights reserved by Meroxis (its LICENSE).
  • Tested on every change: the accounting rules, the API and the database upgrades have automated tests, run by GitHub Actions on every push (see the Tests badge).
  • Your data stays with you: the Windows app keeps the company file on your PC and works without internet (or, on Business, on your own MariaDB or MySQL server); the demo runs entirely in your browser. On its own the app goes online only to check for updates, to activate and check a license, and for a daily usage ping (installation number, version, plan and counts; never the license number, so it is never linked to a license) that can be switched off in Settings. The books leave the PC only when you choose it: an encrypted cloud backup, the office network, Qasa Relay or the website API (items, prices, stock, customers and orders shared with your own website).
  • Books that can't be rewritten: the database refuses edits to posted vouchers, invoices and stock moves, and keeps an append-only audit log.
  • Releases are built from this repository by GitHub Actions and published under Releases; the same build goes to the Microsoft Store, where Microsoft checks and signs it. The installer isn't code-signed yet: get it only from this repository or qasaerp.com.

How the app protects data, and how to report a vulnerability: SECURITY.md. How to help: CONTRIBUTING.md. Our code of conduct.

License

Qasa ERP is a product of Meroxis. Its core app (everything in this repository except native/licence) is free software under the GNU Affero General Public License v3.0 or later, with the additional terms in NOTICE: copies must keep the "Made with Qasa ERP" credit printed on invoices, unless you have a Starter, Pro or Business license from qasaerp.com. The name and logo belong to Meroxis.

Not under the AGPL, and not open source: the Pro module (pro/, a separate private repository) and the licence addon (native/licence, see its LICENSE). Both are proprietary to Meroxis, all rights reserved, and ship only in the official builds under the Qasa ERP license agreement (EULA).

© 2026 Meroxis

About

Free, open-source accounting software for Iraqi companies, in Arabic, Kurdish (Sorani) and English. Iraqi Unified Accounting System, vouchers with approvals, invoices, stock, final accounts, IQD and USD. Windows app in the Microsoft Store, and a live demo.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages