> ## Documentation Index
> Fetch the complete documentation index at: https://docs.taxrock.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Compliance status

> The currentStatus object, status values, badges, and how taxpayers are identified.

Both lookup endpoints return a `currentStatus` object and identify taxpayers with the
same conventions. They're described once here.

## `currentStatus`

Always present on a response. An object with a `status` and a `badgeGraphicUrl`:

```json theme={null}
{
  "status": "AtRisk",
  "badgeGraphicUrl": "https://taxrock-assets.s3.us-east-2.amazonaws.com/public/status-badges/taxrock-badge-at-risk.svg"
}
```

`badgeGraphicUrl` is a publicly hosted SVG you can embed directly to display the status.

### Status values

These are the live `badgeGraphicUrl` graphics — embed them directly to display the status.

<div className="my-6 flex flex-col gap-4">
  <div className="flex items-center gap-4">
    <span className="shrink-0 w-32">
      <img className="block dark:hidden" style={{ height: "24px", width: "auto" }} src="https://taxrock-assets.s3.us-east-2.amazonaws.com/public/status-badges/taxrock-badge-compliant.svg" alt="Compliant" />

      <img className="hidden dark:block" style={{ height: "24px", width: "auto" }} src="https://mintcdn.com/taxrock/9N5jypJq8NMx5Km2/badges/taxrock-badge-compliant-dark.svg?fit=max&auto=format&n=9N5jypJq8NMx5Km2&q=85&s=e675b021356e718553404054aaa60f19" alt="Compliant" width="111" height="26" data-path="badges/taxrock-badge-compliant-dark.svg" />
    </span>

    <span><code>Compliant</code> — No outstanding issues detected. Balances and filings are in good standing.</span>
  </div>

  <div className="flex items-center gap-4">
    <span className="shrink-0 w-32">
      <img className="block dark:hidden" style={{ height: "24px", width: "auto" }} src="https://taxrock-assets.s3.us-east-2.amazonaws.com/public/status-badges/taxrock-badge-at-risk.svg" alt="At risk" />

      <img className="hidden dark:block" style={{ height: "24px", width: "auto" }} src="https://mintcdn.com/taxrock/9N5jypJq8NMx5Km2/badges/taxrock-badge-at-risk-dark.svg?fit=max&auto=format&n=9N5jypJq8NMx5Km2&q=85&s=976ff695a4576a4c4810483e2692d7f5" alt="At risk" width="93" height="26" data-path="badges/taxrock-badge-at-risk-dark.svg" />
    </span>

    <span><code>AtRisk</code> — An outstanding balance is owed, but no severe issues. Worth attention.</span>
  </div>

  <div className="flex items-center gap-4">
    <span className="shrink-0 w-32">
      <img className="block dark:hidden" style={{ height: "24px", width: "auto" }} src="https://taxrock-assets.s3.us-east-2.amazonaws.com/public/status-badges/taxrock-badge-not-compliant.svg" alt="Not compliant" />

      <img className="hidden dark:block" style={{ height: "24px", width: "auto" }} src="https://mintcdn.com/taxrock/9N5jypJq8NMx5Km2/badges/taxrock-badge-not-compliant-dark.svg?fit=max&auto=format&n=9N5jypJq8NMx5Km2&q=85&s=36d8917a3a96b513fd0edb2d21bf77a3" alt="Not compliant" width="138" height="26" data-path="badges/taxrock-badge-not-compliant-dark.svg" />
    </span>

    <span><code>NotCompliant</code> — A serious issue is present, such as unfiled required returns or an active collection threat.</span>
  </div>

  <div className="flex items-center gap-4">
    <span className="shrink-0 w-32">
      <img className="block dark:hidden" style={{ height: "24px", width: "auto" }} src="https://taxrock-assets.s3.us-east-2.amazonaws.com/public/status-badges/taxrock-badge-data-pending.svg" alt="Data pending" />

      <img className="hidden dark:block" style={{ height: "24px", width: "auto" }} src="https://mintcdn.com/taxrock/9N5jypJq8NMx5Km2/badges/taxrock-badge-data-pending-dark.svg?fit=max&auto=format&n=9N5jypJq8NMx5Km2&q=85&s=521af1764cba8e719d102a28997ff814" alt="Data pending" width="132" height="26" data-path="badges/taxrock-badge-data-pending-dark.svg" />
    </span>

    <span><code>DataPending</code> — TaxRock is still gathering the data; onboarding or IRS authorization is in progress. Financial fields are <code>null</code>.</span>
  </div>

  <div className="flex items-center gap-4">
    <span className="shrink-0 w-32">
      <img className="block dark:hidden" style={{ height: "24px", width: "auto" }} src="https://taxrock-assets.s3.us-east-2.amazonaws.com/public/status-badges/taxrock-badge-not-monitored.svg" alt="Not monitored" />

      <img className="hidden dark:block" style={{ height: "24px", width: "auto" }} src="https://mintcdn.com/taxrock/9N5jypJq8NMx5Km2/badges/taxrock-badge-not-monitored-dark.svg?fit=max&auto=format&n=9N5jypJq8NMx5Km2&q=85&s=3beff75fb0355e52b54fc9b4520cefaa" alt="Not monitored" width="139" height="26" data-path="badges/taxrock-badge-not-monitored-dark.svg" />
    </span>

    <span><code>NotMonitored</code> — TaxRock is not monitoring a business with that EIN for you. Appears at the top level only, where <code>result</code> is <code>null</code>.</span>
  </div>
</div>

### Account-wide status

On the client-account lookup, the top-level `currentStatus` is **client-account-wide**:
the worst status across the account's taxpayers — except that a clean-so-far account with
incomplete data reads `DataPending` rather than `Compliant`.

## Identifying the matched taxpayer

* **`isLookupMatch`** — `true` on the row (in `taxpayers[]` or `pendingTaxpayers[]`) 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`** — `true` when `tin` is censored, so you never have to infer the
  censoring policy from `type`.

## 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` — no status or financial fields.

## Errors

A missing or malformed `businessEin` returns `400` with an `{ error, message }` body:

* `invalid_request` — `businessEin` was absent or not a string.
* `invalid_ein` — `businessEin` did not contain nine digits (dashes and spaces are ignored).
