Software for Contracting Companies in Saudi Arabia: Odoo, Custom or a Ready SaaS
Job costs, purchasing, site stock and ZATCA invoices in one system, and an honest view of when a ready product is the better buy. We quote by what you need.
A contracting company needs job cost, purchasing, site stock and client invoices in one place, so the owner sees profit while the project is still running. We build it on Odoo, where Project, Purchase, Inventory, Accounting and Saudi invoicing modules already exist, or as custom software when your process is unusual. If a ready contracting product fits, buy it; this page says how to tell.
Devvista is a software development company and an official Odoo partner. Contact us with one running project.
Why contractors outgrow spreadsheets
A contracting company usually knows what a job was supposed to cost and finds out what it did cost weeks later. The quantities are in one file, supplier orders in another, site stock in a notebook, subcontractor claims in a chat group and the client invoice in the accounting package. When these do not connect, the owner sees profit on a project only after it is finished, and a change in one place does not reach the others.
This page is for owners and finance or project managers of building, MEP, fit-out and civil contractors who want job costs, purchasing, site stock and invoicing in one system. We build on Odoo, or as custom software when your process does not fit it. We do not state building or contractor-licensing rules here because we have not verified them from an official source; your consultant and your authorities decide those.
Search note (Evidence: Semrush Saudi Arabia, 7 November 2026): the Arabic phrase for contracting software draws about 10 searches a month and the results are ready-made software products. That is why this page is written for a buyer who is already weighing Odoo or a custom system, and why one section below says when a ready product is the better choice.
What the system covers: projects, costs, purchasing, site stock and invoices
These are the parts most contracting projects contain. We list what Odoo's own documentation describes and where we would add work, rather than selling a fixed bundle.
| Part | What it does | Where it comes from |
|---|---|---|
| Projects and tasks | One project per job with tasks, stages, sub-tasks, dependencies between tasks, milestones and reusable project templates | Odoo Project. Source: Odoo Project documentation |
| Job profitability | Compares the cost of project resources (employee costs, materials, purchases, expenses) with project revenue, moving amounts from expected to invoiced | Odoo's project profitability dashboard. It shows only records linked to the project and its analytic account. Source: Odoo project profitability |
| Cost codes and split costs | Plans group analytic accounts; a cost can be split across accounts by percentage; a plan can be set so an entry cannot be confirmed without an analytic account | Odoo analytic accounting. Source: Odoo analytic accounting |
| Purchasing | Requests for quotation, blanket orders, calls for tenders, purchase templates, vendor bills with control policies, purchase and vendor analysis reports | Odoo Purchase. Source: Odoo Purchase documentation |
| Site and warehouse stock | Warehouses and locations, receipts and deliveries, reordering rules, inventory adjustments, lot and serial numbers | Odoo Inventory. Source: Odoo Inventory documentation. Treating each site as a location is our design choice, not a feature the page names |
| Accounting and reports | Double-entry bookkeeping, vendor and customer balances, balance sheet, profit and loss, budget report, multi-company and branches | Odoo Accounting. Source: Odoo Accounting documentation |
Evidence: the feature names are listed in the linked Odoo documentation pages, opened 7 November 2026. Several of those pages list sub-topics (calls for tenders, purchase templates, lots) only as links, so we name them as listed. What each does in your case is confirmed in scoping and shown in a demo.
Subcontractors and progress billing: what the documentation supports and what is custom
Contractors ask about these two first, so here is the honest split.
Subcontractors. Odoo's subcontracting feature, as documented, belongs to Manufacturing: you set a bill of materials to the subcontracting type, name the subcontractor, and confirming a purchase order creates a receipt for the finished product (Odoo subcontracting documentation). That describes goods made by a supplier, not a works subcontract on site. For site subcontractors we would model each package as a purchase order linked to the project, so that, per the profitability page, its cost appears in the project once the vendor bill is posted. Certified work, measurement sheets and retention on a subcontractor are not described in the pages we read, so they would be configuration or custom work, quoted as such.
Progress billing. The documentation says project milestones can be the basis for invoicing the client, with a percentage of the ordered quantity delivered when a milestone is reached, and that a milestone is marked reached automatically when its linked tasks are done (Odoo project milestones). Sales orders can also carry a down payment as a percentage or a fixed amount, and invoices are created as drafts for review (Odoo down payments). Whether this matches how your clients certify interim payments, including any retention, is something we test in a demo with your real contract; it is not stated in these pages.
Invoicing under ZATCA e-invoicing
ZATCA's e-invoicing rollout runs in waves. The Wave 25 notice of 24 July 2026 covers businesses whose VAT-subject revenue exceeded SAR 187,500 in 2022 to 2025, with integration no later than 1 February 2027 (ZATCA Wave 25 notice). Check your own position with our Wave 25 checker and read the Wave 25 guide.
Odoo's Saudi documentation lists a ZATCA phase-two module, states standard VAT of 15%, and says tax invoices and their credit and debit notes must be in Arabic, with English optional. Each sales journal is onboarded separately with a one-time password that expires after 60 minutes, and invoices made in simulation mode are not legally valid (Odoo Saudi Arabia documentation). For a contractor with several companies or branches, the number of journals matters to the plan. The full approach is on Odoo ZATCA e-invoicing and accounting and e-invoicing software.
When a ready SaaS is the better choice
We would rather lose a project than sell you the wrong tool. Choose the path by your size and how unusual your process is.
| Path | Fits when | Watch out for |
|---|---|---|
| A ready contracting SaaS | A small team, standard bills of quantities and invoicing, and a product that confirms ZATCA phase two in writing and lets you export your data | Test it on a real project and real invoices. Check what happens to your data if you leave. We have not verified any vendor and do not recommend one here |
| Odoo | You want purchasing, stock, projects and accounting in one database, and you accept configuring Odoo's standard flows to your routine | Interim certificates, retention and site-specific reports may need custom work. See Odoo implementation in Saudi Arabia |
| Custom software | Your process is the business: unusual contract types, a field app for site engineers, or a connection to a system you already own | You carry the longer build and the upkeep. See custom software in Saudi Arabia |
A quick rule: if a ready product covers more than nine tenths of what you do today and you can leave it with your data, buy it. If you keep exporting to Excel to finish the job, bring the spreadsheets to the call. That is a Hypothesis from how we scope projects, not a measured threshold.
How we run a contracting project
Devvista is a software development company and an official Odoo partner. We do not show Odoo client work because those projects are under NDA, and we do not list Saudi contracting clients. What we offer instead is a working method you can check:
- A written scope after a call about your real jobs: one finished project and one running project, with the documents you use.
- A staging copy where your people test with your data before anything goes live.
- Weekly demos, so a wrong assumption about your routine shows up in week two, not at go-live.
- Your data moved in from Excel in a rehearsal first, with the mismatches listed for you to decide on.
- Code and configuration handed over, so you are not locked to us.
If you need extra hands on an existing Odoo system, see hire Odoo developers in Saudi Arabia and, in English, our global Odoo developer page.
What changes the cost
We quote by need and do not sell fixed packages. These are the drivers we see in scoping:
| Driver | Why it moves the estimate |
|---|---|
| Number of companies, branches and sales journals | Each journal is onboarded and tested separately for ZATCA |
| Contract and billing types | Lump sum, measured and milestone billing each need their own flow |
| Subcontract and retention handling | Not described in the standard pages we read, so likely custom |
| Data to bring over | Suppliers, items, open orders and running projects from Excel or an old system |
| Field use | A mobile app for site engineers and storekeepers is extra work |
| Arabic documents and reports | Arabic layouts and right-to-left printing need design and testing |
Fixed-price work on our side runs from $500 to $100,000 depending on complexity, and hourly work from $10 to $100 depending on the developer, in US dollars. To see how that reads on a contracting job: a 10-hour change to a project cost report at $40 an hour comes to $400, as an estimate and not a quote. For the wider ERP picture see ERP implementation cost in Saudi Arabia.
Ready to talk? Contact us with one running project and the system you use today.
Contact Devvista
Our address, phone and opening hours.
Amna Bint Wahb St, road, Jeddah 23622, Saudi Arabia
- SundayOpen 24 hours
- MondayOpen 24 hours
- TuesdayOpen 24 hours
- WednesdayOpen 24 hours
- ThursdayOpen 24 hours
- FridayClosed
- SaturdayClosed
Tell us about one running project and the system you use today and we will send an estimate. Get an estimate.
Straight Answers.
Services
Custom Software DevelopmentAI & AutomationSaaS DevelopmentCRM DevelopmentOdoo Implementation & DevelopmenteCommerce DevelopmentDedicated Development TeamsWordPress DevelopmentUI/UX DesignSEO ServicesIT Staff AugmentationWhite Label DevelopmentGuides
ZATCA e-invoicing for OdooSoftware development for Saudi ArabiaZATCA Wave 25Wave 25 CheckerContact and bookingOdoo ERPERP Cost GuideAccounting and e-invoicingLogistics softwareWebsite DevelopmentMobile App DevelopmentHire developers for Saudi ArabiaHire .NET developers for Saudi ArabiaAI Chatbots and AutomationOnline Store DevelopmentContracting softwareManufacturing ERPWholesale and distributionHire Odoo developers for Saudi Arabia Case Studies Devvista BlogTell us about one running project
Tell us a project you are running, how you bill it and the system you use today. We will say honestly whether Odoo, custom or a ready SaaS fits, and quote in writing.
- 30-minute consultation
- No commitment required
- Response within 24 hours
- Book a call30 minutes with the team.
- Get a clear planSteps, timeline and a cost range for your setup.
- DecideGo ahead with us, or take the plan with you.