Payroll Orchestration for a Spanish Engineering Group
Designed and built a clickable payroll orchestration console for a Madrid engineering group paying about 1,550 people in Spain, Portugal, Italy and Morocco: one tracker for every country's run from input cut-off to paid and filed, validation and variance review before approval, and payment batches that only a second person can release.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, pay runs, the run cockpit with 8 tabs (overview, inputs, validation, results, variance, payments, files and activity), payment batches and the batch detail with its release flow.
Inputs, cut-off, validation, sent to partner, results, variance, approved, paid and filed, each with its planned date, actual date and who completed it, for all four countries side by side.
The treasury maker submits and a different treasury approver releases after a 6-point pre-release checklist. Batches above €1,500,000 also need the CFO.
4 countries, 4 legal entities and payroll partners, 12 payment batches in EUR and MAD, 11 validation issues, 8 staff users and 40 sample employees in the result registers.
Carrasca grew by buying small engineering firms, and each country kept the payroll set-up it came with. Every month the Madrid payroll lead chased inputs by email from 40 HR contacts and managers, re-keyed them into four partner templates and compared each partner's results to last month in a spreadsheet. Payment files were built by hand in each bank's e-banking site by the person who prepared them, and nobody could say mid-month which country was late or whether a filing had been paid.
Acequia runs the process around each country's own payroll engine or partner without calculating tax itself. It tracks every run from input cut-off to paid and filed, blocks a run until validation and variance are cleared, routes the run cost to finance for approval, and generates SEPA and Moroccan payment batches that a second person must release.
Spain runs payroll in-house, Portugal uses a payroll bureau, Italy a consulente del lavoro and Morocco a fiduciaire. Each has its own engine, calendar, filings and currency, and the group still needs one view and one standard of control.
Salary changes, bonuses, overtime, leave and expenses came from 40 HR contacts and managers by email and were re-keyed into four different partner templates. Two late bonus inputs in 2025 led to off-cycle runs.
Each partner's register came back in its own format, and the comparison to last month lived in a spreadsheet. Nobody could quickly explain why the Portuguese payroll cost had jumped 6%.
Payment files were built by hand in each bank's site by the same person who prepared them. One fraudulent bank-detail change email nearly diverted a salary. Euro pay goes by SEPA credit transfer, Moroccan pay in MAD by local bank transfer.
Spain settles contributions through Sistema RED and declares IRPF on modelo 111, Portugal files with Segurança Social and the AT by the 10th, Italy pays the F24 by the 16th and reports to INPS through UniEmens, and Morocco declares to the CNSS and pays IR to the DGI monthly.
Mapped 11 user roles from global payroll lead to treasury approver, partner users and employees, 42 screens across the staff console and a mobile-first employee portal, and the data model for pay calendars, runs, inputs, versioned validation rules, partner files, results, payment batches, GL journals and filing records. Wrote down the rules the design follows for Spain, Portugal, Italy and Morocco, SEPA payments, the GDPR and Morocco's Law 09-08, and the EU Pay Transparency Directive.
Built 5 key screens on a production dashboard kit: the dashboard with a country run tracker, My work by role and needs attention, pay runs with a new off-cycle run form, the run cockpit with validation, variance drill-down and step actions, and payment batches with a pre-release checklist, approval chain and masked payment lines. A country switcher filters every screen, an account switcher changes who may act, and all actions run on local state.
Integration with the HRIS, time and attendance, SAP Concur, each country's engine (a3innuva Nómina, Cegid Primavera, Zucchetti and Sage Paie), SFTP file exchange, host-to-host pain.001 and pain.002 with the banks, Dynamics 365 Finance and ECB and Bank Al-Maghrib rates. Entra ID sign-in with MFA, an append-only audit log, verified bank detail changes with a cool-off, and the remaining screens: calendar, approvals, filings, GL journals, payslips, reports, settings and the employee portal.
The dashboard shows each country's run on the same 9-step stepper with its next deadline and an on track, at risk or late chip. Needs attention lists missed milestones, old blockers, overdue partner files and batches awaiting release, each linked to its page.
Send to partner stays blocked while pre-payroll blockers are open, and Submit for approval stays blocked while variance lines need a comment. Accepting a warning needs a reason, and the cockpit shows what is still holding the run.
Results are compared to last period by element and by employee against a threshold of 10% or €500 (MAD 5,000 in Morocco). Starters, leavers and matched inputs explain most lines; the rest need a comment or a query to the partner.
Only a treasury approver who is not the maker can release a batch, and the screen says so. Accounts are masked, and each line shows its end-to-end id, and SEPA batches show the bank's pain.002 status report with any rejected payments and their re-payment batch.

Designed and built a clickable core HR system for a Milan fashion retail chain with about 2,400 employees in 138 stores: every employee record with effective-dated history, lifecycle events from hire to exit with their approval chain, mandatory notices and payroll status, and a dashboard of what HR has to act on today.

Designed and built a clickable leave and time attendance system for a Lahore spinning and weaving company: badge, rotating QR and geofenced mobile punches instead of fingerprints, each day worked out against the shift pattern, overtime approved and confirmed before payroll, and leave requests routed with balances and team coverage in view.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab