Below is a list of error codes that Check may return in the type field, along with information on how to resolve them.
| Error code | Description |
|---|---|
| address_invalid | Invalid address. There are many potential messages you may receive for an invalid address error. |
| api_error | An internal error occurred. We have been notified and are looking into the issue. |
| bank_account_invalid | Bank account not found or not active on this company. Returned by the Corrections endpoints when bank_account is invalid or the correction's bank account is no longer active at approval. |
| company_blocking | The company's Onboard status is in blocking state and certain actions like running payroll cannot be performed. |
| company_not_implemented | The company's implementation is not complete and certain actions like running payroll cannot be performed. |
| company_not_in_good_standing | The company is not in good standing and certain actions like running payroll cannot be performed. The API reports only in_good_standing. See company object for the reasons. |
| company_tax_setup_required | Company tax setup must be complete. |
| company_terminated_error | The company is terminated and the termination has taken effect, so the payroll cannot be approved. Returns HTTP 400 on Approve a payroll. Contact Check support. |
| contractor_payment_already_exists | Only one contractor payment can be created per contractor per payroll. |
| contractor_payment_limit_exceeded | Contractor payments are limited to 500 per payroll. |
| correction_empty | Correction has no payrolls to approve. Add at least one payroll (e.g. via Void a payroll) first. |
| correction_funding_not_simulatable | The correction's funds transfer payment cannot be completed or failed. It may already be settled or canceled; fetch the correction for its current status. Sandbox only. |
| correction_not_draft | Only draft corrections can be updated, deleted, previewed, or approved, and payrolls (void or replacement) can only be added to a draft correction. Once approved, changes require reopening the correction or a new correction. |
| correction_not_manually_simulated | Simulate actions are only available for corrections with simulation_mode manual. Automatic corrections settle on their own. Sandbox only. |
| correction_not_pending | Only pending corrections can be reopened or start processing. |
| correction_not_previewed | Preview this correction to generate its receipt. |
| correction_not_processing | Only processing corrections can complete or fail funding. Start processing with Start correction processing first. Sandbox only. |
| correction_not_session_managed | This correction's payrolls are not managed by the correction; it cannot be approved through Approve a correction. |
| correction_not_supported | This correction cannot accept payrolls (void or replacement). Create a correction via Create a correction and use that instead. |
| correction_reopen_deadline_passed | This correction can no longer be reopened because its reopen_deadline has passed. |
| disallowed_environment | The requested functionality is not supported in the current sandbox or live environment. |
| earning_code_already_exists | Only one earning code can be created per company, type, name, and active status. |
| employee_benefit_effective_date_overlap | The maximum number of overlapping benefits for this benefit type has been exceeded. Update the benefits’ effective dates to have fewer overlapping benefits. |
| employee_federal_withholding_locked | The employee has an IRS lock-in letter on file (irs_lock_in_letter is "true"), so their federal W-4 elections can't be changed and their federal W-4 form can't be previewed or submitted. The response has no input_errors. See IRS lock-in letters. |
| federal_tax_liability_exceeds_100k | The company's attempt at payroll approval failed due to their total federal tax liability exceeding $100,000 for their deposit period. To resolve this, the payroll must be funded by wire. |
| locked_resource_error | Cannot start action because another one is in progress. Returns HTTP 409. Retry once the in-progress calculation, preview, or approval completes. |
| net_pay_negative | Net pay was calculated to be negative. Contact us if you encounter this. |
| non_empty_payroll_required | Payrolls must have at least one item or contractor payment to be previewed or approved. |
| non_managed_payroll_update_invalid | Non-managed payrolls cannot be updated as they were not managed and paid via Check. Contact us if you need to update a non-managed item. |
| not_authenticated | Authentication credentials were not provided. |
| not_found | The resource you're looking for was not found, or you do not have permission to access it. |
| off_cycle_options_invalid | Only payrolls of type 'off_cycle' can have 'off_cycle_options'. |
| payday_invalid | The payday is not valid for the given pay period and frequency. |
| payroll_date_invalid | Invalid payroll period or payday. |
| payroll_already_approved | Payroll is already approved, and further changes are not allowed. If changes need to be made before the approval deadline, you can reopen the payroll. |
| payroll_approval_deadline_expired | Payroll is past approval deadline without approval, and further changes are not allowed. If you want to pay employees by payday, they must all be paid with the "manual" payment method. |
| payroll_item_already_exists | Only one payroll item may be created per employee per payroll. The response will identify the employee causing the issue. |
| payroll_item_already_voided | One of the selected payroll items or contractor payments has already been voided by a void that is pending or later. On Approve a correction, another correction's void of the item was approved first. |
| payroll_item_limit_exceeded | Payroll items are limited to 500 per payroll. |
| payroll_managed_by_correction | The payroll is a void or replacement whose lifecycle its correction manages, so it cannot be previewed, approved, updated, or reopened directly. Act on the correction instead. |
| payroll_not_approved | Payroll must be approved. |
| payroll_not_draft | Payroll is not in draft status. Modifying or deleting the payroll is not allowed. |
| payroll_not_voidable | Payroll must be a non-void regular or off_cycle payroll with a paid or partially_paid status to be voided. An ACH-funded payroll may also be rejected until its funding has cleared the ACH return window. |
| payroll_preview_required_before_approval | Payroll must be previewed before being approved. |
| payroll_reopening_invalid | Only payrolls in the 'pending' status can be reopened. |
| payroll_reopening_invalid | Payroll cannot be reopened after reopen deadline has passed |
| permission_denied | You do not have permission to perform this action. |
| post_tax_deduction_invalid | The post tax deduction to be created or updated is invalid. Refer to the post-tax deduction object specification to determine the correct configuration. |
| preview_required | Correction must be previewed before being approved. |
| request_malformed | The request was malformed. |
| routing_number_invalid | Invalid ABA routing number. Update it to be a valid ABA routing number and try again. |
| settlement_date_invalid | settlement_date must be a banking day between the earliest date ACH can reach and 7 days from today. |
| settlement_date_required | settlement_date must be set before the correction can be approved, because the correction will debit or refund the employer. |
| start_date_invalid | Invalid payday start date for paydays list endpoint. |
| state_not_supported | You have tried to create a company, employee, or workplace in a state that is not currently supported by Check. Contact Check if a state you require is not yet supported via the API. |
| throttled | You made too many requests to the API. See the accompanying message for when to attempt requests again. |
| unapproved_payroll_void_invalid | Payroll items of unapproved payrolls cannot be voided. Instead, update the previous payroll. |
| validation_error | The request body contained invalid data. Look at the message and optional input_errors for more information to resolve. |
| voided_payroll_reopening_invalid | Cannot reopen a payroll with voided item or voided contractor payment. Contact us if you need to reopen a voided item. |
| void_already_exists | One of the selected payroll items or contractor payments is already covered by a draft void, on this or another correction, and cannot be voided again. |
| void_invalid | A void payroll item cannot be voided. |
| 3dp_cash_requirement_limit_exceeded | Payroll exceeds three-day payroll cash requirement limit of $1,000,000. To proceed, change the payroll's funding_payment_method to wire. |

