Skip to main content

Compatibility Salary Components API

Summary

Four compatibility operations list, create, update, and soft-delete salary components.

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
List active componentsGET /api/salary-componentsList active tenant components.Bearer expected by the compatibility contract; downstream enforcement Requires confirmationForwarded tenant context expected; no tenant query parameterNoneAnonymous component array200Compatibilitymicroservices/src/payroll-service/Api/PayrollCompatEndpoints.cs
Create componentPOST /api/salary-componentsCreate an active salary component.Bearer expected by the compatibility contract; downstream enforcement Requires confirmationForwarded tenant context expected; no tenant query parameterSalaryComponentCompatRequestAnonymous component object200Compatibilitymicroservices/src/payroll-service/Api/PayrollCompatEndpoints.cs
Update componentPUT /api/salary-components/{id:guid}Replace mutable compatibility component metadata.Bearer expected by the compatibility contract; downstream enforcement Requires confirmationForwarded tenant context expected; no tenant query parameterRoute parameter and SalaryComponentCompatRequestAnonymous component object200Compatibilitymicroservices/src/payroll-service/Api/PayrollCompatEndpoints.cs
Deactivate componentDELETE /api/salary-components/{id:guid}Soft-delete by marking the component inactive.Bearer expected by the compatibility contract; downstream enforcement Requires confirmationForwarded tenant context expected; no tenant query parameterRoute parameterRaw success string200Compatibilitymicroservices/src/payroll-service/Api/PayrollCompatEndpoints.cs

List active components

  • API family / maturity: Compatibility Salary Components API; 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: None.
  • Request body / type: None; None.
  • 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 component array.
  • Success / error responses: 200; No endpoint-specific error response is mapped.
  • Business behavior: List active tenant components.
  • 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-components200 []
  • Example error: No stable endpoint-specific error example is confirmed.

Create component

  • API family / maturity: Compatibility Salary Components API; 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: None.
  • Request body / type: name, category, basis, defaultAmount, isRecurring, isActive; SalaryComponentCompatRequest.
  • 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 component object.
  • Success / error responses: 200; 400 raw text when name is missing.
  • Business behavior: Create an active salary component.
  • State and input implications: Creates active component; supplied create isActive is not used. No input projection changes.
  • Audit and event implications: No audit side effect confirmed. No event produced.
  • Compatibility notes: Monolith-shaped compatibility contract.
  • Safe example: Illustrative body: { "name":"Example Component", "category":"Earning", "basis":"Fixed", "defaultAmount":"<financial value>", "isRecurring":true, "isActive":true }200 metadata
  • Example error: "Request could not be completed." (illustrative raw compatibility wording)

Update component

  • API family / maturity: Compatibility Salary Components API; 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: Required GUID componentId.
  • Query parameters: None.
  • Request body / type: SalaryComponentCompatRequest fields; Route parameter and SalaryComponentCompatRequest.
  • 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 component object.
  • Success / error responses: 200; 404 empty response when missing; no handled 400 mapping.
  • Business behavior: Replace mutable compatibility component metadata.
  • State and input implications: Updates name/category/basis/default metadata, recurrence and active state. No input projection changes.
  • Audit and event implications: No audit side effect confirmed. No event produced.
  • Compatibility notes: Monolith-shaped compatibility contract.
  • Safe example: PUT /api/salary-components/{id:guid} with illustrative component body → 200; missing → 404
  • Example error: "Request could not be completed." (illustrative raw compatibility wording)

Deactivate component

  • API family / maturity: Compatibility Salary Components API; 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: Required GUID componentId.
  • Query parameters: None.
  • Request body / type: None; Route parameter.
  • 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: Raw success string.
  • Success / error responses: 200; 404 empty response when missing.
  • Business behavior: Soft-delete by marking the component inactive.
  • State and input implications: Sets active state false; record is retained. No input projection changes.
  • Audit and event implications: No audit side effect confirmed. No event produced.
  • Compatibility notes: Monolith-shaped compatibility contract.
  • Safe example: DELETE /api/salary-components/{id:guid}200 raw text; missing → 404
  • Example error: "Request could not be completed." (illustrative raw compatibility wording)

Family-level findings

The list returns active components only. No retrieve-by-id, assignment, effectivity-management, formula-expression, approval, or version endpoint exists. Category and basis values are not validated against a closed HTTP vocabulary. Customer-specific component values are excluded.

Source References

  • microservices/src/payroll-service/Api/PayrollCompatEndpoints.cs
  • microservices/src/payroll-service/Application/PayrollCompatService.cs
  • Controllers/SalaryComponentsController.cs

See Also

Keywords

  • Payroll API
  • Compatibility Salary Components API

Revision Information

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