---
title: "POST /api/tenants/{tenantId}/payrolls/{payrollId}/cases/build/{caseName}"
method: POST
path: "/api/tenants/{tenantId}/payrolls/{payrollId}/cases/build/{caseName}"
tags: ["Payrolls"]
---

# POST /api/tenants/{tenantId}/payrolls/{payrollId}/cases/build/{caseName}

`POST /api/tenants/{tenantId}/payrolls/{payrollId}/cases/build/{caseName}`

## Request

- The document declares no server URL.
- Auth: none declared
- TypeScript: <https://skmtc.dev/payroll-engine/apis/payroll-engine-backend-api-v1/docs/api/tenants/:tenantId/payrolls/:payrollId/cases/build/:caseName/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `tenantId` integer, required
- `payrollId` integer, required
- `caseName` string, required

## Query parameters

- `employeeId` integer
- `userId` integer
- `clusterSetName` string
- `culture` string
- `evaluationDate` string, date-time
- `regulationDate` string, date-time

## Request body

- CaseChangeSetup
  - `userId` integer, required
  - `employeeId` integer, nullable
  - `divisionId` integer, nullable
  - `cancellationId` integer, nullable
  - `forecast` string, nullable
  - `created` string, date-time, nullable
  - `reason` string, nullable
  - `case` CaseSetup, required
    - `id` integer
    - `status` 'Active' | 'Inactive': The object status
    - `created` string, date-time
    - `updated` string, date-time
    - `caseName` string, required
    - `caseSlot` string, nullable
    - `values` CaseValueSetup[], nullable
      - `id` integer
      - `status` 'Active' | 'Inactive': The object status
      - `created` string, date-time
      - `updated` string, date-time
      - `divisionId` integer, nullable
      - `employeeId` integer, nullable
      - `caseName` string, nullable
      - `caseNameLocalizations` object, nullable
      - `caseFieldName` string, required
      - `caseFieldNameLocalizations` object, nullable
      - `caseSlot` string, nullable
      - `caseSlotLocalizations` object, nullable
      - `valueType` 'String' | 'Boolean' | 'Integer' | 'NumericBoolean' | 'Decimal' | 'DateTime' | 'None' | 'Date' | 'Weekday' | 'Month' | 'Year' | 'Money' | 'Percent' | 'WebResource': The payroll value types for cases
      - `value` string, nullable
      - `numericValue` number, double, nullable
      - `culture` string, nullable
      - `caseRelation` CaseRelationReference
        - `sourceCaseName` string, nullable
        - `sourceCaseSlot` string, nullable
        - `targetCaseName` string, nullable
        - `targetCaseSlot` string, nullable
      - `cancellationDate` string, date-time, nullable
      - `start` string, date-time, nullable
      - `end` string, date-time, nullable
      - `forecast` string, nullable
      - `tags` string[], nullable
      - `attributes` object, nullable
      - `documents` CaseDocument[], nullable
        - `id` integer
        - `status` 'Active' | 'Inactive': The object status
        - `created` string, date-time
        - `updated` string, date-time
        - `name` string, required
        - `content` string, required
        - `contentType` string, required
    - `relatedCases` CaseSetup[], nullable
  - `issues` CaseValidationIssue[], nullable
    - `issueType` 'Unknown' | 'CaseInvalid' | 'CaseUnknown' | 'CaseRelationInvalid' | 'CaseFieldDuplicated' | 'CaseValueIncomplete' | 'CaseValueMissing' | 'CaseValueStartInvalid' | 'CaseValueEndInvalid' | 'CaseValueEndMissing' | 'CaseValueWeekdayInvalid' | 'CaseValueMonthInvalid', required: The case issue type
    - `number` integer
    - `caseName` string, required
    - `caseNameLocalizations` object, nullable
    - `caseSlot` string, nullable
    - `caseSlotLocalizations` object, nullable
    - `caseFieldName` string, nullable
    - `caseFieldNameLocalizations` object, nullable
    - `sourceCaseName` string, nullable
    - `sourceCaseNameLocalizations` object, nullable
    - `sourceCaseSlot` string, nullable
    - `sourceCaseSlotLocalizations` object, nullable
    - `targetCaseName` string, nullable
    - `targetCaseNameLocalizations` object, nullable
    - `targetCaseSlot` string, nullable
    - `targetCaseSlotLocalizations` object, nullable
    - `message` string, required

## Response `200`

OK

