Tax Filings

This guide explains how to use Check’s filing-related APIs

The filings API replaces the tax_filings API, will become deprecated December 31, 2025.

API Integration Guide

Filings API

GET /filings?company=com_vIFHhvyGN47ej1upyIT8

List the filing history, plus expected upcoming filings, for a single company.

[
  {
    "id": "com_fil_GaeJoEAzbqqc2D9GMfOF",
    "company": "com_vIFHhvyGN47ej1upyIT8",
    "year": 2025,
    "period": "q1",
    "label": "Texas Quarterly Employment Return",
    "due_at": "2025-04-30",
    "filed_at": null,
    "filing_attempts": 0,
    "document": null,
    "amends": null, // nullable list
    "amended_by": null, // nullable list
    "status": "blocked",
    "status_history": [
      {
        "status": "blocked",
        "status_at": "2025-01-01T01:08:00.957364Z",
        "blocked_reasons": [
          {
            "type": "applied_for_tax_id",
            "resource_type": "company_tax_param",
            "resource": "spa_h7zSw4NITCtef4Taf5yA"
          }
        ]
      }
    ]
  },
  {
    "id": "com_fil_bISuBs24PYIOF4hN2wh7",
    "company": "com_vIFHhvyGN47ej1upyIT8",
    "year": 2025,
    "period": "q1",
    "label": "Amended Federal Quarterly Tax Return",
    "due_at": "2025-04-30",
    "filed_at": "2025-05-10T16:31:00Z",
    "filing_attempts": 1,
    "document": "doc_2345",
    "amends": ["com_fil_AaeJoEAzbqqc2D9GMr3R"],
    "amended_by": null,
    "status": "filed",
    "status_history": [
      {
        "status": "filed",
        "status_at": "2025-05-10T16:31:00.957364Z",
        "blocked_reasons": null
      },
      {
        "status": "pending",
        "status_at": "2025-01-01T01:04:00.957364Z",
        "blocked_reasons": null
      }
    ]
  },
  ...
]

GET /filings/com_fil_GaeJoEAzbqqc2D9GMfOF

Get a single filing.

{
  "id": "com_fil_GaeJoEAzbqqc2D9GMfOF",
  "company": "com_vIFHhvyGN47ej1upyIT8",
  "year": 2025,
  "period": "q1",
  "label": "Texas Quarterly Employment Return",
  "due_at": "2025-04-30",
  "filed_at": null,
  "filing_attempts": 0,
  "document": null,
  "amends": null,
  "amended_by": null,
  "status": "blocked",
  "status_history": [
    {
      "status": "blocked",
      "status_at": "2025-01-01T01:08:00.957364Z",
      "blocked_reasons": [
        {
          "type": "applied_for_tax_id",
          "resource_type": "company_tax_param",
          "resource": "spa_h7zSw4NITCtef4Taf5yA"
        }
      ]
    }
  ]
}

The Filing Object

Fields non-nullable unless specified.

field

type

description

id

ID

ID of the Filing (prefixed with com_fil_)

company

ID

ID of the Company

year

int

Year in which the filing is for

period

enum, one of annual, q1, q2, q3, q4, january, february, march, april, may, june, july, august, september, october, november, december

Filing period in the year.

label

string

Human-readable label for the filing.

due_at

date

ISO8601 date the filing is due to the agency by.

filed_at

  • *nullable** datetime in UTC

ISO8601 datetime the filing status became successfully filed.

document

  • *nullable** ID

If the processing_status is filed, the ID of the CompanyTaxDocument.

filing_attempts

int, default 0

Number of filing attempts made by Check.

amends

  • *nullable** list of IDs

List of original Filing IDs that this resource is an amendment of. If populated, indicator of this Filing being an amendment.
Will contain only one ID for now, but may be contain multiple IDs in the future.

amended_by

  • *nullable** list of IDs

List of Filing IDs that amend this filing.

status

enum, one of pending, blocked, filed , orinapplicable

The current filing processing status.

status_history

list of StatusHistory objects

List of the most recent status changes, in reverse chronological order. Limited to most recent 50. Each object represents a processing status change.

pending: Once a tax filing is determined to be applicable for a company at the start of a filing period, this object will be created as pending or blocked (see below). Check is responsible for action. Note, this will become available for all filings in early 2026.
blocked: If there are any determined blockers to Check completing a successful filing—invalid EINs, EINs marked as applied for, etc.—the filing will be blocked with a set of reason enumerations. All reasons should be actionable by the employer. The Partner/Employer is responsible for action.
filed: Once the filing is acknowledged by the agency as successfully filed, it will be marked as filed.
inapplicable: Check has determined the filing no longer applies to the company. Reasons might include include: voided payrolls, regulatory change, updated tax elections.

StatusHistory

fieldtypedescription
statusenumOne of pending, blocked, filed , inapplicable
status_atdatetime in UTCWhen the previous status was changed to status.
blocked_reasonsnullable list of BlockedReason objectsOptional list of reason enumerations for the status change to blocked.

BlockedReason

fieldtypedescription
typeenumOptions enumerated below.
resource_typenullable company_tax_param or requirementCompanyTaxParam or Requirement
resourcenullable IDID of the resource for resolving the blocker

Possible BlockedReason types

The accompanying resource_type is specified in parentheses, if applicable.

  • already_filed
  • applied_for_tax_id (company_tax_param)
  • company_bad_standing
  • held_by_customer
  • inactive_account
  • incorrect_account_setup
  • invalid_ssn
  • invalid_tax_id
  • invalid_tax_rate
  • late_company_reactivation
  • missing_historical_data
  • missing_prior_quarter
  • not_liable
  • poa_failure
  • previous_filing_in_progress
  • tpa_failure

statuslifecycle:

Further reading: Employee Tax Statements