us_w9Form W-9
Name, tax classification, TIN and signature from IRS Form W-9.
- Category
- Tax
- Country
- United States
- Extracted fields
- 11 fields
- Cost
- 1 credit
Before you pay a US contractor you need their taxpayer identification number (TIN) for Form 1099 reporting. Constaia reads the W-9, checks the SSN or EIN format, compares the name with the one you expect and confirms the form is signed and dated.
- Format checks do not replace IRS TIN Matching, which confirms that a name and TIN combination matches IRS records.
- Constaia returns the form revision it finds, so you can ask for the current one.
What it checks
- National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).
us_tin, us_ein, us_zip - Postal code. Postal code format of the country.
- Holder. Name, number or date of birth match what you expect.
- Recency. Issued less than N days ago.
Extracted fields
- Name
name - Business name
business_name - Federal tax classification
tax_classification - Exempt payee code
exempt_payee_code - Address
address - Postal code
postal_code - Social Security number (SSN)
ssn - Ein
ein - Signature present
signature_present - Signature date
signature_date - Form revision
form_revision
Where it is used
Sample request
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@us_w9_specimen.pdf" \
-F 'options={
"expect": "us_w9",
"checks": {
"require_signature": true,
"holder": {
"full_name": "Acme Example Services LLC"
}
},
"storage": "none"
}'Try it for free with a ck_test_ key and the file us_w9_specimen.pdf.
Sample response
Fictitious data. Shortened response.
{
"id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
"object": "analysis",
"status": "completed",
"livemode": false,
"document": {
"type": "us_w9",
"label": "Form W-9",
"confidence": 0.97
},
"verdict": {
"expected": [
"us_w9"
],
"match": true,
"status": "valid",
"reasons": [
{
"code": "type_match",
"severity": "info",
"message": "The document is: Form W-9."
}
]
},
"fields": {
"form_revision": {
"value": "Rev. March 2024",
"confidence": 0.99,
"validated": true
},
"holder_name": {
"value": "ACME EXAMPLE SERVICES LLC",
"confidence": 0.98,
"validated": null
},
"tax_classification": {
"value": "LLC (S corporation)",
"confidence": 0.97,
"validated": null
},
"tin_type": {
"value": "EIN",
"confidence": 0.96,
"validated": null
},
"tin": {
"value": "12-3456789",
"confidence": 0.99,
"validated": null
},
"signature_present": {
"value": true,
"confidence": 0.98,
"validated": null
},
"signature_date": {
"value": "2026-09-18",
"confidence": 0.97,
"validated": null
}
},
"checks": [
{
"code": "ein_format",
"passed": true,
"message": "The EIN has a valid format."
},
{
"code": "holder_match",
"passed": true,
"message": "The holder matches."
},
{
"code": "signature_present",
"passed": true,
"message": "It is signed."
}
],
"warnings": [],
"storage": {
"mode": "none",
"file_deleted_at": "2026-09-29T10:00:02Z",
"expires_at": null
},
"usage": {
"credits": 1,
"pages": 1
}
}FAQ
Does Constaia prove the document is authentic?
No. It checks the type, data consistency and your rules, and flags signals such as a possible edit or a screen photo. That does not prove authenticity.
Is a copy of the document kept?
No, unless you ask for it. With storage "none" (the default) the file is deleted when the analysis ends.
Other documents
And for the record…
Create your account, copy the test key and validate your first document in five minutes.