Skip to main content
Bahrain Payroll (GOSI, LMRA) — Build-to-order Bahrain payroll for Odoo: GOSI/SIO contributions, LMRA permit tracking, end-of- — 1/1Illustrative preview

Build-to-order Bahrain payroll for Odoo:

GOSI/SIO contributions, LMRA permit tracking, end-of-service settlement and WPS bank file export.

What is Bahrain Payroll (GOSI, LMRA)?

Build-to-order Bahrain payroll for Odoo: GOSI/SIO contributions, LMRA permit tracking, end-of-service settlement and WPS bank file export. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

GOSI/SIO social insurance calculation with separate Bahraini and expatriate contribution bases and rates, implemented as parameterized Odoo salary rules so employer and employee shares post automatically on each payslip
Nationality-aware payroll: hr.employee is extended with a BH nationality flag and computed fields (@api.depends) that route each employee to the correct social-insurance scheme and ceiling
LMRA work-permit tracking on the employee/contract record — permit number, category, issue and expiry dates — with automated actions that flag upcoming expiries before they lapse
End-of-service (leaving indemnity) engine that accrues entitlement by service length and BHD basic wage, computed per Bahrain labour rules and produced as a settlement statement on termination
BHD-denominated salary structures and structure types (basic, allowances, deductions) pre-built for Bahrain, with company currency and rounding configured for BHD
WPS-compliant salary bank file export (Wage Protection System) generating the fixed-format file your Bahraini bank requires for salary transfers
GOSI/SIO monthly contribution report as a QWeb PDF/spreadsheet showing per-employee and establishment-level contributions for submission and reconciliation
Payslip and end-of-service QWeb reports branded to your company, printable in English and Arabic layout on request
Automatic Accounting integration — payroll journal entries mapped to your chart of accounts so salaries, GOSI liability and net-pay clearing post to the correct ledgers
Role-based security via ir.model.access.csv and record rules so HR, payroll officers and finance each access only permitted payslips and employee data
Configurable allowances and deductions (housing, transport, other) added as salary-rule inputs without code changes on routine runs
XML-RPC / JSON-RPC API access and automated actions so payroll data can feed downstream systems, dashboards or scheduled bank submissions
Multi-establishment support for companies operating several CRs or branches under one Odoo database
Clean upgrade path across Odoo 17, 18 and 19 as a versioned addon, so the localization survives your future Odoo upgrades

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Bahrain Payroll (GOSI, LMRA) is a build-to-order Odoo localization that ECOSIRE designs, builds, installs and supports for your company — not an instant download from apps.odoo.com. After purchase we scope your entity, configure it, and hand over a working module on your Odoo 17, 18 or 19 database within a typical one working week lead time.

Standard Odoo Payroll ships with no Bahrain (BH) localization: GOSI/SIO contribution rules, LMRA work-permit fields, Bahraini-vs-expat social-insurance splits, BHD-denominated salary structures, end-of-service leaving indemnity and WPS bank files simply are not there. Teams end up bolting on spreadsheets or hand-editing salary rules on every run — error-prone and impossible to audit.

We solve that at the framework level. The module is a proper Odoo addon with its own __manifest__.py declaring dependencies on hr and hr_payroll (Community-compatible where possible; Enterprise features flagged during scoping). Contribution logic lives in Python salary rules and models.Model extensions of hr.employee, hr.contract and hr.payslip, with computed fields using @api.depends so GOSI/SIO deductions and end-of-service accruals recalculate automatically. Nationality-aware records (Bahraini vs expat) drive the correct social-insurance base and rate. Access is governed by ir.model.access.csv plus record rules so HR and finance see only what their role permits, and payslips, the GOSI contribution schedule and end-of-service statements render as branded QWeb PDF reports.

Everything is delivered configured to your CR, establishments and pay calendar, tested against your real employee data, and documented. You get the source code (yours to keep), an admin/HR runbook, a training session, and a post-go-live support window. Because it is a versioned Odoo addon, it upgrades cleanly across 17 → 18 → 19 and integrates with the rest of Odoo — Accounting journal entries, Time Off, Attendance and Contracts — and can be automated or connected to your bank via automated actions and the XML-RPC/JSON-RPC API.

What you get

  • Complete Odoo module source code (the addon directory with __manifest__.py, Python models/salary rules, XML views/reports and security files) — delivered to your repository and yours to keep
  • Installation on your Odoo 17, 18 or 19 database (staging first, then production) with the module configured for your company, CRs and establishments
  • Configured Bahrain salary structures, GOSI/SIO contribution rules and end-of-service accrual set up and validated against a sample of your real employees
  • WPS bank-file export configured to your specific Bahraini bank's required format, tested end to end
  • Written HR/admin documentation: a configuration runbook, monthly payroll checklist and GOSI/WPS submission guide
  • A live training session for your HR and finance team, plus a recording and handover notes
  • A post-go-live support window for questions, fixes and adjustments during your first live payroll cycles
  • Version-compatibility assurance and an upgrade note covering Odoo 17 → 18 → 19 for the delivered module

Who this is for

HR Manager at a Bahraini company

Runs monthly payroll and owns GOSI/SIO and LMRA compliance. Needs contributions, permit tracking and end-of-service to be calculated correctly and automatically inside Odoo, without maintaining side spreadsheets or recomputing salary rules by hand each cycle.

