Skip to content
Data flow diagram templates

DFD — Outsourced Payroll Bureau

Level-1 model of a bureau running payroll for client employers, drawing the bureau processing zone, HMRC's gateway and the BACS submission path as separate trust zones around special-category pay data.

Template previewData flow diagram
Payroll bureau — timesheet to payslipLEVEL 1Client networkBureau processing zoneEmployee self-service (public)Government and bankingClient HR teamEmployeeHMRC gatewayBACS sponsor bankPension provider1Import timesheets2Calculate gross tonet3Submit real-timeinformation4Build BACS paymentfile5Publish payslips6Post pensioncontributionsD1Employee masterD2Pay run resultsD3RTI submission logD4Payslip archivetimesheets + starters and lea…employee record changesperiod input hourstax code, NI category, salarygross, deductions, net paypay run totalsFPS and EPS submissionsubmission receiptnet pay per employeesigned BACS filepayslip linesrendered payslip PDFpayslip and P60employee and employer contrib…contribution scheduleemployee contact detailsperiod input hourstax code notice + acceptancetax code notice for next peri…settlement confirmationpayment statusauthenticated payslip requesthistoric payslipreconciliation exceptionscontribution posting flag5 entities · 6 processes · 4 stores · 25 flows · 9 boundary crossingsCrossing — “timesheets + starters and leavers”: Client HR team (Client network) → Import timesheets (Bureau processing zone).Crossing — “FPS and EPS submission”: Submit real-time information (Bureau processing zone) → HMRC gateway (Government and banki…Crossing — “tax code notice + acceptance”: HMRC gateway (Government and banking) → Submit real-time information (Bureau process…Crossing — “signed BACS file”: Build BACS payment file (Bureau processing zone) → BACS sponsor bank (Government and banking).Crossing — “settlement confirmation”: BACS sponsor bank (Government and banking) → Build BACS payment file (Bureau processing z…Crossing — “payslip lines”: Pay run results (Bureau processing zone) → Publish payslips (Employee self-service (public)).Crossing — “contribution schedule”: Post pension contributions (Bureau processing zone) → Pension provider (Government and bank…Crossing — “reconciliation exceptions”: Pension provider (Government and banking) → Post pension contributions (Bureau processi…Crossing — “employee contact details”: Employee master (Bureau processing zone) → Publish payslips (Employee self-service (publ…

Make it your own.

title "Payroll bureau — timesheet to payslip"
level 1

entity "Client HR team"
entity Employee
entity "HMRC gateway"
entity "BACS sponsor bank"
entity "Pension provider"

process 1 "Import timesheets"
process 2 "Calculate gross to net"
process 3 "Submit real-time information"
process 4 "Build BACS payment file"
process 5 "Publish payslips"
process 6 "Post pension contributions"

store D1 "Employee master"
store D2 "Pay run results"
store D3 "RTI submission log"
store D4 "Payslip archive"

boundary "Client network" { "Client HR team" }
boundary "Bureau processing zone" { 1, 2, 3, 4, 6, D1, D2, D3 }
boundary "Employee self-service (public)" { Employee, 5, D4 }
boundary "Government and banking" { "HMRC gateway", "BACS sponsor bank", "Pension provider" }

"Client HR team" -> 1 : "timesheets + starters and leavers"
1 -> D1 : "employee record changes"
1 -> D2 : "period input hours"
D1 -> 2 : "tax code, NI category, salary"
D2 -> 2 : "period input hours"
2 -> D2 : "gross, deductions, net pay"
D2 -> 3 : "pay run totals"
3 -> "HMRC gateway" : "FPS and EPS submission"
"HMRC gateway" -> 3 : "tax code notice + acceptance"
3 -> D3 : "submission receipt"
D3 -> 1 : "tax code notice for next period"
D2 -> 4 : "net pay per employee"
4 -> "BACS sponsor bank" : "signed BACS file"
"BACS sponsor bank" -> 4 : "settlement confirmation"
4 -> D2 : "payment status"
D2 -> 5 : "payslip lines"
5 -> D4 : "rendered payslip PDF"
Employee -> 5 : "authenticated payslip request"
5 -> Employee : "payslip and P60"
D4 -> 5 : "historic payslip"
D2 -> 6 : "employee and employer contributions"
6 -> "Pension provider" : "contribution schedule"
"Pension provider" -> 6 : "reconciliation exceptions"
6 -> D2 : "contribution posting flag"
D1 -> 5 : "employee contact details"