const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tin: '12-3456789',
tin_type: 'ein',
name: 'Acme Corporation',
reference_id: 'tin_req_12345'
})
};
fetch('https://api.getpalm.com/v1/tin/verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"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"
}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.
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tin: '12-3456789',
tin_type: 'ein',
name: 'Acme Corporation',
reference_id: 'tin_req_12345'
})
};
fetch('https://api.getpalm.com/v1/tin/verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"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"
}Enter your API key in the format: sk_test_xxxxx or sk_live_xxxxx
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"
Free-form key/value metadata stored on the verification record for partner use.
{
"external_id": "tin_789",
"source": "1099_processing"
}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_not_configured, tin_matching_token_unavailable, tin_matching_invalid_format, tin_matching_service_unavailable, tin_matching_unknown_error "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"
Was this page helpful?