HRMS with Multi-Country Payroll
A unified HRMS that brings employee records, attendance, leave, approvals and payroll for several legal entities into one platform, with country-specific pay rules and strict access to salary data.

Project overview
We built a human resources management and payroll platform for a services company employing staff through several legal entities in different countries. HR teams manage the employee lifecycle from onboarding to exit, managers approve leave and timesheets, employees use a self-service portal, and payroll teams run each entity's pay cycle under its own rules from the same system.
The engagement covered process discovery with HR and finance, data model design, the Django back end, the React interfaces, payroll rule configuration, bank and accounting exports, data migration and a phased go-live by entity. It is part of our ERP software development work for growing enterprises.
The client and the challenge
Each entity used a different mix of spreadsheets, local payroll software and email approvals. Employee data was duplicated and often inconsistent, leave balances were disputed, and month-end meant collecting attendance files from every office and re-keying them into separate payroll tools. Group leadership had no single view of headcount or employment cost.
The company needed one employee record, consistent approvals, and payroll that could handle different tax, social contribution and leave rules per country. Because the system would hold salaries, bank details and identity documents, access control, auditability and data protection had to be designed in from the start.
Solution architecture & delivery
The Django back end holds a single employee master linked to entity, department, cost centre, manager and contract history, with effective-dated changes so a promotion or transfer applies from the right date without overwriting history. React interfaces serve HR, managers, payroll staff and employees, each seeing only the screens and fields their role allows.
Attendance comes from office biometric exports, a web clock-in and approved timesheets, normalised into daily records. Leave policies are configured per entity: accrual rules, carry-forward limits, public holiday calendars and approval chains. When an employee applies for leave, the workflow engine routes it to the right approvers, checks balance and team overlap, and updates the calendar. Redis backs the job queue for notifications, bulk imports and payroll calculations, and caches policy lookups used on every request.
Payroll is built as a rules engine rather than hard-coded logic. Each country has a configurable set of earnings, deductions, contribution and tax components with formulas and effective dates maintained by the payroll team, reviewed through a maker-checker flow. A payroll run takes a snapshot of employee, attendance and leave data, calculates in background jobs, produces a variance report against the previous period and stays editable until locked. Locked runs generate payslips, bank payment files and journal entries for the accounting system.
Privacy was treated as a core requirement. Salary and bank fields are encrypted at rest and visible only to authorised payroll roles, every view and change of sensitive data is written to an audit log, and retention rules purge documents of former employees after the configured period. Employees can view and download their own records. The client's legal advisers reviewed local employment and data protection requirements, which we translated into configuration. Our software development RFP template captures the kind of requirements list we used.
Key features we built
- Single employee master with effective-dated job and contract history
- Attendance from biometric exports, web clock-in and timesheets
- Leave policies, accruals and holiday calendars configured per entity
- Configurable approval workflows for leave, expenses and data changes
- Country-specific payroll rules engine with maker-checker changes
- Payroll runs with variance reports, payslips, bank files and journals
- Employee self-service for payslips, leave, documents and profile updates
- Encrypted salary data, role-based field access and full audit logs
How we delivered it
- Discovery. Workshops with HR and payroll teams from each entity documented policies, pay components, approval chains and data sources, along with privacy and retention requirements.
- Design. We designed the employee data model, role and field permissions, and the payroll rule format, then prototyped self-service and approval screens with employees and managers.
- Build. Two-week sprints delivered core HR, attendance and leave first, then payroll, with automated tests comparing calculated payslips against the client's historical payroll output.
- Parallel runs and go-live. Each entity ran payroll in the new system alongside its old process until results matched, then switched over one entity at a time after data migration.
- Support. Ongoing support covers statutory rule changes, new entities and reporting requests from HR and finance.
Technology choices
- Django β a mature Python framework with a strong ORM, permissions model and admin tooling suited to data-heavy HR and payroll logic.
- React β responsive, role-specific interfaces for HR dashboards, approval inboxes and the employee self-service portal.
- Redis β fast job queuing for payroll calculations, imports and notifications, plus caching for frequently read policy data.
Outcomes
- HR works from one employee record instead of separate spreadsheets per entity
- Leave balances and approvals follow configured policies, reducing disputes
- Each entity runs payroll in one platform while keeping its own country rules
- Payroll teams review variances before locking a run rather than fixing errors afterwards
- Employees download payslips and request leave themselves instead of emailing HR
- Access to salary and identity data is restricted by role and fully audited
FAQ
How does one HRMS handle payroll for different countries?
Each country has its own configurable set of pay components, tax and contribution formulas, and leave rules with effective dates. The payroll engine applies the rule set for the employee's entity, so adding a country is mainly configuration plus testing against local payroll results.
How is sensitive employee data protected?
Salary and bank details are encrypted at rest, visible only to authorised roles, and every access is logged. Retention rules remove old documents, and employees can see their own data through self-service. Our employee app case study shows a mobile companion for similar workflows.
Can the HRMS include an AI assistant for employee questions?
Yes, as a later phase. An assistant can answer policy and leave questions from approved HR content while respecting access rules. Our AI HR chatbot case study covers that kind of build.
How much does a custom HRMS and payroll system cost?
It depends on the number of entities and countries, integrations with attendance devices, banks and accounting, and the depth of self-service. Use our SaaS development cost calculator for an indicative range, then we can scope a phased plan.
HRMS with Multi-Country Payroll screens
Build your next erp & crm systems product with Next Olive
Share your requirements β we will propose scope, timeline and stack within one business day.