A bundle of changes to a company's pay history and their effects on taxes.
PreviewThe Corrections API is not yet available. This page is a preview of what the API will look like, and details may change before release.
A Correction groups any number of void payrolls and external payrolls into a single unit that is previewed, approved, and fulfilled together. Grouping changes onto one correction lets Check offset the resulting tax liabilities against each other — for example, taxes refunded by a void can offset taxes owed on its replacement payroll — so amounts are not double-collected.
{
"id": "cor_Bw6EkMDmxCPeVQ2eYzLu",
"description": "Void and replace 3/31 payroll for J. Smith",
"company": "com_sx3svU6K8c5ZkSFlOh5p",
"year": 2026,
"created_at": "2026-06-24T18:26:56.848920Z",
"status": "draft",
"preview": {
"status": "succeeded",
"started_at": "2026-06-29T18:26:56.848920Z",
"error_code": null
},
"approval": null,
"reopen_deadline": null,
"settlement_date": "2026-07-15",
"bank_account": "bnk_iPiAA7RDadr3gGMa2cvq",
"totals": {
"cash_requirement": "150.00",
"cash_requirement_waived": "0.00",
"agency_refundable": "25.00"
},
"operations": [
{
"operation": "void_payroll",
"creates": "pay_Mt7cJqXcVfW2yPKhBvsN",
"corrects": "pay_OriginalVoidedPayroll"
},
{
"operation": "add_payroll",
"creates": "pay_Vg3RvNwqLpTz8oYaGdQE",
"corrects": null
},
{
"operation": "balance_quarter",
"creates": "pay_Jd9nWuBqOxSz5eKmCvhT",
"corrects": "pay_OriginalBalancingPayroll"
}
],
"warnings": [],
"metadata": {}
}| Attribute | Description |
|---|---|
idstring | Unique identifier for the correction. |
descriptionstring | A human-readable description of the correction, set by you. |
companystring | ID of the company whose pay history is being corrected. |
yearinteger | The tax year the correction applies to, set at creation. All payrolls on a correction must belong to this tax year. |
created_attimestamp | Time at which the correction was created. |
statusstring | One of draft, pending, processing, settled, or failed. A correction is editable only while in draft. Approving a correction moves it to pending; its money movement is scheduled for settlement_date and the correction can be reopened while pending and before reopen_deadline. Once fulfillment begins processing, the correction moves to processing and can no longer be reopened. It moves to settled once fulfillment has been processed and the correction is reflected in the company's pay history. A correction moves to failed if its fulfillment cannot be processed. |
previewobject or null | Status of the most recent preview. Contains status (calculating, succeeded, or failed), started_at, and error_code (a partner-facing failure code when status is failed, otherwise null). The preview is invalidated whenever payrolls are added to or removed from the correction. |
approvalobject or null | Status of the most recent approval. Contains status (calculating, succeeded, or failed), started_at, and error_code (a partner-facing failure code when status is failed, otherwise null). null until an approval is requested. When status is failed with error_codefulfillment_changed, the correction remains in draft with refreshed totals reflecting the drifted plan. |
reopen_deadlinetimestamp or null | The last moment the correction can be reopened while in pending. null while in draft (before a successful preview, after preview invalidation, or after reopening). Set when a preview succeeds and is refreshed when approval completes. It is set to 11:00 AM Eastern on the banking day before the earliest irreversible money movement (the CFT send or a remittance orchestration run). |
settlement_datestring or null | The CFT settlement date for the correction's money movement. null until set at creation or updated on a draft. When provided, must be a valid banking day on or after the earliest date ACH can still reach for settlement. Any later banking day is allowed. |
bank_accountstring or null | ID of the bank account that will be debited or credited when the correction's money movement is fulfilled. Stamped when the correction is created or when bank_account is updated on a draft; null only when the company had no default bank account to stamp. |
totalsobject or null | Money-movement totals for the correction, using the same shape as fulfillment totals. null until a preview has priced the draft; after approval, these are the settled numbers. |
operationsarray | What the correction does, one entry per member payroll. Each entry contains operation (void_payroll, add_payroll, or balance_quarter), creates (the payroll ID the operation produced), and corrects (the payroll ID the operation acts on, or null when there is no original to offset). Empty on a newly created draft. |
warningsarray | Warnings related to the correction. |
metadataobject | Arbitrary key-value data you can attach to the correction. |