Finance / Payroll Officer

Prepares the WPS bank file and reconciles payroll to the general ledger. Wants a compliant salary-transfer file, a clean GOSI contribution report and payroll journal entries that post automatically to the right accounts in Odoo Accounting.

ERP / IT Lead or Odoo Partner

Owns the Odoo instance and its upgrade roadmap. Wants a properly built addon — real models, ir.model.access.csv security, QWeb reports, API access — that installs cleanly, is maintainable, and survives upgrades across Odoo 17, 18 and 19 rather than a fragile hack.

How Bahrain Payroll (GOSI, LMRA) Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Bahrain GOSI/SIO with Bahraini vs expat contribution rulesBuilt in as parameterized salary rules, applied automatically by nationalityPossible but you build and maintain every rule yourselfRarely covers Bahrain-specific splits; often GCC-genericNot available — Odoo core has no BH social insurance
LMRA work-permit tracking and expiry alertsPermit fields on employee/contract plus automated-action expiry alertsRequires custom fields and automation you design from scratchOccasionally present, quality and fields vary widelyNot included
End-of-service (leaving indemnity) settlementAccrues by service and BHD basic wage; produces a QWeb settlement statementHand-coded accrual logic and report you must validatePartial supportNot included
WPS salary bank-file export for your Bahraini bankConfigured and tested to your specific bank's WPS formatYou reverse-engineer and build the fixed-format exporterPartial supportNot included
BHD salary structures and accounting journal integrationPre-built BHD structures posting to your chart of accountsConfigure structures and mappings entirely yourselfPartial supportPartial support
Delivery model and ownershipBuilt, installed and supported by ECOSIRE; full source code is yoursYou own it but carry all build time, risk and QAVendor-owned code; you depend on their roadmap and fixesIncluded in Odoo but with no Bahrain payroll capability
Upgrade safety across Odoo 17/18/19Versioned addon with a documented 17→18→19 upgrade noteEvery upgrade is your maintenance burdenPartial supportIncluded
Role-based security and audit (ir.model.access.csv + record rules)Configured so HR, payroll and finance see only permitted dataYou must design and test the access modelPartial supportPartial support

Frequently Asked Questions about Bahrain Payroll

Is this an instant download I can install myself right now?

No. This is a build-to-order localization that ECOSIRE builds, configures and installs for you — it is not an existing apps.odoo.com download. After purchase we scope your entity and hand over a working, tested module on your database. You do receive the full source code to keep once delivered.

How long does delivery take (lead time)?

Typical lead time is one working week from the kickoff call, depending on the number of establishments/CRs, your bank's WPS file format and how much of your existing employee and contract data needs mapping. We install to a staging database first, validate against your real data, then go live on production.

What support and updates are included after go-live?

Delivery includes a post-go-live support window covering questions, fixes and adjustments during your first live payroll cycles. Because the module is a versioned Odoo addon, we also provide an upgrade note for Odoo 17 → 18 → 19; extended support and future upgrade work can be arranged as an ongoing plan.

Which Odoo versions and edition does it support?

Odoo 17, 18 and 19 are supported. The module is built on the standard hr and hr_payroll framework and is Community-compatible wherever possible; any feature that depends on Odoo Enterprise Payroll is identified during scoping so you know exactly what your edition needs before we build.

Does it handle GOSI/SIO, LMRA and end-of-service correctly for Bahraini vs expat staff?

Yes. Employees are flagged by nationality, and computed salary rules (@api.depends) apply the correct social-insurance base and rate for Bahrainis versus expatriates. LMRA work-permit details are tracked on the employee/contract record with expiry alerts, and end-of-service leaving indemnity accrues automatically by service length and BHD basic wage, producing a settlement statement on termination.

Can it generate the WPS bank file and post payroll to accounting?

Yes. The module exports a Wage Protection System (WPS) salary file in the fixed format your Bahraini bank requires, and payroll runs post journal entries to your Odoo Accounting chart of accounts (salaries, GOSI liability, net-pay clearing) so payroll and finance stay reconciled.

Will it survive future Odoo upgrades and integrate with our data?

Yes. It is delivered as a proper versioned addon with its own __manifest__.py, so it upgrades cleanly across 17/18/19, and it integrates with Contracts, Time Off, Attendance and Accounting. It also exposes data via Odoo's XML-RPC/JSON-RPC API and automated actions for downstream systems or scheduled submissions.

Request a quote

Bahrain Payroll

Build-to-order Bahrain payroll for Odoo: GOSI/SIO contributions, LMRA permit tracking, end-of-service settlement and WPS bank file export.

  • GOSI/SIO social insurance calculation with separate Bahraini and expatriate contribution bases and rates, implemented as parameterized Odoo salary rules so employer and employee shares post automatically on each payslip
  • Nationality-aware payroll: hr.employee is extended with a BH nationality flag and computed fields (@api.depends) that route each employee to the correct social-insurance scheme and ceiling
  • LMRA work-permit tracking on the employee/contract record — permit number, category, issue and expiry dates — with automated actions that flag upcoming expiries before they lapse
  • End-of-service (leaving indemnity) engine that accrues entitlement by service length and BHD basic wage, computed per Bahrain labour rules and produced as a settlement statement on termination

Request a Quotation

Tell us about your Bahrain Payroll requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.