The correction object

A bundle of changes to a company's pay history and their effects on taxes.

🚧

Preview

The 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": {}
}
AttributeDescription
id
string
Unique identifier for the correction.
description
string
A human-readable description of the correction, set by you.
company
string
ID of the company whose pay history is being corrected.
year
integer
The tax year the correction applies to, set at creation. All payrolls on a correction must belong to this tax year.
created_at
timestamp
Time at which the correction was created.
status
string
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.
preview
object 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.
approval
object 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_deadline
timestamp 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_date
string 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_account
string 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.
totals
object 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.
operations
array
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.
warnings
array
Warnings related to the correction.
metadata
object
Arbitrary key-value data you can attach to the correction.