---
title: "Pay Component to a check."
method: POST
path: "/checks/{checkId}/checkcomponents"
tags: ["Payroll"]
---

# Pay Component to a check.

`POST /checks/{checkId}/checkcomponents`

## Request

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

Add a new pay component on an individual unprocessed check.

## Path parameters

- `checkId` string, required

## Request body

- PayComponentResource2: Informational pay components on the check.
  - `componentId` string: The identifier of the pay component to add to the check. An overtime pay component can't be placed on a worker that is OT exempt.
  - `checkComponentId` string: The unique identifier associated for the pay component on this check.
  - `name` string: The name given to the pay component
  - `classificationType` string: The category that this component falls into.
  - `description` string: Description
  - `effectOnPay` 'ADDITION' | 'ADDITION_WITH_IN_OUT' | 'EMPLOYER_INFORMATIONAL' | 'REDUCTION': The effect that the pay component will have on the check amount.
  - `startDate` string, date-time: The date that the pay component is able to be applied on a check.
  - `endDate` string, date-time: The date that the pay component is not available to be applied on a check moving forward.
  - `appliesToWorkerTypes` string[]: Applies To WorkerTypes.
  - `jobId` string: This is used optionally for overriding a job when it needs to be different then the workers default. This option is only available when the client has job costing.
  - `laborAssignmentId` string: This is used optionally for overriding a labor assignment when it needs to be different then the workers assignment distribution. This option is only available when the client has labor assignment.
  - `payRateId` string: The rate identifier for the workers compensation
  - `payRate` string: The rate amount that will be applied for this component. Used in conjunction with Hours or Units.
  - `payHours` string: The number of hours that will be applied for this component. Used in conjunction with rate.
  - `payUnits` string: The number of units that will be applied for this component. Used in conjunction with rate.
  - `payAmount` string: The flat amount to be applied for this component. Not used with Rate, Hours, or Units.
  - `memoed` boolean: This is used optionally for memoing the payHours or payUnits so that they are informational when using a payAmount.
  - `lineDate` string, date-time: This is used optionally for specifying a date that the pay component was generated on.
  - `recurring` boolean: Whether or not this Check Pay Component is recurring or not. A recurring (true) means this is a representation of a Worker Pay Component on the check. A non-recurring (false) is the most common scenario and represents individual check pay components.

## Response `200`

successful operation

