Skip to main content

Compatibility Payslip APIs

Summary

Two compatibility operations expose period/employee salary detail; one negotiates JSON versus PDF using the request Accept header.

Audience

Frontend and backend developers, QA and support engineers, architects, security reviewers, and implementation partners.

Reference Content

Authentication: bearer context is expected for business APIs; service-local enforcement Requires confirmation. Authorization: no endpoint-specific Payroll Service role policy is confirmed. Maturity: Compatibility / Transitional.

OperationMethod and public routePurposeAuthenticationTenant contextRequest typeResponse typeSuccessMaturitySource path
Compatibility Payroll payslipGET /api/payroll/payslipReturn compatibility JSON or PDF for employee and period.Bearer expected by the compatibility contract; downstream enforcement Requires confirmationForwarded tenant context expected; no tenant query parameterQuery parameters and optional Accept headerAnonymous detail JSON or PDF file200Compatibilitymicroservices/src/payroll-service/Api/PayrollCompatEndpoints.cs
Compatibility salary slipGET /api/salary/slipReturn a saved compatibility salary row.Bearer expected by the compatibility contract; downstream enforcement Requires confirmationForwarded tenant context expected; no tenant query parameterQuery parametersAnonymous compatibility salary row200Compatibilitymicroservices/src/payroll-service/Api/PayrollCompatEndpoints.cs

Compatibility Payroll payslip

  • API family / maturity: Compatibility Payslip APIs; Compatibility
  • Authentication / authorization: Bearer expected by the compatibility contract; downstream enforcement Requires confirmation. No endpoint-specific role policy is confirmed.
  • Tenant context: Forwarded tenant context expected; no tenant query parameter.
  • Route parameters: None.
  • Query parameters: Required laborId, month, year.
  • Request body / type: Optional Accept: application/pdf selects PDF; Query parameters and optional Accept header.
  • Validation: Only checks stated in the error mapping below are confirmed; model-binding failures are framework behavior and not specified as a stable contract.
  • Response body / type: Anonymous detail JSON or PDF file.
  • Success / error responses: 200; 404 raw text when detail is absent; PDF path also requires a Frozen run.
  • Business behavior: Return compatibility JSON or PDF for employee and period.
  • State and input implications: JSON read does not persist a payslip; PDF delegates to native generation/persistence. No input projection changes.
  • Audit and event implications: PDF path persists native payslip-generation audit. PDF path stages payslip-generated event.
  • Compatibility notes: Monolith-shaped compatibility contract.
  • Safe example: GET /api/payroll/payslip?laborId={employeeRef}&month=7&year=2026200 detail JSON; with PDF Accept header → 200 application/pdf
  • Example error: "Request could not be completed." (illustrative raw compatibility wording)

Compatibility salary slip

  • API family / maturity: Compatibility Payslip APIs; Compatibility
  • Authentication / authorization: Bearer expected by the compatibility contract; downstream enforcement Requires confirmation. No endpoint-specific role policy is confirmed.
  • Tenant context: Forwarded tenant context expected; no tenant query parameter.
  • Route parameters: None.
  • Query parameters: Required laborId, month, year.
  • Request body / type: None; Query parameters.
  • Validation: Only checks stated in the error mapping below are confirmed; model-binding failures are framework behavior and not specified as a stable contract.
  • Response body / type: Anonymous compatibility salary row.
  • Success / error responses: 200; 404 raw text when no saved row exists.
  • Business behavior: Return a saved compatibility salary row.
  • State and input implications: Read-only. No input projection changes.
  • Audit and event implications: No audit side effect confirmed. No event produced.
  • Compatibility notes: Monolith-shaped compatibility contract.
  • Safe example: GET /api/salary/slip?laborId={employeeRef}&month=7&year=2026200 salary metadata; missing → 404 raw text
  • Example error: "Request could not be completed." (illustrative raw compatibility wording)

Family-level findings

Employee-self and Payroll-administrator authorization is not encoded on these Payroll Service routes and Requires confirmation. JSON compatibility retrieval is not the same as native structured-payslip persistence. No payslip history/version endpoint exists.

Source References

  • microservices/src/payroll-service/Api/PayrollCompatEndpoints.cs
  • microservices/src/payroll-service/Application/PayrollCompatService.cs
  • microservices/src/payroll-service/Application/PayrollOutputsService.cs
  • Controllers/PayrollController.cs
  • Controllers/SalaryController.cs

See Also

Keywords

  • Payroll API
  • Compatibility Payslip APIs

Revision Information

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