Pay Schedules

Defining payroll timelines

A pay schedule is the frequency on which a company chooses to pay its employees. Pay schedules are core to payroll because they dictate the cadence on which an employer needs to run payroll, as well as manage cash flow to ensure that it has enough money on hand to pay its employees. The most common pay schedule in the United States is biweekly (every two weeks), with payday generally falling on Fridays. This is because many states require employers to pay employees on at least a semi-monthly frequency.

There are several ways to define the pay schedule for a company in Check:

  1. At the company level.
  2. At the individual payroll level.
  3. With the pay schedule object.

Let’s dive into each of these!

Company Pay Frequency

A pay frequency must always be set on a company; this will be used as the default pay frequency for all payrolls run by that company if not otherwise specified on the payroll itself or through a pay schedule. For companies that only run payroll on a single pay frequency, simply setting one on the company should be sufficient if you would like to take on the work of calculating the period start and period end of each pay period for the company.

Payroll Pay Frequency

For more advanced use cases, Check also provides the ability to define pay frequency on the payroll itself. This can be used to support several common payroll scenarios, such as:

  • For companies that pay different departments (or salaried vs. hourly) on different schedules, multiple payrolls can be created, each with their own pay frequency
  • Bonus payments that occur on a regular schedule, such as quarterly or annual bonuses, can be put on their own payrolls with the relevant pay frequency set to ensure accurate tax withholdings

You can set a pay frequency directly on a payroll like so:

curl -XPOST https://api.checkhq.com/payrolls -d '{
    "company": "{{companyId}}",
    "period_start": "2021-04-12",
    "period_end": "2021-04-18",
    "payday": "2021-04-23",
    "pay_frequency": "weekly",
}'

This feature can be used for off-cycle payrolls as well.

📘

Payroll Pay Frequency vs. Company Pay Frequency

Pay frequency defined directly on a payroll will override the company’s default pay frequency.

Pay Schedule

The Pay Schedule API is a convenient way to offload the work of calculating period start, period end, and payday for a company to Check. This is great because pay schedules can be complex, and our partners’ payroll customers need the flexibility to navigate state-specific laws that may require certain pay frequencies.

Once a new pay schedule is created in the API, Check can generate a list of paydays arbitrarily far into the future that can then be used directly when creating new payrolls for that company.

A pay schedule can be created like so:

curl -XPOST https://api.checkhq.com/pay_schedules -d '{
    "company": "com_dsE2Y4wCMg77HGlJB0Mk",
    "name": "Test Pay Schedule",
    "pay_frequency": "weekly",
    "first_payday": "2021-04-23",
    "first_period_end": "2021-04-18"
}'

🚧

Holiday and Weekend Pay Day Logic

The impacted_by_weekend_or_holiday field in Check's Pay Schedule API indicates if a payday has been moved due to a weekend or holiday, or if an approval deadline has been shortened because of a holiday. For pay schedules of companies with 1-day or 2-day approval periods, this field also shows if the approval deadline is moved back due to a holiday.

Similar to the pay schedules, the impacted_by_holiday in the Get company paydays will take in account if the approval_deadline is impacted by a holiday.

Then, you can easily see the list of the company’s upcoming paydays with this request, which by default returns all paydays that fall within the next 365 days:

curl https://api.checkhq.com/pay_schedules/psc_ykZVR2HJUmiEO2m2yzgK/paydays

{
  "next": "https://api.checkhq.com/pay_schedules/psc_ykZVR2HJUmiEO2m2yzgK/paydays?start=2022-04-22",
  "previous": "https://api.checkhq.com/pay_schedules/psc_ykZVR2HJUmiEO2m2yzgK/paydays?start=2020-04-20",
  "results": [
    {
      "payday": "2021-04-23",
      "period_start": "2021-04-12",
      "period_end": "2021-04-18",
      "approval_deadline": "2021-04-19",
      "impacted_by_weekend_or_holiday": false
    },
    {
      "payday": "2021-04-30",
      "period_start": "2021-04-19",
      "period_end": "2021-04-25",
      "approval_deadline": "2021-04-26",
      "impacted_by_weekend_or_holiday": false
    },
    {
      "payday": "2021-05-07",
      "period_start": "2021-04-26",
      "period_end": "2021-05-02",
      "approval_deadline": "2021-05-03",
      "impacted_by_weekend_or_holiday": false
    },
    …

Finally, you can pass the ID of a Pay Schedule into the Payroll API when you create a new Payroll, which will result in Check automatically validating the payday, period_start, and period_end of the new payroll, as well as applying the pay_frequency from the Pay Schedule to the payroll. This can be done like so:

curl -XPOST https://api.checkhq.com/payrolls -d ‘{
    "company": "{{companyId}}",
    "period_start": "2021-04-12",
    "period_end": "2021-04-18",
    "payday": "2021-04-23",
    "pay_schedule": "psc_ykZVR2HJUmiEO2m2yzgK"
}

This feature cannot be used for off-cycle payrolls, and cannot be used in conjunction with setting the pay frequency directly on the payroll.

📘

Pay Schedule Pay Frequency vs. Company Pay Frequency

Pay frequency inherited from a pay schedule on a payroll will override the company’s default pay frequency.

🚧

Removing a Pay Schedule from a Payroll

If you remove a pay schedule from a payroll, the pay frequency that was originally inherited from the pay schedule will remain on the payroll. If you would like to change the pay frequency of the payroll, you may do so via a PATCH request.