- CheckResource2
  - `workerId` string: The worker Id
  - `paycheckId` string: The paycheck Id
  - `payPeriodId` string: The id of payperiod.
  - `checkCorrelationId` string: Id that you define which is used for error handling/responses. This is not required when sending a single check.
  - `blockAutoDistribution` true | false: This is used optionally for blocking the auto distribution of the earnings on the workers if they are setup for auto distribution.
  - `earnings` PayComponentResource2[]: The earnings to apply to the check.Each earning needs to define as one of the following:1 .payHours: Will use the default hourly rate defined on the worker to apply the hours against. 2. payHours and payRate: Will allow you to define the monetary rate that the hours will be applied against. 3. payHours and payRateId: Will allow you to define which workers predefined pay rate the hours will be applied against. 4. payUnits: Will use the default hourly rate defined on the worker to apply the units against. 5. payUnits and payRate: Will allow you to define the monetary rate that the units will be applied against. 6. payUnits and payRateId: Will allow you to define which workers predefined pay rate the units will be applied against. 7. payAmount: Will allow you to define straight monetary amount.8. payRateId: For Salary workers only, the Salary Pay Rate Id can be used with payHours and memoed set to true, or without payHours.
    - `componentId` string: The identifier of the pay component to add to the check. An overtime pay component can't be placed on a worker that is OT exempt.
    - `checkComponentId` string: The unique identifier associated for the pay component on this check.
    - `name` string: The name given to the pay component
    - `classificationType` string: The category that this component falls into.
    - `description` string: Description
    - `effectOnPay` 'ADDITION' | 'ADDITION_WITH_IN_OUT' | 'EMPLOYER_INFORMATIONAL' | 'REDUCTION': The effect that the pay component will have on the check amount.
    - `startDate` string, date-time: The date that the pay component is able to be applied on a check.
    - `endDate` string, date-time: The date that the pay component is not available to be applied on a check moving forward.
    - `appliesToWorkerTypes` string[]: Applies To WorkerTypes.
    - `jobId` string: This is used optionally for overriding a job when it needs to be different then the workers default. This option is only available when the client has job costing.
    - `laborAssignmentId` string: This is used optionally for overriding a labor assignment when it needs to be different then the workers assignment distribution. This option is only available when the client has labor assignment.
    - `payRateId` string: The rate identifier for the workers compensation
    - `payRate` string: The rate amount that will be applied for this component. Used in conjunction with Hours or Units.
    - `payHours` string: The number of hours that will be applied for this component. Used in conjunction with rate.
    - `payUnits` string: The number of units that will be applied for this component. Used in conjunction with rate.
    - `payAmount` string: The flat amount to be applied for this component. Not used with Rate, Hours, or Units.
    - `memoed` boolean: This is used optionally for memoing the payHours or payUnits so that they are informational when using a payAmount.
    - `lineDate` string, date-time: This is used optionally for specifying a date that the pay component was generated on.
    - `recurring` boolean: Whether or not this Check Pay Component is recurring or not. A recurring (true) means this is a representation of a Worker Pay Component on the check. A non-recurring (false) is the most common scenario and represents individual check pay components.
  - `deductions` PayComponentResource2[]: Deduction pay components on the check.
    - `componentId` string: The identifier of the pay component to add to the check. An overtime pay component can't be placed on a worker that is OT exempt.
    - `checkComponentId` string: The unique identifier associated for the pay component on this check.
    - `name` string: The name given to the pay component
    - `classificationType` string: The category that this component falls into.
    - `description` string: Description
    - `effectOnPay` 'ADDITION' | 'ADDITION_WITH_IN_OUT' | 'EMPLOYER_INFORMATIONAL' | 'REDUCTION': The effect that the pay component will have on the check amount.
    - `startDate` string, date-time: The date that the pay component is able to be applied on a check.
    - `endDate` string, date-time: The date that the pay component is not available to be applied on a check moving forward.
    - `appliesToWorkerTypes` string[]: Applies To WorkerTypes.
    - `jobId` string: This is used optionally for overriding a job when it needs to be different then the workers default. This option is only available when the client has job costing.
    - `laborAssignmentId` string: This is used optionally for overriding a labor assignment when it needs to be different then the workers assignment distribution. This option is only available when the client has labor assignment.
    - `payRateId` string: The rate identifier for the workers compensation
    - `payRate` string: The rate amount that will be applied for this component. Used in conjunction with Hours or Units.
    - `payHours` string: The number of hours that will be applied for this component. Used in conjunction with rate.
    - `payUnits` string: The number of units that will be applied for this component. Used in conjunction with rate.
    - `payAmount` string: The flat amount to be applied for this component. Not used with Rate, Hours, or Units.
    - `memoed` boolean: This is used optionally for memoing the payHours or payUnits so that they are informational when using a payAmount.
    - `lineDate` string, date-time: This is used optionally for specifying a date that the pay component was generated on.
    - `recurring` boolean: Whether or not this Check Pay Component is recurring or not. A recurring (true) means this is a representation of a Worker Pay Component on the check. A non-recurring (false) is the most common scenario and represents individual check pay components.
  - `informational` PayComponentResource2[]: Informational pay components on the check.
    - `componentId` string: The identifier of the pay component to add to the check. An overtime pay component can't be placed on a worker that is OT exempt.
    - `checkComponentId` string: The unique identifier associated for the pay component on this check.
    - `name` string: The name given to the pay component
    - `classificationType` string: The category that this component falls into.
    - `description` string: Description
    - `effectOnPay` 'ADDITION' | 'ADDITION_WITH_IN_OUT' | 'EMPLOYER_INFORMATIONAL' | 'REDUCTION': The effect that the pay component will have on the check amount.
    - `startDate` string, date-time: The date that the pay component is able to be applied on a check.
    - `endDate` string, date-time: The date that the pay component is not available to be applied on a check moving forward.
    - `appliesToWorkerTypes` string[]: Applies To WorkerTypes.
    - `jobId` string: This is used optionally for overriding a job when it needs to be different then the workers default. This option is only available when the client has job costing.
    - `laborAssignmentId` string: This is used optionally for overriding a labor assignment when it needs to be different then the workers assignment distribution. This option is only available when the client has labor assignment.
    - `payRateId` string: The rate identifier for the workers compensation
    - `payRate` string: The rate amount that will be applied for this component. Used in conjunction with Hours or Units.
    - `payHours` string: The number of hours that will be applied for this component. Used in conjunction with rate.
    - `payUnits` string: The number of units that will be applied for this component. Used in conjunction with rate.
    - `payAmount` string: The flat amount to be applied for this component. Not used with Rate, Hours, or Units.
    - `memoed` boolean: This is used optionally for memoing the payHours or payUnits so that they are informational when using a payAmount.
    - `lineDate` string, date-time: This is used optionally for specifying a date that the pay component was generated on.
    - `recurring` boolean: Whether or not this Check Pay Component is recurring or not. A recurring (true) means this is a representation of a Worker Pay Component on the check. A non-recurring (false) is the most common scenario and represents individual check pay components.
  - `links` Link[]
    - `rel` string
    - `href` string
    - `hreflang` string
    - `media` string
    - `title` string
    - `type` string
    - `deprecation` string
    - `profile` string
    - `name` string

## Other responses

- `400`: The request cannot be performed since the check is in a state which does not allow this action(API-19)
- `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
- `500`: Invalid/Missing ssoguid (API-9), Internal server error unexplained (API-1)
- `503`: service unavailable (API-66)

---

[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)
