Available
AhlanHamad × Odoo
Finalize a payroll run in AhlanHamad and it reaches your own Odoo database as one summarised journal entry, posted in the Miscellaneous journal you pick and mapped once to your chart of accounts.
Open to every company. Connect it yourself: in AhlanHamad, a company admin opens Integrations and connects your own Odoo account.
- Status
- Available
- Category
- Accounting
- Where it stands
- Built, and tested end to end with real Odoo 18 and Odoo 19 databases (11 Oct 2026): connect, post, automatic posting, and the reversal of a deleted run. Odoo 17 has not been run against a live database yet.
- What you need
- Your own Odoo with external API access (on odoo.com that's the Custom plan; self-hosted Odoo and Odoo.sh work when the server is reachable over the internet), an API key, and a company admin in AhlanHamad to connect it and map the accounts.
What it does
- Payroll accrual: when a run is finalized, one posted journal entry with a line per account — salaries and allowances, employer social insurance, and the payables they create.
- Salary payment and bank charges: when the run is marked paid, a payment entry follows; recorded bank transfer charges get their own entry.
- End of service: each month's end-of-service accrual posts as its own entry. Months booked before you connected can be sent later, oldest first, after you confirm the list.
- Your Odoo company and journal: you pick which Odoo company receives the entries and the Miscellaneous journal they post in.
- Other currencies: a run in a currency other than your Odoo company's is held unless you allow conversion at AhlanHamad's daily rate.
- Corrections are new entries, never edits: when a payroll entry is reversed in AhlanHamad, for example when a run is deleted, the reversal posts as its own entry, linked in Odoo to the entry it reverses.
How it works
- Connect your Odoo from Integrations in AhlanHamad with its address, database name and an API key.
- Pick the Odoo company and journal, then map each payroll account to an Odoo account, once. An entry is held until every account it uses is mapped.
- Run payroll as usual. The payroll run page shows each entry's status, and why one is held or failed.
Step-by-step setup guide: connect Odoo, map your accounts and check your first payroll
What it doesn't do
- No per-employee entries. Names, IDs and individual salaries stay in AhlanHamad; Odoo receives totals per account.
- It doesn't use Odoo's reversal wizard: a reversal is a mirrored entry linked to the original, and the two are not reconciled against each other.
- It creates journal entries only: no employees, payslips or invoices in Odoo, and no government filings.
Questions
Which Odoo versions does it work with?
It talks to Odoo 17 and 18 through JSON-RPC, and to Odoo 19 and later through Odoo's JSON-2 API; the version is detected when you connect. It has been tested end to end on Odoo 18 (JSON-RPC) and Odoo 19 (JSON-2); Odoo 17 has not been run against a live database yet.
Does it work on every odoo.com plan?
No. On odoo.com it needs the Custom plan, because Odoo's external API, which this connection uses, isn't offered on the other plans. Self-hosted Odoo and Odoo.sh work when the server is reachable over the internet.
Talk to us
Questions about this connection: support@ahlanhamad.com.
All integrations· Trust and security
Odoo and its logo are trademarks of their owner. AhlanHamad connects to it with your own account; this page does not imply a partnership or sponsorship.