A build-to-order ERPNext app that adds Saudi payroll compliance — GOSI dual-rate contributions, Mudad WPS file generation, and end-of-service benefit calculation — natively into your Salary Slip and Payroll Entry flow. ECOSIRE builds, installs, and supports it after we agree on your scope. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $499.00 USD; request a quote for a scoped proposal.

A build-to-order ERPNext app that adds Saudi payroll compliance — GOSI dual-rate contributions, Mudad WPS file generation, and end-of-service benefit calculation — natively into your Salary Slip and Payroll Entry flow. ECOSIRE builds, installs, and supports it after we agree on your scope.
अभी कोई भुगतान नहीं। यह हमारी टीम को एक कोटेशन अनुरोध भेजता है — हम कीमत और अगले चरणों के साथ ईमेल द्वारा संपर्क करेंगे।
Saudi payroll teams running ERPNext hit the same wall every month: ERPNext core Payroll handles gross-to-net salary structures, but it has no concept of GOSI's dual contribution regime, no Mudad-formatted WPS output, and no end-of-service benefit engine tied to Saudi labour law. Teams end up exporting Salary Slips to spreadsheets, hand-calculating employer and employee GOSI split by nationality, then re-keying a WPS file into a bank portal — a process that breaks the moment GOSI changes a rate or an auditor asks how a number was derived. When the July contribution rate adjustments land, the spreadsheet logic silently goes stale.
GOSI dual-rate contribution engine that resolves Saudi vs non-Saudi nationality and applies the correct employee/employer percentages on Salary Slip validate via a `hooks.py` doc event
Versioned GOSI rate-table DocTypes with effective-from dates so the mandated July rate change is a data update, not a code redeploy
Occupational-hazard contribution calculated and posted as its own salary component into Payroll Entry and the GL
Capped contributory-wage logic applied per GOSI ceiling rules rather than raw gross salary
Mudad WPS bank-file generation from posted Payroll Entry via a whitelisted server method
Pre-submission compliance validation: IBAN format, GOSI-registered vs paid wage variance, and missing establishment/employee identifiers block file generation with a clear error list
ECOSIRE builds a proper Frappe app that closes that gap inside ERPNext rather than beside it. The GOSI dual-rate engine is a set of DocTypes plus hooks.py doc events on Salary Slip: on validate, a server script resolves the employee's nationality (Saudi vs non-Saudi), applies the correct employee and employer contribution percentages against the capped contributory wage, and adds the occupational-hazard component — writing the results back as dedicated salary components so they flow into Payroll Entry and the GL without manual entry. Rate tables are stored as versioned DocTypes with effective-from dates, so the mandated July rate update is a data change with a scheduled event flag, not a code redeploy — and every calculation is reproducible and auditable.
Mudad WPS submission is handled by a whitelisted method that assembles the bank file from the posted Payroll Entry, runs pre-submission compliance checks (IBAN presence and format, GOSI-registered wage vs paid wage variance, missing establishment/employee identifiers), and blocks generation with a clear error list before you ever touch the portal. End-of-service benefit is a separate calculator DocType that applies the Saudi labour-law tiers (first five years vs beyond, resignation vs termination proration) against the qualifying wage, and a GOSI monthly reconciliation report reconciles what ERPNext posted against what was declared, flagging deltas per employee. Role profiles and permissions keep the WPS-generation and rate-maintenance surfaces restricted to payroll administrators.
Because this is build-to-order, you are not downloading a fixed marketplace app and hoping it fits. We start with a short scoping call to confirm your establishment structure, salary-component mapping, bank/Mudad setup, and Frappe/ERPNext version (v15 or v16). We then build your version against that scope, validate it on a staging copy of your data through UAT, and install it on your instance with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope. You receive the installable source, a git repository handover, documentation, a training session, and a post-go-live support window.
Runs the monthly Payroll Entry in ERPNext and needs GOSI split, occupational hazard, and the Mudad WPS file produced correctly without spreadsheet re-keying or manual nationality lookups.
Owns compliance risk and wants GOSI contributions, WPS submission, and EOSB to be auditable and reproducible inside ERPNext, with reconciliation that stands up to a GOSI review.
Maintains the Frappe instance on v15 or v16 and wants Saudi compliance delivered as a clean, version-compatible Frappe app with a git handover — not brittle customizations bolted onto core.
Oversees establishments employing both Saudi and non-Saudi staff and needs the dual-rate engine and hazard contributions applied consistently across all salary structures every cycle.
Buy the license on ecosire.com and download the KSA GOSI & Mudad Payroll Compliance app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install KSA GOSI & Mudad Payroll Compliance and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| GOSI dual-rate (Saudi vs non-Saudi) | Built into Salary Slip via doc events, applied automatically | Possible but you design and maintain the logic | Often single-rate or generic, needs heavy tweaking | |
| July rate updates | Versioned rate DocTypes with effective-from dates | Manual code or config change each time | Depends on vendor release cadence | |
| Mudad WPS file | Generated from Payroll Entry with pre-submission checks | Build the file format and validations yourself | May export a generic WPS, not always Mudad-ready | |
| End-of-service benefit (EOSB) | Saudi labour-law tiers with resignation/termination proration | Coded to your interpretation, upkeep on you | Rarely included or simplified | |
| GOSI reconciliation report | Posted-vs-declared deltas per employee | Build the report from scratch | Usually not provided | |
| Fit to your setup | Scoped to your establishments and mapping, UAT on staging | Fully bespoke but slower and riskier to build | One-size-fits-all, you adapt to it | |
| Delivery & support | 2–4 weeks, install + training + support window + git handover | Depends on your team's bandwidth | Instant download, self-support | |
| Version support | Built and tested for v15/v16 as a standalone app | You own version-compatibility work | Varies; upgrade lag common |
No. This is a build-to-order engagement. ECOSIRE builds your version against your confirmed scope, validates it on staging, and installs it on your ERPNext instance. There is no instant self-service download.
Typical delivery is 2–4 weeks from confirmed scope. Timing depends on your establishment structure, salary-component mapping, and Mudad/bank setup, all of which we lock down in the initial scoping call before the build starts.
GOSI rates are stored as versioned DocTypes with effective-from dates, so a rate change is a data update your team can make — not a code redeploy. A scheduler event flags an upcoming change and warns if you run payroll against a stale rate. We document the exact update procedure at handover.
The app is built for ERPNext / Frappe HR on v15 and v16. We confirm your exact version during scoping and build and test against that version so it layers cleanly on top of core Payroll.
You get a post-go-live support window for defect fixes and configuration questions, plus the full git repository so your team (or ECOSIRE on a future engagement) can extend or maintain it. Ongoing support beyond the included window can be arranged separately.
It is packaged as a standalone Frappe app that hooks into Salary Slip and Payroll Entry via doc events and adds its own DocTypes and salary components, rather than editing core. We review your existing customizations during UAT on a staging copy and provide a rollback plan before touching production.
Yes. WPS generation and reconciliation data are exposed through whitelisted methods and the Frappe REST API with permission checks, so authorized external tools or bank integrations can trigger and consume them programmatically.
A build-to-order ERPNext app that adds Saudi payroll compliance — GOSI dual-rate contributions, Mudad WPS file generation, and end-of-service benefit calculation — natively into your Salary Slip and Payroll Entry flow. ECOSIRE builds, installs, and supports it after we agree on your scope.