Creates a void payroll that zeros out items on an existing payroll.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
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
regularoroff_cyclepayroll in thepaidorpartially_paidstatus, and must not be a void payroll itself. Otherwise the request returnspayroll_not_voidable. - A void of an ACH-funded payroll may also be rejected with
payroll_not_voidableuntil the payroll's funding has cleared the ACH return window. - An item cannot be voided if an existing void of it is in
pendingor 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
subsetmust list at least one payroll item or contractor payment, and every ID must belong to this payroll. Otherwise the request returnsvalidation_erroronsubset. - 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_erroroncorrection). - 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 voidsVoids are represented on payrolls and payroll items in three places:
is_voidon the payroll,void_ofon the void payroll item (pointing at the original item), andvoided_byon the original item (pointing at the void item). See Voiding a Payroll Item for details.

