Void a payroll

Creates a void payroll that zeros out items on an existing payroll.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Creates a void payroll — a payroll that exactly zeros out payroll items and contractor payments on an existing payroll — and attaches it to a draft correction.

Pass the ID of a draft correction in correction. By default, all payroll items and contractor payments on the payroll are voided. To void a subset, pass a subset object with payroll_items and/or contractor_payments lists of item IDs. Omit subset or set it to null to void the entire payroll.

Creating the void payroll sends a correction updated webhook. The void payroll is processed with its correction: payroll preview, approve, update, and reopen reject it with payroll_managed_by_correction. Preview and approve the correction instead.

Validations

  • The payroll being voided must be a regular or off_cycle payroll in the paid or partially_paid status, and must not be a void payroll itself. Otherwise the request returns payroll_not_voidable.
  • A void of an ACH-funded payroll may also be rejected with payroll_not_voidable until the payroll's funding has cleared the ACH return window.
  • An item cannot be voided if an existing void of it is in pending or later (payroll_item_already_voided).
  • An item cannot be voided while a draft void of it exists on any correction, including this one (void_already_exists).
  • A subset must list at least one payroll item or contractor payment, and every ID must belong to this payroll. Otherwise the request returns validation_error on subset.
  • The correction must be one created with Create a correction. Other corrections return correction_not_supported.
  • The correction must be in draft (correction_not_draft), and must belong to the same company and tax year as the payroll being voided (validation_error on correction).
  • While the correction's approval is in progress, the request returns locked_resource_error (HTTP 409).
  • If another update to the correction or payroll is in progress, the request returns payroll_locked (HTTP 423). Retry after a few seconds.
📘

Identifying voids

Voids are represented on payrolls and payroll items in three places: is_void on the payroll, void_of on the void payroll item (pointing at the original item), and voided_by on the original item (pointing at the void item). See Voiding a Payroll Item for details.


Path Params
string
required

ID of the payroll to void

Body Params
string
required

ID of the draft correction to attach the void payroll to.

subset
object | null

Omit or set to null to void the entire payroll. Otherwise, void exactly the listed payroll items and/or contractor payments. At least one of the two lists must be non-empty, and every ID must belong to this payroll; otherwise the request returns validation_error on subset.

Response

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json