Payroll-as-a-Service¶
Service ownership
Owner: application-services (apps-pm@clouddigit.ai) — Status: GA — Last audited: 2026-05-11
Bangladesh-compliant payroll: AIT, NID, BB FX, Provident Fund, Gratuity — with bank disbursement and salary-portal handoff.
What it is¶
Off-shore payroll SaaS (BambooHR, Workday, Paylocity) doesn't know what AIT slabs are, can't issue Bangla-printable salary slips, and stores your employee NID data outside BD. Payroll-as-a-Service is the on-shore alternative.
What it does¶
| Function | Detail |
|---|---|
| Salary calculation | Slab-based AIT, deductions, allowances, overtime |
| AIT (income tax) at source | Per current NBR rules; auto-update on annual changes |
| Provident Fund (PF) | Employer + employee contributions, statement output |
| Gratuity accrual | Per labour law calculation |
| Salary slip | Bangla / English / dual-language; PDF + portal |
| Bank disbursement | Bulk file for BEFTN; BB-compliant remitter records |
| Statutory reports | Monthly to RJSC / RTL where applicable |
| Yearly tax certificate | For each employee |
| TDS challan generation | For NBR submission |
| Employee self-service | Portal — payslip, leave, tax certs |
| Bangla-name handling | Unicode and transliteration both supported |
Tenancy¶
- Multi-tenant for SME — fastest, cheapest
- Single-tenant for FI / large enterprise — dedicated install with audit isolation
Integration¶
- ERP / HRIS (HR module of ERP-as-a-Service, or your existing system) via API
- Bank disbursement — direct integration with major BD banks for BEFTN / EFT handoff
- Time & attendance — bring your own (biometric, RFID); we ingest CSV / API
Pricing¶
Per-payslip-month, tier by employee count. See Pricing.
Related¶
Operate this service¶
BD-localized payroll: tax calc per NBR rules, statutory contributions, bKash/bank disbursement.
Compliance¶
- NBR income tax (current rates auto-updated)
- Provident fund (where applicable)
- Gratuity calculation
- VAT on services (where applicable)
- Maternity / sick leave per Labor Act
CD's payroll team maintains the rule engine as regulations change.
IAM¶
| Role | Can do |
|---|---|
payroll.viewer | View own pay slip |
payroll.hr | Manage employees, run payroll |
payroll.finance | Approve disbursements |
payroll.admin | Manage configuration, audit log |
payroll.hr and payroll.finance should be separate people (segregation of duties).
Run cadence¶
Monthly default. Bi-weekly / weekly available for specific industries.
Integration¶
| Upstream | Method |
|---|---|
| HRMS (employee data) | API or CSV upload |
| Time-attendance system | API or CSV upload |
| ERP (chart of accounts) | Direct (CD ERP) or API |
| Bank disbursement | NPS direct credit / bKash B2B |
Data residency¶
Employee data stays in BD. Encrypted at rest, audit log immutable.
Related¶
Monthly run cycle¶
| Day | Activity |
|---|---|
| Day 25 | Cutoff (no further input) |
| Day 26 | Preliminary run, review |
| Day 27 | Corrections |
| Day 28 | Final run, HR approval |
| Day 29 | Finance approval |
| Day 30 / 1 | Disbursement |
| Day 5 | Tax-statement-to-NBR submission |
Metrics¶
| Metric | Notes |
|---|---|
payroll.runs.successful | Should match cadence |
payroll.runs.discrepancies | Each requires HR review |
payroll.disbursement.failures | Bank/bKash failures (employee specific) |
payroll.tax.submission_status | NBR-side acceptance |
Audit log¶
Every action logged: - Employee data changes (who, when, what) - Pay run executions - Approvals (HR, finance) - Disbursement events
Auditable for 7 years (NBR requirement).
Pay slip distribution¶
- Email (PDF, encrypted)
- Self-service portal (employee login)
- SMS notification with pay-slip access link
Tax filing¶
CD pre-generates NBR-format tax filings: - Monthly TDS deposit - Quarterly returns - Annual tax statements
Customer reviews + submits (or authorizes CD to submit).
Year-end¶
- Annual statement generation per employee
- Bonus calculations
- Reset year-to-date counters
- Tax bracket updates if NBR changed rates
Related¶
Run failed mid-execution¶
ERROR: payroll run aborted: employee XYZ has invalid tax-id
Most pre-run validations catch issues; if a runtime failure: - Fix the offending record - Re-run (idempotent) - If partial disbursements happened: reconcile carefully
Tax calculation wrong¶
Employee or auditor flags incorrect tax: - Reproduce with the same inputs - Check tax rule version (may have changed mid-year) - CD payroll team verifies rule logic - If genuine bug: hotfix + retroactive correction
Disbursement failed for specific employees¶
Bank/bKash rejection: - Wrong account number — employee updates - Account closed — employee updates - Daily limit reached (bKash) — retry next day - Beneficiary not enabled (NPS) — bank-side configuration
CD retries; employee notified.
NBR submission rejected¶
NBR's system rejected the filing: - Format change (NBR updates spec; CD adapts) - Data quality issue (mismatched TIN, etc.) - NBR-side system issue (retry later)
CD payroll team coordinates with NBR; resubmit.
Year-end timing crunch¶
Multiple year-end activities converging: - Pre-plan calendar; communicate with HR/finance - Stagger optional activities - Some flexibility on tax-submission deadlines (NBR-allowed)
Audit log gap¶
WARN: audit log has a 3-hour gap on 2026-04-15
System restart or storage glitch: - Reconstruct from secondary sources (database changelog) - Document the gap - For compliance: file an incident report
Gaps are bad; prevention via redundant audit storage.
Employee data dispute¶
Employee says their pay is wrong: - HR investigates via audit log - Compare expected vs actual - Either employee is right (correct + retroactive adjustment) or pay is correct (explain) - Document outcome