---
title: "Worker Pay Component"
method: PATCH
path: "/workers/{workerId}/paycomponents/{workerComponentId}"
tags: ["Worker"]
---

# Worker Pay Component

`PATCH /workers/{workerId}/paycomponents/{workerComponentId}`

## Request

- Base URL: `https://api.paychex.com`
- URL: `https://api.paychex.com/workers/{workerId}/paycomponents/{workerComponentId}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/paychex/apis/external-api/docs/workers/:workerId/paycomponents/:workerComponentId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update a single pay component associated to the "Active" worker.

## Path parameters

- `workerId` string, required
- `workerComponentId` string, required

## Request body

- RecurringResource: Worker recurring deduction
  - `workerComponentId` string: The id of a single pay component that a workers has.
  - `componentId` string: The unique identifier of the pay component. This data field cannot be PATCHED.
  - `name` string: Name of the pay component. This data field will be populated automatically based on componentId.
  - `calculationType` 'FLAT_DOLLAR_AMOUNT:This is used for a specific dollar amount' | 'PERCENTAGE:This is used for when a Percentage will be used to calculate the amount and will need a calculationBaseId to specify what to apply against' | 'RATE_X_UNITS:This is used for apply the rate against units and will need a calculationBaseId to specify what to apply against' | 'RATE_X_HOURS:This is used for apply the rate against hours and will need a calculationBaseId to specify what to apply against.': The type of calculation that will be applied for the pay component .
  - `calculationBaseId` string: This is required if you are not using a FLAT_DOLLAR_AMOUNT Calculation Type.
  - `value` number: This is used to specify the value that is used against the calculationType.
  - `startDate` string, date-time: Date which this pay component will start to be applied during the payruns. This is an optional field that default to current datetime if not provided. This cannot be backdated but can be added to start in the future.
  - `effectiveDate` string, date-time: Date which this pay component has started for the worker.
  - `endDate` string, date-time: Date which this pay component has ended for the worker.
  - `effectOnPay` string: What the effect on pay will be (REDUCTION OR ADDITION), currently only reductions are available. This data field will be populated automatically based on componentId. This data field cannot be PATCHED
  - `classificationType` string: The category that this component falls into.
  - `checkLimit` CheckLimitResource
    - `type` 'NONE:This is the default when no check limits exist' | 'STOPS_AT:This is used to stop when a specific amount is reached' | 'STOPS_AT_NEW_AMOUNT:This is the latest amount that is used to stop when a specific amount is reached' | 'BASED_ON_YTD_CASH_WAGES:This is used to stop when a specific amount is reached within the year against cash wages' | 'AMOUNT_PER_CHECK:This is used to stop when a specific amount is reached on a check': This is used to determine what type of limitations to apply.
    - `startsAt` string: This is the the amount that the calculation will begin with.
    - `stopsAt` string: This is the upper limit of the amount that can be applied.
    - `amount` string: This is the amount that will be taken from each check
  - `frequency` PayComponentFrequencyTypeResource1: Worker pay frequency
    - `applied` string: Currently we only support a BY_PAY_PERIOD value for the API.
    - `occurrence` string: This is how often the pay component will be applied on the pay run. The available values for this will depend on the payFrequency that a worker is paid which can be found on the worker compensations pay standards.
    - `occurrenceIntervals` FrequencyIntervalsResource1: These are sub intervals that are used for occurrences that are larger in duration that allow you to define when to apply the pay component. You can reference the payFrequency and occurance to determine what intervals and values applicable.
      - `interval1` string: First interval
      - `interval2` string: Second interval
    - `effectedChecks` string: Which check(s) within the payrun that the paycomponent will be applied to.FIRST_CHECK: The Pay Component will be applied to the first check for the worker within the pay run. This is used for a pay component that only should be applied once like a health insurance deduction.EVERY_CHECK: The Pay Component will be applied to all of the checks for the worker within the pay run. This is used for a pay component that is applied on all check like a retirement deduction.
  - `workerPayCompScheduledEntries` WorkerPayComponentScheduledEntryData[]
    - `id` integer
    - `workerCalcMethodId` integer
    - `clientPayrollId` integer
    - `checkDate` string, date-time
    - `scheduledAmount` number
    - `processedAmount` number
    - `sequenceId` integer
    - `transactionDetails` WorkerPayComponentScheduledEntryTransactionsData: Setting Worker Pay Component Scheduled Entry Transactions Data.
      - `scheduledEntryId` integer
      - `earliestTransactionDate` string, date-time
      - `latestTransactionDate` string, date-time
      - `transactions` WorkerPayComponentTransactionsDetails[]
        - `transactionId` string
        - `date` string, date-time
        - `amount` number
  - `transactions` WorkerPayComponentTransactionsDetails[]: Pay Component transaction details.
    - `transactionId` string
    - `date` string, date-time
    - `amount` number
  - `_links` Links

## Response `200`

Successful operation

- object
  - `content` RecurringResource: Worker recurring deduction
    - `workerComponentId` string: The id of a single pay component that a workers has.
    - `componentId` string: The unique identifier of the pay component. This data field cannot be PATCHED.
    - `name` string: Name of the pay component. This data field will be populated automatically based on componentId.
    - `calculationType` 'FLAT_DOLLAR_AMOUNT:This is used for a specific dollar amount' | 'PERCENTAGE:This is used for when a Percentage will be used to calculate the amount and will need a calculationBaseId to specify what to apply against' | 'RATE_X_UNITS:This is used for apply the rate against units and will need a calculationBaseId to specify what to apply against' | 'RATE_X_HOURS:This is used for apply the rate against hours and will need a calculationBaseId to specify what to apply against.': The type of calculation that will be applied for the pay component .
    - `calculationBaseId` string: This is required if you are not using a FLAT_DOLLAR_AMOUNT Calculation Type.
    - `value` number: This is used to specify the value that is used against the calculationType.
    - `startDate` string, date-time: Date which this pay component will start to be applied during the payruns. This is an optional field that default to current datetime if not provided. This cannot be backdated but can be added to start in the future.
    - `effectiveDate` string, date-time: Date which this pay component has started for the worker.
    - `endDate` string, date-time: Date which this pay component has ended for the worker.
    - `effectOnPay` string: What the effect on pay will be (REDUCTION OR ADDITION), currently only reductions are available. This data field will be populated automatically based on componentId. This data field cannot be PATCHED
    - `classificationType` string: The category that this component falls into.
    - `checkLimit` CheckLimitResource
      - `type` 'NONE:This is the default when no check limits exist' | 'STOPS_AT:This is used to stop when a specific amount is reached' | 'STOPS_AT_NEW_AMOUNT:This is the latest amount that is used to stop when a specific amount is reached' | 'BASED_ON_YTD_CASH_WAGES:This is used to stop when a specific amount is reached within the year against cash wages' | 'AMOUNT_PER_CHECK:This is used to stop when a specific amount is reached on a check': This is used to determine what type of limitations to apply.
      - `startsAt` string: This is the the amount that the calculation will begin with.
      - `stopsAt` string: This is the upper limit of the amount that can be applied.
      - `amount` string: This is the amount that will be taken from each check
    - `frequency` PayComponentFrequencyTypeResource1: Worker pay frequency
      - `applied` string: Currently we only support a BY_PAY_PERIOD value for the API.
      - `occurrence` string: This is how often the pay component will be applied on the pay run. The available values for this will depend on the payFrequency that a worker is paid which can be found on the worker compensations pay standards.
      - `occurrenceIntervals` FrequencyIntervalsResource1: These are sub intervals that are used for occurrences that are larger in duration that allow you to define when to apply the pay component. You can reference the payFrequency and occurance to determine what intervals and values applicable.
        - `interval1` string: First interval
        - `interval2` string: Second interval
      - `effectedChecks` string: Which check(s) within the payrun that the paycomponent will be applied to.FIRST_CHECK: The Pay Component will be applied to the first check for the worker within the pay run. This is used for a pay component that only should be applied once like a health insurance deduction.EVERY_CHECK: The Pay Component will be applied to all of the checks for the worker within the pay run. This is used for a pay component that is applied on all check like a retirement deduction.
    - `workerPayCompScheduledEntries` WorkerPayComponentScheduledEntryData[]
      - `id` integer
      - `workerCalcMethodId` integer
      - `clientPayrollId` integer
      - `checkDate` string, date-time
      - `scheduledAmount` number
      - `processedAmount` number
      - `sequenceId` integer
      - `transactionDetails` WorkerPayComponentScheduledEntryTransactionsData: Setting Worker Pay Component Scheduled Entry Transactions Data.
        - `scheduledEntryId` integer
        - `earliestTransactionDate` string, date-time
        - `latestTransactionDate` string, date-time
        - `transactions` WorkerPayComponentTransactionsDetails[]
          - `transactionId` string
          - `date` string, date-time
          - `amount` number
    - `transactions` WorkerPayComponentTransactionsDetails[]: Pay Component transaction details.
      - `transactionId` string
      - `date` string, date-time
      - `amount` number
    - `_links` Links
  - `links` Link1[]
    - `href` string
    - `hreflang` string
    - `title` string
    - `type` string
    - `deprecation` string
    - `profile` string
    - `name` string
    - `templated` boolean

## Other responses

- `400`: Invalid request (API-4), The request cannot be performed since the worker is in a state which does not allow this action(API-19),Invalid value (API-24), Unremovable attribute (API-25), Invalid Amount (API-28), Invalid Dates Range for creating PayComponent (API-37), Required field missing (API-46), Required field invalid (API-48), Overlapping dates (API-71), Invalid calculationBase (API-72)Invalid PayPeriod (API-74)
- `401`: Unauthorized
- `403`: User doesn't have access to this endpoint (API-2), Client has been end dated (API-68)
- `404`: Invalid resource ID (API-7)
- `405`: Unsupported method type (API-59)
- `406`: Unsupported Accept header
- `415`: Invalid required value (API-22)
- `423`: Client locked (API-10)
- `500`: Internal Server Error.

---

[API](https://skmtc.dev/paychex/apis/external-api.md) - [All operations](https://skmtc.dev/paychex/apis/external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paychex/apis/external-api/revisions/07161d3e073f?raw)
