Migrating from the Legacy Tax Filings API

The legacy Tax Filings API only provided visibility into filings after a filing failure occurred, whereas the new Filings API surfaces all filings, including those in the future based on payroll setup and activity. Existing integrations can replicate any failed filing experience, but also show a more holistic summary of filing status (what's upcoming, what's filed, etc.)

Filing Statuses

Legacy StatusNew StatusExplanation
pendingpendingCheck is in the process of creating the tax return for the company.
submittedpendingFilings will remain in pending until a success or failure response is returned by tax agencies.
filedfiledThe return has been accepted by the agency as filed. This status is now a terminal state.
rejectedblockedIn the new API, filings may be flagged as blocked before filing is attempted due to known blocking reasons (like an applied-for-tax-ID). They will also be marked as blocked after rejection from an agency, with accompanying blocking reasons indicating path to resolution.
amendment_requiredN/AFiling objects now have an amended_by field that may be used to determine that an amendment is needed, and resolve the status and any details about that amendment by querying its filing object directly.

Filing Events

tax_filing_events is replaced by status_history, which provides a complete chronology of a filing's progression through its lifecycle. When status goes to blocked, blocking_reasons indicate the problem and subsequent path to resolution.

Complete Mapping From Legacy Objects

TaxFiling to Filing

LegacyNewDetails
id (tlg_)id (com_fil_)
companycompany
yearyear
descriptionlabel
frequencyCan be derived from period
periodperiod
statusstatus
can_retryN/Ablocked filings may always be re-attempted after resolving blockers
filing_eventsstatus_history

TaxFilingEvent

LegacyNewDetails
id (fev_)N/A
tax_filingN/A
statusstatus
created_atstatus_at
categoryblocked_reason.type
labelblocked_reason.type
account_numberN/ACan be retrieved from Company Tax Parameters

Category to BlockedReason

LegacyNew
applied_for_invalid_einapplied_for_tax_id
poa_tpa_failuretpa_failure
partial_failure_invalid_ssninvalid_ssn
already_filedalready_filed
not_liablenot_liable
corrected_and_refiled_timelyN/A
inactive_accountinactive_account
missing_prior_quartermissing_prior_quarter
missing_historical_datamissing_historical_data
invalid_tax_rateinvalid_tax_rate

Webhooks

Previous topic: tax_filing

New topic: filing

LegacyNewDetails
createdcreated
updatedupdated
status_changeupdated
deletedN/AFilings that need to be deleted are set to not_applicable