Verify TIN
Verifies a Tax Identification Number (EIN or SSN) and associated name against IRS records. Unlike POST /business/verification, this runs only the IRS TIN Matching check and does not perform registry lookup or risk assessment. When the IRS service is unavailable, returns matched: null with status: pending and a machine-readable unavailable_reason so callers can retry later. In test mode the check is always simulated — the IRS is never contacted, and metadata._simulate selects the outcome (see the metadata field).
Authorizations
Enter your API key in the format: sk_test_xxxxx or sk_live_xxxxx
Body
Tax Identification Number to verify. For EIN use XX-XXXXXXX or 9 digits. For SSN use XXX-XX-XXXX or 9 digits.
"12-3456789"
Name associated with the TIN. For EIN this is the legal business name. For SSN this is the individual's full name (First Last or First Middle Last).
"Acme Corporation"
Type of TIN being verified — selects the EIN (business) vs SSN (individual) validation path.
ein, ssn "ein"
Partner-provided reference ID; echoed back in the response for tracking.
"tin_req_12345"
Custom metadata.
In test mode (sk_test_ key), TIN verification is always simulated — it never contacts the IRS, so no-directive test requests return a deterministic match rather than a real verdict. The reserved key _simulate selects the outcome:
match(default) →matched: true,status: completedno_match→matched: false,status: completedunavailable→matched: null,status: pendingwithunavailable_reason(the IRS-outage shape)
Malformed TINs still return the same tin_matching_invalid_format error as live mode. Ignored in live mode.
Response
TIN verification completed (matched or not matched) or pending (IRS temporarily unavailable).
Unique TIN verification ID (UUID v4).
"550e8400-e29b-41d4-a716-446655440000"
Object type — always the literal string tin_verification.
tin_verification "tin_verification"
Type of TIN that was verified (echoes the tin_type from the request).
ein, ssn "ein"
Whether the TIN matched the provided name at the IRS. true = match, false = no match, null = match could not be determined (e.g., IRS service unavailable — see unavailable_reason).
true
Current status of the verification. completed when IRS returned a definitive answer; pending when IRS was unavailable and the caller should retry.
pending, in_progress, completed, failed "completed"
ISO 8601 timestamp of when the verification record was created.
"2026-04-17T10:30:00Z"
Machine-readable reason the verification could not be completed. Only present when status === "pending" or an error occurred.
tin_matching_service_unavailable "tin_matching_service_unavailable"
Partner-provided reference ID — echoed back only if one was supplied in the request.
"tin_req_12345"
ISO 8601 timestamp of when the TIN was verified against IRS records. Only present when status === "completed".
"2026-04-17T10:30:01Z"

