Voiding a Payroll Item

Correcting mistakes in processed payroll

Overview

In the Check system, the Payroll object is immutable. Once a payroll has been approved and processed, the object itself, and the data contained within it, cannot be changed. This allows your accounting division to maintain a permanent record of payroll activity.

When a payroll has been issued with errors that must be corrected, Check allows you to void any incorrect payroll items to reverse these errors in your bookkeeping system. Voiding a payroll item offsets the wages and taxes paid in the original payroll by creating a new payroll which includes negative wages, taxes, benefit contributions, and post-tax deduction amounts to offset the errors in the original.

Check will then also accurately reissue any payments, credits, or taxes that were erroneously distributed in the original payroll object. From a bookkeeping perspective, voiding a payroll item revises the original payroll, such that the error never happened.

Payroll items may be voided only after the payroll itself has been approved and processed. (Once approved, processing begins upon the payroll’s approval deadline.)

Voiding a Payroll Item Example

So, imagine you accidentally paid an employee $1,000 when you really meant to pay them $100. You approved the payroll on Monday, and now it’s Tuesday. The cash requirement for the payroll (both employee wages and employer taxes on those wages) has already been deducted from your bank account, and Check is preparing to make these payments on your behalf. And now you realize that you made a mistake, and need to fix this problem.

To reverse the error, you can void the incorrect payroll item from Check Console (for more information, refer to this Help Center Guide). When the void payroll item has been approved and processed, Check will issue a webhook notifying you that a new “void” payroll has been issued, with status set to ‘paid’.

In Check’s API, a void payroll looks exactly like a normal payroll, except that its amounts are negative. The payroll item will include two fields: void_of and voided_by.

  • If a payroll item has a non-null void_of field, it means that it is a void of another payroll item.
  • If a payroll item has a non-null voided_by field, it means that it is voided by another payroll item, the ID of which will be set in the voided_by field.

Example “void” payroll

{
  "id": "pay_wMuyYo3ixVsv54MH5oL9",
  "company": "com_K5wEeL13cUCmBJosDspS",
  "period_start": "2021-03-06",
  "period_end": "2021-03-19",
  "approval_deadline": "2021-04-20",
  "approved_at": null,
  "payday": "2021-04-26",
  "status": "draft",
  "managed": true,
  "type": "regular",
  "pay_frequency": "weekly",
  "off_cycle_options": null,
  "totals": {
    "employee_gross": "-400.00",
    "employee_reimbursements": "0.00",
    "employee_net": "-330.68",
    "employee_taxes": "-69.32",
    "employee_benefits": "0.00",
    "post_tax_deductions": "0.00",
    "contractor_gross": "0.00",
    "contractor_reimbursements": "0.00",
    "contractor_net": "0.00",
    "company_taxes": "-44.04",
    "company_benefits": "0.00",
    "liability": "-444.04",
    "cash_requirement": "-444.04"
  },
  "items": [
    {
      "id": "itm_u47H5GlEeTRiuroEdtOg",
      "payroll": "pay_wMuyYo3ixVsv54MH5oL9",
      "employee": "emp_h4VezdUn9v9oSoyORQC7",
      "status": "draft",
      "void_of": "itm_Ue75kUcWex5JRGTRuqux",
      "voided_by": null,
      "payment_method": "direct_deposit",
      "pto_balance_hours": null,
      "sick_balance_hours": null,
      "net_pay": "-330.68",
      "earnings": [
        {
          "amount": "-300.00",
          "hours": -40.00,
          "type": "hourly",
          "code": null,
          "description": "test",
          "earning_code": null,
          "workplace": "wrk_5wEgDPwh0dYqElB6yArb"
        },
        {
          "amount": "-100.00",
          "hours": null,
          "type": "bonus",
          "code": null,
          "description": "test",
          "earning_code": null,
          "workplace": "wrk_5wEgDPwh0dYqElB6yArb"
        }
      ],
      "reimbursements": [
        
      ],
      "taxes": [
        {
          "tax": "tax_ImvSF9CTuMdokf0uwx5x",
          "description": "Employer FICA Tax",
          "amount": "-24.80",
          "payer": "company",
          "remittable": true
        },
        {
          "tax": "tax_u4DzMCYXAUL6OfcgPeyg",
          "description": "Federal Unemployment Tax",
          "amount": "-2.40",
          "payer": "company",
          "remittable": true
        },
        {
          "tax": "tax_O3f21hkS1cvHBZTa61BO",
          "description": "Employer Medicare Tax",
          "amount": "-5.80",
          "payer": "company",
          "remittable": true
        },
        {
          "tax": "tax_ibU8cGhC5OlpOjoQFIXV",
          "description": "FICA",
          "amount": "-24.80",
          "payer": "employee",
          "remittable": true
        },
        {
          "tax": "tax_8L3JLfsH4X6dp0maBWfW",
          "description": "Federal Income Tax",
          "amount": "-27.87",
          "payer": "employee",
          "remittable": true
        },
        {
          "tax": "tax_1XHqR9Qf5t18SD2sfYEe",
          "description": "Medicare",
          "amount": "-5.80",
          "payer": "employee",
          "remittable": true
        },
        {
          "tax": "tax_9DdoriFBBnMsZMoENm2g",
          "description": "Georgia State Unemployment Tax",
          "amount": "-10.80",
          "payer": "company",
          "remittable": true
        },
        {
          "tax": "tax_f3vqjeByI7jNKkxqIAkh",
          "description": "Georgia Administrative Assessment Tax",
          "amount": "-0.24",
          "payer": "company",
          "remittable": true
        },
        {
          "tax": "tax_k6cUowpcp1Pi6QqDjMja",
          "description": "Georgia State Tax",
          "amount": "-10.85",
          "payer": "employee",
          "remittable": true
        }
      ],
      "benefits": [],
      "post_tax_deductions": [],
      "warnings": []
    }
  ],
  "contractor_payments": []
  "is_void": true,
  "metadata": {}
}

Reversals and Tax Refunds

Voiding a payroll item does not directly balance the employer's books. Refunds may still need to be processed for over-collected taxes and ACH reversals may still need to be processed for voided wages paid.

ACH Reversals for voided wages can processed directly from Console, by navigating to the company's Transactions tab. For more information, refer to this Help Center Guide.

As for refunds of over-collected taxes, after a void is created from Console, Check will attempt to refund any over-collected tax amounts that have not yet been paid. For more information on this process, refer to this Help Center Guide.

📘

Child Support Garnishment

Garnishment payments are sent to the child support agency within an hour from when the payroll is funded. If voiding a payroll after that, the employee will need to work with the agency directly to get the payment back. Otherwise, it will be refunded to the debited account.