---
title: "Create a payroll"
method: POST
path: "/payrolls"
---

# Create a payroll

`POST /payrolls`

Creates a payroll.

## Query parameters

- `include_items` boolean
- `include_contractor_payments` boolean

## Request body

- object
  - `company` string, required — ID of the company to run payroll for.
  - `period_start` string, date, required — The start of the date range that the payroll covers.
  - `period_end` string, date, required — The end of the date range that the payroll covers.
  - `payday` string, date, required — The date on which employees will be paid for the payroll.
  - `processing_period` string — The processing period of the payroll. <br><br>One of `three_day`, `two_day`, or `one_day`.<br><br>The processing period determines the approval deadline of the payroll. For a payroll with a Friday payday, `three_day` will mean the approval deadline is on Tuesday, whereas `two_day` will mean the approval deadline is on Wednesday, and `one_day` will mean the approval deadline is on Thursday.<br><br>The possible values for this field are constrained by the processing periods the company is approved for.<br><br>Default: `processing_period` of the company
  - `type` string — Indicates whether the payroll is a regular, [off-cycle](https://docs.checkhq.com/docs/off-cycle-payroll), or amendment payroll.<br><br>One of `regular`,`off_cycle`, or `amendment`.<br><br>Default: `regular`
  - `pay_frequency` string — Frequency by which [employees](https://docs.checkhq.com/reference/the-employee-object) get paid.<br><br>One of `weekly`, `biweekly`, `semimonthly`, `monthly`, `quarterly`, or `annually`.<br><br>Default: `biweekly`
  - `funding_payment_method` string — Payment method for funding the payroll. <br><br>One of `ach` or `wire`. <br><br>Default: `ach`
  - `pay_schedule` string — ID of the [pay schedule](https://docs.checkhq.com/reference/the-pay-schedule-object) that the payroll relates to.
  - `off_cycle_options` object — Additional configuration options controlling `off_cycle` payroll behavior.
    - `force_supplemental_withholding` boolean — Whether to tax all earnings as supplemental earnings.<br><br>Default: `false`
    - `apply_benefits` boolean — Whether to apply [benefit deductions and contributions](https://docs.checkhq.com/reference/the-employee-benefit-object) to the payroll.<br><br>Default: `false`
    - `apply_post_tax_deductions` boolean — Whether to apply [post-tax deductions](https://docs.checkhq.com/reference/the-post-tax-deduction-object) to the payroll.<br><br>Default: `false`
  - `items` object[] — The set of [payroll items](https://docs.checkhq.com/reference/the-payroll-item-object) associated with the payroll. Must set `include_items=true`.
    - `employee` string, required
    - `payment_method` string
    - `earnings` object[]
      - `type` string — Type of earning. Can be one of the following earning types in <a href="https://docs.checkhq.com/reference/types-of-earnings">Types of earnings</a>
      - `workplace` string, required — ID of the workplace where work for this earning was performed
      - `earning_code` string — The earning code id which will be used to aggregate earnings on the paystub
      - `description` string — Readable description of the earning code that will show up on the paystub
      - `earning_rate` string — The earning rate id which will be used to calculate the gross wage. Required if type is “piece”
      - `amount` string — Amount earned for this earning<br><br>Must be greater than 0
      - `hours` number, float — Number of hours worked for this earning
      - `piece_units` number, float — Number of units of work produced. Required if type is “piece”
      - `metadata` string, json — Additional loosely structured information to associate with the earning
    - `reimbursements` object[]
      - `amount` string, required — Amount of reimbursement<br><br>Must be greater than 0
      - `description` string — Description for the reimbursement that will show up on the paystub
      - `code` string — Unique code to identify the reimbursement that will be used to aggregate reimbursements on the paystub. Recommended to always be included to have explicit groupings on the paystub.
      - `metadata` string, json — Additional loosely structured information to associate with the reimbursement
    - `benefit_overrides` object[] — The set of benefit override objects associated with this payroll item.
      - `benefit` string, required — ID of the employee benefit that is being overridden for the payroll item
      - `employee_contribution_amount` string — Updated employee contribution amount to use for this payroll only
      - `company_contribution_amount` string — Updated company contribution amount to use for this payroll only
    - `post_tax_deduction_overrides` object[] — The set of post-tax deduction override objects associated with this payroll item.
      - `post_tax_deduction` string, required — ID of the miscellaneous post-tax deduction that is being overridden.
      - `amount` string, required — Updated deduction amount to use for this payroll only
    - `tax_overrides` object[] — The set of tax override objects associated with this payroll item.
      - `tax` string, required — ID of the tax being overridden. Only Federal Income Tax and State Income Taxes are eligible.
      - `amount` string, required — Updated withholding amount to use for this payroll only.
    - `pto_balance_hours` number, float — The employee's remaining PTO hour balance, for display on the paystub
    - `sick_balance_hours` number, float — The employee's remaining sick hour balance, for display on the paystub
    - `state_covid_sick_balance_hours` number, float — The employee's remaining sick hour balance from state COVID relief bills, for display on the paystub
    - `supplemental_tax_calc_method` string — Controls the method used by Check to calculate tax on supplemental earnings. May be flat or aggregate
    - `paper_check_number` string — For accounting. The check number associated with any printed checks. Can be updated even after the associated payroll has been approved. See [Get a paper check](https://docs.checkhq.com/reference/get-a-paper-check) for more details.
    - `metadata` string, json — Additional loosely structured information to associate with the payroll item.
  - `contractor_payments` object[] — The set of [contractor payments](https://docs.checkhq.com/reference/the-contractor-payment-object) associated with the payroll. Must set `include_contractor_payments=true`.
    - `contractor` string, required — The id of the contractor being paid
    - `payment_method` string — The way the contractor will be paid, either “direct_deposit” or "manual"
    - `amount` string — The amount the contractor should be paid
    - `reimbursement_amount` string — The amount to reimburse the contractor
    - `paper_check_number` string — For accounting. The check number associated with any printed checks. Can be updated even after the associated payroll has been approved. See Get a paper check for more details.
    - `workplace` string — The Workplace ID associated with this payment.
  - `metadata` string, json — Additional loosely structured information to associate with the payroll. Values must be string.
  - `bank_account` string — ID of the [bank account](https://docs.checkhq.com/reference/bank-accounts-1) that will be used to fund the payroll.<br><br>Default: `default_bank_account` of the company

## Response `200`

200

- object
  - `id` string
  - `company` string
  - `period_start` string
  - `period_end` string
  - `approval_deadline` string
  - `approved_at` string
  - `payday` string
  - `status` string
  - `type` string
  - `pay_frequency` string
  - `funding_payment_method` string
  - `processing_period` string
  - `off_cycle_options` unknown
  - `managed` boolean
  - `totals` object
    - `employee_gross` string
    - `employee_reimbursements` string
    - `employee_taxes` string
    - `employee_benefits` string
    - `post_tax_deductions` string
    - `employee_net` string
    - `contractor_gross` string
    - `contractor_reimbursements` string
    - `contractor_net` string
    - `company_taxes` string
    - `company_benefits` string
    - `liability` string
    - `cash_requirement` string
  - `items` object[]
    - `id` string
    - `payroll` string
    - `employee` string
    - `payment_method` string
    - `net_pay` string
    - `earnings` object[]
      - `amount` string
      - `hours` integer
      - `type` string
      - `workplace` string
      - `code` unknown
      - `description` unknown
    - `reimbursements` unknown[]
      - unknown
    - `taxes` object[]
      - `tax` string
      - `description` string
      - `amount` string
      - `payer` string
    - `benefits` unknown[]
      - unknown
    - `benefit_overrides` unknown[]
      - unknown
    - `post_tax_deductions` unknown[]
      - unknown
    - `post_tax_deduction_overrides` unknown[]
      - unknown
    - `tax_overrides` unknown[]
      - unknown
    - `warnings` unknown[]
      - unknown
  - `contractor_payments` object[]
    - `contractor` string
    - `payment_method` string
    - `amount` string
    - `reimbursement_amount` string
  - `is_void` boolean
  - `metadata` object

---

[API](https://skmtc.net/checkhq/apis/check-api.md) · [All operations](https://skmtc.net/checkhq/apis/check-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/checkhq/check-api/versions/f46e28134549/schema)
