Skip to main content
Image showcasing a form to collect information, and the output of a TIN verification request

What it does

Verify TIN checks whether a TIN (EIN or SSN) matches the name on file at the IRS. It returns one of three results: matched, not matched, or pending (IRS unavailable). This is a single-purpose check. It does not run registry lookups, risk assessment, or any other verification step. If you need the full suite of business verification checks, use Verify a Business — which includes TIN verification as part of the workflow.

When to use it

Use the standalone TIN endpoint when you need to validate a TIN outside of a full verification flow:
  • 1099 processing: Confirm TINs before filing to avoid IRS B-notices.
  • Pre-verification validation: Check a TIN before running a full business verification.
  • Bulk TIN hygiene: Validate TINs across your existing portfolio.
  • SSN verification: Validate an individual’s SSN and name against IRS records, independent of a person verification.

Request

POST /v1/tin/verification

Example request

Bash

Response

Response states

Completed: The IRS returned a definitive answer. Check matched for the result.
JSON
Pending: The IRS TIN matching service is temporarily unavailable. matched is null. Check unavailable_reason and retry later.
JSON

Unavailable reasons

Error codes

Handling IRS downtime

The IRS TIN matching service has scheduled and unscheduled downtime. When the service is unavailable, the endpoint returns status: pending with matched: null instead of failing. This lets you distinguish between “TIN didn’t match” (matched: false) and “we couldn’t check” (matched: null). Build your integration to handle the pending state: store the verification_id, and retry when your system is ready. Do not treat matched: null as a match or a non-match.

Verify TIN vs full business verification

For the full parameter reference, see the API Reference.

Next steps