
One payroll engine. Five country packs. Claude inside.
A country-agnostic HR and payroll add-on for Microsoft Dynamics 365 Business Central. India, UAE, Saudi Arabia, Netherlands and USA packs ship at launch. Configurable Pay Element Engine, effective-dated statutory rates, multi-regime tax models, Anthropic Claude AI features and a published Self-Service API.
- 5 country packs at launch · IN · AE · SA · NL · US
- Pay Element Engine · zero hard-coded calcs
- Effective-dated statutory + tax rates
- Claude AI · ZDR by default
- WhatsApp payslip + approvals delivery
- Self-Service web app over OData v1.0
Built on infrastructure your HR team already trusts
Most payroll add-ons are one country with extras. We built one engine for everywhere.
When your business runs payroll across three or five countries, you usually end up with three or five separate systems — each with its own quirks, its own permission model, its own consolidation pain. Our approach: a single Business Central add-on whose calculation engine knows nothing about countries. Countries are pure configuration data, activated per company, versioned, and effective-dated. India, UAE, KSA, Netherlands and USA ship today. The sixth, seventh and eighth are data, not code.
India, UAE, KSA, Netherlands and USA ship at launch. Adding a sixth is configuration only — no AL code change required.
Every earning, deduction, contribution and tax bracket is a row in a table. Statutory rate change = edit a row, not a deploy.
Anomaly detection, payslip explanations, natural-language query and document extraction — all Anthropic Claude with ZDR.
Five jurisdictions, ready out of the box.
Each pack is configuration data — wage bases, statutory contributions, tax models and brackets, holiday calendars, payment file definitions. Activate one or activate all five, per legal entity. Customise rates or formulas without touching code.
EPF (employee + employer), ESI, Professional Tax by state, TDS with both Old and New regime tax models. NEFT / RTGS payment files. India regional pack toggle activates GSTIN-aware counterparty matching and paise rounding.
WPS (Wage Protection System) SIF file generation, GPSSA pension contributions (UAE nationals only via Nationality filter), End-of-Service Benefits (EOSB) accrual with length-of-service multipliers, Hijri calendar support.
GOSI pension and occupational hazard, Mudad WPS file format, EOSB accrual, Saudi nationals vs expat differential contributions via Nationality filter.
Wage tax tables (Loonheffing) including white and green tables, ZVW (health insurance), AOW (state pension), 30%-ruling flag for qualifying expats, SEPA payment files.
Layered Federal + State + Local income tax with annualised bracket lookup, FICA (Social Security with ceiling + Medicare with surtax above $200k), NACHA ACH files, W-4 driven withholding via tax declarations.
Need a sixth country? It is configuration only — insert rows into SGP Country, SGP Country Pack, SGP Wage Base Definition, SGP Pay Element, SGP Statutory Contribution, SGP Tax Model, SGP Tax Bracket. No AL code change. SourceForge can deliver a custom pack as part of an engagement.
Every calculation is a row in a table.
No hard-coded earnings or deductions. Each Pay Element has a calculation method, eligibility filters, effective dating, rounding, caps and dependency analysis. The Formula Evaluator handles arithmetic, conditionals, slabs, employee attributes and wage bases.
- 8 calculation methodsFixed Amount · Percentage of Base · Formula · Slab-Based · Attendance Proportionate · Piece Rate · Balance Remainder · Lookup Table
- Eligibility filtersCountry · Grade · Establishment · Employment Type · Effective From / To. An element fires only when ALL filters match the employee.
- Auto-sequencingThe validator extracts dependencies from formulas, detects circular references and writes an Auto Sequence so dependents always evaluate after their inputs.
- Calculation TraceAfter any payroll run, see exactly which inputs each element received and what it produced. Essential for audit, support, and trust.
# India HRA — 40% of Basic, capped at 50k MIN(BASIC * 0.4, 50000) # India ESI — only if Base ≤ 21k IF(EMP.BASE_SALARY > 21000, 0, ROUND(BASIC * 0.0075, 1)) # US Additional Medicare surtax IF(WAGE.BASIC > 200000, (WAGE.BASIC - 200000) * 0.009, 0) # India gratuity monthly accrual BASIC * 15 / 26 / 12
Edit a formula on the Pay Element card. Press Validate. Run payroll. Inspect the Calculation Trace. No deploy.
Four Anthropic Claude features. ZDR on every call.
AI is an integral part of the workflow, not a chat widget bolted on the side. Every feature has a deterministic fallback so payroll still runs if AI is off.
Natural-language query
Open the AI Console from the Role Center and ask payroll questions in plain English. "What was Anita's gross pay last quarter?" "List employees whose PF contribution dropped this month." Claude generates a query plan against the published API surface, returns structured results with the SQL it would have run.
Payslip explanations
Auto-generated plain-English narrative attached to every payslip. "Your gross is ₹125,000. The TDS line of ₹8,450 reflects your switch to the New Regime last month. Your PF deduction is unchanged at the statutory cap." Reduces payroll-help-desk tickets by an order of magnitude.
Anomaly detection
Pre-approval scan that flags unusual variance vs prior periods. Both deterministic heuristics (>15% change in net) and AI reasoning over the full payroll diff. Payroll Officer sees ranked anomalies on the Run Card before approval. Runs even when AI is off — the deterministic layer always fires.
Document extraction
Claude reads uploaded employee documents (offer letters, IDs, visas, contracts) and proposes structured field values. HR reviews and accepts; no field is auto-populated without review. Tracks document expiry and fires advance-alert notifications.
Everything a payroll team actually needs.
Pay Element Engine
8 calc methods, formula evaluator, effective dating, eligibility filters, auto-sequencing, validation.
Statutory Engine
Effective-dated rates per branch (Pension / Health / EOSB / Welfare / PT / Bonus / NI). Eligibility expressions.
Tax Engine
Flat · Progressive · Multi-regime · Layered (US Fed/State/Local) · Wage tables (NL). Employee declarations.
Overtime Engine
Daily / Weekly / Weekly-Off / PH / Shift / Night triggers. Multi-band rates. Comp-off support.
Leave Engine
Multiple accrual methods. Carry-forward, lapse, encashment. LOP automation. Year-end carry codeunit.
Holiday calendars & shifts
Country / region calendars. Shifts (incl. cross-midnight, night premium). Rosters by establishment.
GL Posting
Per-element setup. Dimension overrides. Provisions for gratuity, leave, bonus accruals.
Payment files
SEPA · NACHA · NEFT · WPS · Mudad · delimited · fixed-width · custom XML. Pre-loaded templates.
Self-Service web app
Next.js companion app over OData v1.0. Employees and managers operate without entering BC.
WhatsApp delivery
Payslip, leave approvals, payroll completion, document expiry. Opt-in per employee. Audited.
Loans & F&F
Loan types with interest methods. Perquisite element for concessional loans. Full & Final settlement.
What-if simulations
Run salary, structure or country-pack changes against an employee or cohort without posting anything.
Built for the auditor in the room.
Pay-affecting changes leave traces. Secrets stay out of pages and exports. AI keeps its hands off your data.
Posting requires approval
Payroll runs lock once posted (Setup → Lock After Posting). Optional approval workflow blocks Post until an Approver signs off. Every change to a posted run writes an SGP Audit Log row with field-level Old/New values.
ZDR on every AI call
Anthropic `anthropic-no-data-retention: true` header on every prompt. Toggle visible in SGP Setup; on by default. Token counts and request/response metadata logged to SGP AI Conversation for cost tracking.
Secrets in Isolated Storage
Claude API key and WhatsApp provider credentials live in BC Isolated Storage (Company scope), encrypted at rest. The Setup page shows only the key NAME, never the value. SGP Admin role is required to rotate.
Full audit log
Every pay-affecting change writes Old/New values, user, timestamp, module and affected record to SGP Audit Log. Retention configured per-tenant (default 7 years). Auditor report exports filtered slices for DPDP/GDPR data-subject requests.
Five permission sets
SGP Admin · HR Officer · Payroll Officer · Employee Self · Manager Self. Employee Self and Manager Self combine standard BC permissions with record-level security so employees see only their own data.
Multi-currency, multi-entity
Each legal entity has its own currency, statutory mappings, tax model, holiday calendar and payment file definitions. Cross-entity reporting consolidates in your base currency. Establishments under a legal entity inherit defaults and override where needed.
Employees and managers, without giving them BC.
A companion Next.js application that authenticates via Microsoft Entra ID OAuth2 and consumes the published BC OData v1.0 API. Employees and managers do their day-to-day work in a focused mobile-first interface; the BC tenant stays for HR and Payroll Officers.
- View payslips, leave balances, attendance, tax declarations
- Submit leave / regularisation / overtime / comp-off requests
- Upload documents into HR-approved categories
- Run what-if salary simulations (e.g. regime switch)
- Managers approve their team's requests
- Record-level security — see only your own data
GET /employees
GET /payslips
GET /leaveBalances
POST /leaveRequests
POST /regularisations
POST /overtimeRequests
POST /taxDeclarations
POST /documentStagings
POST /simulatePayActions/{id}
/Microsoft.NAV.simulateBring your own front-end if you prefer — the OData surface is the contract. Entra ID OAuth2 throughout.
Production in 4–16 weeks.
Single-country, single-entity, sub-200-employee rollouts: 4–8 weeks. Multi-country, multi-entity: 8–16 weeks. A senior SourceForge consultant runs every project end to end.

