currentStatus object
and identify taxpayers the same way. The lookups are part of delegate access. This page explains how to
read a result.
currentStatus
Always present on a response. An object with a status and two badge URLs, one per theme:
badgeGraphicUrl and badgeGraphicUrlDark are publicly hosted SVGs you can embed directly
to display the status. Use badgeGraphicUrl on light backgrounds and badgeGraphicUrlDark
on dark ones.
Status values
Compliant: No balance owed and no missing required returns.ActiveResolution: A balance is owed, and active installment agreements cover all of it. No missing required returns.AtRisk: A balance is owed that active installment agreements do not fully cover. No missing required returns and no active collection threat.NotCompliant: Missing required returns or an active collection threat.DataPending: TaxRock does not have this taxpayer’s data yet. Its financial totals are null and its lists are empty. Account-level totals read 0.NotMonitored: TaxRock is not monitoring a business with that EIN for the user you have authenticated the request on behalf of. Appears at the top level only, where result is null.Account-wide status (client-account lookup only)
On the client-account lookup, the top-levelcurrentStatus is client-account-wide: the least favorable status across the account’s taxpayers. An account
with no issues found and incomplete data reads DataPending.
Balances by year
Every taxpayer and the client account carrybalanceByYear, the balance broken down per tax
year, most recent year first. Each entry splits the year into principal, interest,
penalties, allCredits, and unallocatedCredits, with amountDue as the net owed for the
year. The top-level amountDue is the total across all years, and balanceByYear is the
breakdown behind it. The account’s balanceByYear aggregates its taxpayers.
Liens
Every taxpayer carriesliens, the full list of federal tax liens on that taxpayer in any
state (Active, Released, or Removed), alongside a lienSummary of rollups. Each lien
has its filingDate, status, the currentSecuredBalance it secures, and the
securedPeriods (form and tax period) still secured. A removed lien also carries
fullyRemovedDate and balanceAtRemoval.
lienSummary (also on the client account, aggregated across its taxpayers) gives:
hasActiveLienSecuringNonZeroBalance: true when an active lien secures a balance above zero.totalBalanceSecuredByLiens: total secured across active liens.mostRecentActiveLienFilingDate: filing date of the most recently filed active lien, ornullwhen there are none.
Installment agreements
Every taxpayer carriesinstallmentAgreements, the full list in any state (Requested, Pending,
Active, PaidOff, Defaulted, or Removed), alongside an installmentAgreementSummary
of rollups. Each agreement has its status, startDate and endDate, currentBalance,
totalPaid, and the coveredPeriods it currently covers. A closed agreement also carries
balanceAtClose.
Requested: the agreement has been requested and the IRS has not acted on it. Its startDate is the request
date, and its coveredPeriods are the periods requested.
installmentAgreementSummary (also on the client account, aggregated across its taxpayers) gives:
hasBalanceNotCoveredByActiveIA: true when a balance is owed that no active agreement covers.balanceNotCoveredByActiveIA: the total of that uncovered balance.periodsNotCoveredByActiveIA: the specific form-periods with a balance not covered by an active agreement.
Identifying the matched taxpayer
isLookupMatch(client-account lookup only):trueon the row (intaxpayers[]orpendingTaxpayers[]) whose TIN matched the EIN you looked up.tin: unformatted digits. For businesses it is the raw nine-digit EIN. For individuals it is censored to the last four digits (xxxxx0123).isTinCensored:truewhentinis censored.
Pending taxpayers
pendingTaxpayers[] (client-account lookup only) are taxpayers added to the account but
not yet onboarded. Each has id, name, type, isLookupMatch, tin (null if not
provided yet), and isTinCensored, with no status or financial fields.
Errors
A missing or malformedbusinessEin returns 400 with an { error, message } body:
invalid_request:businessEinwas absent, empty, or not a string.invalid_ein:businessEindid not contain nine digits (dashes and spaces are ignored).
{ error, error_description } shape
instead of this { error, message } shape.