- CaseSet
  - `id` integer
  - `status` 'Active' | 'Inactive': The object status
  - `created` string, date-time
  - `updated` string, date-time
  - `caseType` 'Global' | 'National' | 'Company' | 'Employee', required: The case type
  - `name` string, required
  - `nameLocalizations` object, nullable
  - `nameSynonyms` string[], nullable
  - `description` string, nullable
  - `descriptionLocalizations` object, nullable
  - `defaultReason` string, nullable
  - `defaultReasonLocalizations` object, nullable
  - `baseCase` string, nullable
  - `baseCaseFields` CaseFieldReference[], nullable
    - `name` string, nullable
    - `order` integer, nullable
  - `overrideType` 'Active' | 'Inactive': Override type for derivable object
  - `cancellationType` 'None' | 'Case': The case cancellation type
  - `hidden` boolean
  - `availableExpression` string, nullable
  - `buildExpression` string, nullable
  - `validateExpression` string, nullable
  - `lookups` string[], nullable
  - `slots` CaseSlot[], nullable
    - `name` string, required
    - `nameLocalizations` object, nullable
  - `availableActions` string[], nullable
  - `buildActions` string[], nullable
  - `validateActions` string[], nullable
  - `attributes` object, nullable
  - `clusters` string[], nullable
  - `displayName` string, nullable
  - `caseSlot` string, nullable
  - `caseSlotLocalizations` object, nullable
  - `cancellationDate` string, date-time, nullable
  - `reason` string, nullable
  - `forecast` string, nullable
  - `fields` CaseFieldSet[], nullable
    - `id` integer
    - `status` 'Active' | 'Inactive': The object status
    - `created` string, date-time
    - `updated` string, date-time
    - `name` string, required
    - `nameLocalizations` object, nullable
    - `description` string, nullable
    - `descriptionLocalizations` object, nullable
    - `valueType` 'String' | 'Boolean' | 'Integer' | 'NumericBoolean' | 'Decimal' | 'DateTime' | 'None' | 'Date' | 'Weekday' | 'Month' | 'Year' | 'Money' | 'Percent' | 'WebResource': The payroll value types for cases
    - `valueScope` 'Local' | 'Global': The scope for a payroll value
    - `timeType` 'Timeless' | 'Moment' | 'Period' | 'CalendarPeriod': The time period type for a regulation case field
    - `timeUnit` 'Day' | 'HalfDay' | 'Month': The date type for a regulation case field
    - `periodAggregation` 'Summary' | 'Last' | 'First': Aggregation type for a period case field PayrollEngine.CaseFieldTimeType.Period
    - `overrideType` 'Active' | 'Inactive': Override type for derivable object
    - `cancellationMode` 'TimeType' | 'Previous' | 'Keep' | 'Reset' | 'Invert': The cancellation mode for a regulation case field
    - `valueCreationMode` 'OnChanges' | 'Always' | 'Discard': The case value creation mode
    - `culture` string, nullable
    - `valueMandatory` boolean
    - `order` integer
    - `startDateType` 'Day' | 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Month' | 'January' | 'February' | 'March' | 'April' | 'May' | 'June' | 'July' | 'August' | 'September' | 'October' | 'November' | 'December' | 'Year' | 'PeriodStart' | 'PeriodStartDate' | 'PeriodEnd' | 'PeriodEndDate' | 'CycleStart' | 'CycleStartDate' | 'CycleEnd' | 'CycleEndDate': The case field date type
    - `endDateType` 'Day' | 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Month' | 'January' | 'February' | 'March' | 'April' | 'May' | 'June' | 'July' | 'August' | 'September' | 'October' | 'November' | 'December' | 'Year' | 'PeriodStart' | 'PeriodStartDate' | 'PeriodEnd' | 'PeriodEndDate' | 'CycleStart' | 'CycleStartDate' | 'CycleEnd' | 'CycleEndDate': The case field date type
    - `endMandatory` boolean
    - `defaultStart` string, nullable
    - `defaultEnd` string, nullable
    - `defaultValue` string, nullable
    - `tags` string[], nullable
    - `lookupSettings` LookupSettings
      - `lookupName` string, required
      - `valueFieldName` string, nullable
      - `textFieldName` string, nullable
    - `clusters` string[], nullable
    - `attributes` object, nullable
    - `valueAttributes` object, nullable
    - `displayName` string, nullable
    - `caseSlot` string, nullable
    - `caseSlotLocalizations` object, nullable
    - `value` string, nullable
    - `start` string, date-time, nullable
    - `end` string, date-time, nullable
    - `cancellationDate` string, date-time, nullable
  - `relatedCases` CaseSet[], nullable

## Other responses

- `404`: Not Found

## Changes

- **2026-01-07** `e70510c47700`: 2 warning
  - removed the optional property `fields/items/buildActions` from the response with the `200` status
  - removed the optional property `fields/items/validateActions` from the response with the `200` status
- **2025-09-14** `7432139da659`: 3 info
  - added the new optional request property `case/values/items/culture` (media type: application/json)
  - added the new optional request property `case/values/items/culture` (media type: text/json)
  - added the new optional request property `case/values/items/culture` (media type: application/*+json)
- **2025-03-12** `8f09691a3e2e`: 2 info
  - added the optional property `forecast` to the response with the `200` status
  - added the optional property `reason` to the response with the `200` status
- **2025-02-25** `b58fbaf73c7d`: 16 warning
  - added the new `CycleEnd` enum value to the `fields/items/endDateType` response property for the response status `200`
  - added the new `CycleEnd` enum value to the `fields/items/startDateType` response property for the response status `200`
  - added the new `CycleEndDate` enum value to the `fields/items/endDateType` response property for the response status `200`
  - added the new `CycleEndDate` enum value to the `fields/items/startDateType` response property for the response status `200`
  - …12 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/payroll-engine/apis/payroll-engine-backend-api-v1/changes/api/tenants/:tenantId/payrolls/:payrollId/cases/build/:caseName/post.md)

---

[API](https://skmtc.dev/payroll-engine/apis/payroll-engine-backend-api-v1.md) - [All operations](https://skmtc.dev/payroll-engine/apis/payroll-engine-backend-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/payroll-engine/apis/payroll-engine-backend-api-v1/revisions/d1227845e767?raw)