Runs as a native AL extension on your BC tenant. The companion Self-Service app deploys to your infrastructure.
1
Country / legal-entity / establishment inventory. Current process pain points. Required country packs. Statutory registration numbers (PF, ESI, WPS, GPSSA, EIN, etc.). Bank file formats per legal entity.
2
Run Setup Wizard. Activate country packs. Build org structure (Legal Entities → Establishments → Departments → Designations → Grades). Configure Pay Structures per grade. Map every Pay Element to a GL account.
3
Import prior month's payroll into a sandbox. Reconcile our calculations against your existing system, line by line. Tune wage bases, tolerances, statutory rate effective dates, formulas. Sign off on the variance report.
4
Roll forward to current month. Train Payroll Officer, HR Officer and Manager Self roles. Onboard employees to the Self-Service web app + WhatsApp opt-in. Parallel-run for one full month-end close.
5
Daily check-ins for the first month-end close. Tune anomaly thresholds. Add custom Pay Elements emerging from real operations. Review WhatsApp delivery rates and payslip explainer quality.
Frequently asked questions
Business Central 27 and above, both SaaS (Cloud) and On-Premises. Runtime 16.0. Distributed as a signed `.app` from SourceForge — installed via Extension Management (AppSource listing planned). Object range 51000–53999. No country-pack code dependencies — country packs are pure configuration data that can be activated independently per company.
Bring a real payroll run. We will calculate it live.
A 60-minute working session, not a sales pitch. Tell us your countries, your headcount and the statutory complexity. We bring up a sandbox with your country packs activated, build a few sample employees, run a payroll, and show you the Calculation Trace line by line.
- Live demo of your specific country pack(s)
- Calculation Trace for every Pay Element
- Honest answer on what you would configure vs what we would build for you
- Written quote within 48 hours
