Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getpalm.com/llms.txt

Use this file to discover all available pages before exploring further.

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
FieldTypeRequiredDescription
tinstringYesEIN (XX-XXXXXXX or 9 digits) or SSN (XXX-XX-XXXX or 9 digits)
namestringYesFor EIN: legal business name. For SSN: full name (First Last or First Middle Last)
tin_typeenumYesein or ssn — determines the validation path
reference_idstringNoYour reference ID, echoed back in the response
metadataobjectNoFree-form key/value pairs stored on the verification record

Example request

Bash
curl -X POST https://api.getpalm.com/v1/tin/verification \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer sk_test_...' \
  -d '{
    "tin": "12-3456789",
    "tin_type": "ein",
    "name": "Acme Corporation",
    "reference_id": "tin_req_12345"
  }'

Response

FieldTypeDescription
verification_idstring (UUID)Unique identifier for this TIN verification.
objectstringAlways tin_verification.
tin_typeenumein or ssn (echoes the request).
matchedboolean or nulltrue = match, false = no match, null = could not be determined.
statusenumcompleted, pending, in_progress, or failed.
unavailable_reasonenumOnly present when status is pending. See below.
reference_idstringEchoed from request, if provided.
verified_atdatetimeWhen the TIN was verified. Only present when status is completed.

Response states

Completed: The IRS returned a definitive answer. Check matched for the result.
JSON
{
  "verification_id": "550e8400-e29b-41d4-a716-446655440000",
  "object": "tin_verification",
  "tin_type": "ein",
  "matched": true,
  "status": "completed",
  "reference_id": "tin_req_12345",
  "created_at": "2026-04-22T05:33:01.665Z",
  "verified_at": "2026-04-22T05:33:01.665Z"
}
Pending: The IRS TIN matching service is temporarily unavailable. matched is null. Check unavailable_reason and retry later.
JSON
{
  "verification_id": "550e8400-e29b-41d4-a716-446655440000",
  "object": "tin_verification",
  "tin_type": "ein",
  "matched": null,
  "status": "pending",
  "unavailable_reason": "tin_matching_service_unavailable",
  "reference_id": "tin_req_12345",
  "created_at": "2026-04-22T05:33:01.665Z"
}

Unavailable reasons

ReasonWhat it means
tin_matching_service_unavailableIRS TIN matching service is temporarily down. Retry later.
tin_matching_token_unavailableAuthentication with IRS service failed. Retry later.

Error codes

ReasonWhat it means
tin_matching_not_configuredTIN matching is not enabled for your account. Contact Palm.
tin_matching_invalid_formatThe TIN format was rejected by the IRS service. Check the input.
tin_matching_unknown_errorUnexpected error. Retry, and contact Palm if it persists.

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

Verify TINVerify a Business
EndpointPOST /v1/tin/verificationPOST /v1/business/verification
What it checksTIN + name against IRS only.Registry, TIN, risk, watchlists and more.
Requires workflowNo.Yes (workflow_key).
Requires vault recordNo.Yes (business must exist in vault).
Use caseStandalone TIN validation.Full KYB verification.
For the full parameter reference, see the API Reference.

Next steps