Create a payroll

Changed on

Creates a payroll. Pass correction to create a managed replacement payroll and attach it to a draft correction in the same request. A payroll with a payday in the past must include correction.

post/payrolls

Request

Query parameters

include_itemsboolean

Enable this flag to define items directly on this payroll.

include_contractor_paymentsboolean

Enable this flag to define contractor_payments directly on this payroll.

Request body

companystring required

ID of the company to run payroll for.

period_startstring date required

The start of the date range that the payroll covers.

period_endstring date required

The end of the date range that the payroll covers.

paydaystring date required

The date on which employees will be paid for the payroll. A payday in the past requires correction. When correction is supplied, payday must be in the past, on or after the open quarter start, on or after the company's start_date, and within the correction's tax year.

processing_periodstring

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

correctionstring

ID of the draft correction to attach this payroll to as a replacement when creating the payroll. Returned on payroll responses as the correction this payroll is an operation of, or null. On update, may be included only to restate the payroll's current correction ID — a different value is rejected. Omit for ordinary payrolls. When supplied at create, nested items and contractor_payments must use payment_method manual — replacement payrolls do not disburse net pay. The correction must be in draft, belong to the same company, and accept managed replacement payrolls. Requires correction:write or correction:admin scope to attach at create.

typestring

Indicates whether the payroll is a regular or off-cycle payroll.<br><br>One of regular or off_cycle. Other payroll types, such as amendment and balancing, are created by Check and can't be set through the API.<br><br>Default: regular

pay_frequencystring

Frequency by which employees get paid.<br><br>One of weekly, biweekly, semimonthly, monthly, quarterly, or annually.<br><br>Default: biweekly

funding_payment_methodstring

Payment method for funding the payroll. <br><br>One of ach, wire, or parafin. <br><br>ach and wire can be set when creating or updating a payroll. parafin is set by Check when a payroll advance is accepted and cannot be set or changed via the API. <br><br>Default: ach

pay_schedulestring

ID of the pay schedule that the payroll relates to.

metadatastring json

Additional loosely structured information to associate with the payroll. Values must be string.

bank_accountstring

ID of the bank account that will be used to fund the payroll.<br><br>Default: default_bank_account of the company

Response

200

idstring
companystring
period_startstring
period_endstring
approval_deadlinestring
approved_atstring
paydaystring
statusstring
typestring
pay_frequencystring
funding_payment_methodstring
processing_periodstring
off_cycle_optionsunknown
managedboolean
correctionstring nullable

ID of the correction this payroll is an operation of. null if the payroll is not attached to a correction.

is_voidboolean
metadataobject

Example response

{
  "id": "pay_Z26PNMC7Ky1wfFQzVqfF",
  "company": "com_sx3svU6K8c5ZkSFlOh5p",
  "period_start": "2019-06-16",
  "period_end": "2019-06-29",
  "approval_deadline": "2019-07-02T00:00:00.000000Z",
  "approved_at": "2019-06-29T18:26:56.848920Z",
  "payday": "2019-07-05",
  "status": "paid",
  "type": "regular",
  "pay_frequency": "biweekly",
  "funding_payment_method": "ach",
  "processing_period": "four_day",
  "managed": true,
  "totals": {
    "employee_gross": "961.54",
    "employee_reimbursements": "0.00",
    "employee_taxes": "249.23",
    "employee_benefits": "0.00",
    "post_tax_deductions": "0.00",
    "employee_net": "712.31",
    "contractor_gross": "100.00",
    "contractor_reimbursements": "15.00",
    "contractor_net": "115.00",
    "company_taxes": "73.56",
    "company_benefits": "0.00",
    "liability": "1150.10",
    "cash_requirement": "1150.10"
  },
  "items": [
    {
      "id": "itm_yvmmsVGFxLoBaMIkqzea",
      "payroll": "pay_Z26PNMC7Ky1wfFQzVqfF",
      "employee": "emp_zGGp6wYcxAeu1Ng8IA7v",
      "payment_method": "direct_deposit",
      "net_pay": "712.31",
      "earnings": [
        {
          "amount": "961.54",
          "hours": 40,
          "type": "regular",
          "workplace": "wrk_cxcG4vjGKcSXZk1fgKai"
        }
      ],
      "taxes": [
        {
          "tax": "tax_I1Z9zqbBGWIbvlZpN2Vq",
          "description": "New York SDI",
          "amount": "0.60",
          "payer": "employee"
        }
      ]
    }
  ],
  "contractor_payments": [
    {
      "contractor": "ctr_90QzaH9xPRI7JRLXnRoU",
      "payment_method": "manual",
      "amount": "100.00",
      "reimbursement_amount": "15.00"
    }
  ]
}

Changes

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status