Skip to main content

Payslip Generation

Summary

Payroll generates a structured payslip and optional PDF from a Frozen run detail, persists the structured payload, and records a notification-oriented integration event.

Audience

Backend and frontend developers, QA and DevOps engineers, support and security engineers, and solution architects.

Overview

Payroll generates a structured payslip and optional PDF from a Frozen run detail, persists the structured payload, and records a notification-oriented integration event.

Technical Detail

Eligibility and model

Both run and employee detail must be Frozen. The structured model combines period, employee/work context, earning and deduction rows, Attendance/Leave/overtime summaries, adjustments, totals, and generation time. Values are intentionally not reproduced here.

Persistence and regeneration

Payroll stores one payslip record per run and employee. Generation inserts or replaces the structured payload and refreshes generation evidence. Explicit versions or immutable historical revisions are not modeled.

PDF and Document boundary

PDF bytes are rendered in process and returned to the caller. No Document Service client, external object storage operation, or Payroll document-reference entity is confirmed; Document Service storage is Not implemented in this flow.

Events and failures

Successful persistence adds audit evidence and a payslip-generated outbox event used by Notification. Rendering occurs after structured persistence in the PDF flow, so PDF rendering failure compensation Requires confirmation.

Source References

  • microservices/src/payroll-service/Application/PayrollOutputsService.cs
  • microservices/src/payroll-service/Application/PayrollPdfRenderer.cs
  • microservices/src/payroll-service/Domain/PayrollEntities.cs
  • microservices/src/contracts/Events/PayslipGeneratedEvent.cs
  • microservices/src/notification-service/Application/EventNotificationResolver.cs

See Also

Keywords

  • Payroll Service
  • Payslip Generation
  • Technical architecture

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-15
  • Review cycle: Quarterly