us_w2IRS Form W-2
Employer, EIN, wages and withholding from a W-2.
- Category
- Tax
- Country
- United States
- Extracted fields
- 15 fields
- Cost
- 1 credit
us_w2specimen- Tax year
- Employer EIN
- Employer
- Employee SSN
- Employee name
- Employee address
- Wages, tips, other compensation
- Federal income tax withheld
- Social Security wages
W-2s show up in rental applications, loan files and income checks. Constaia extracts the tax year, employer, EIN and box amounts, checks the EIN and SSN formats and compares the employee name with the one you expect.
- If you do not need the SSN, leave it out of extract and ask applicants for a masked copy.
What it checks
- National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).
us_ein, us_ssn - Holder. Name, number or date of birth match what you expect.
Extracted fields
- Tax year
tax_year - Employer EIN
employer_ein - Employer
employer - Employee SSN
employee_ssn - Employee name
employee_name - Employee address
employee_address - Wages, tips, other compensation
wages - Federal income tax withheld
federal_income_tax_withheld - Social Security wages
social_security_wages - Social security tax withheld
social_security_tax_withheld - Medicare wages
medicare_wages - Medicare tax withheld
medicare_tax_withheld - State
state - State wages
state_wages - State income tax
state_income_tax
Sample request
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@us_w2_specimen.pdf" \
-F 'options={
"expect": "us_w2",
"checks": {
"holder": {
"full_name": "Jordan Specimen"
},
"require_fields": [
"wages",
"tax_year"
]
},
"storage": "none"
}'Try it for free with a ck_test_ key and the file us_w2_specimen.pdf.
Sample response
Fictitious data. Shortened response.
200 OK · application/json
{
"id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
"object": "analysis",
"status": "completed",
"livemode": false,
"document": {
"type": "us_w2",
"label": "IRS Form W-2",
"confidence": 0.97
},
"verdict": {
"expected": [
"us_w2"
],
"match": true,
"status": "valid",
"reasons": [
{
"code": "type_match",
"severity": "info",
"message": "The document is: IRS Form W-2."
}
]
},
"fields": {
"tax_year": {
"value": 2025,
"confidence": 0.99,
"validated": true
},
"employee_name": {
"value": "JORDAN L SPECIMEN",
"confidence": 0.98,
"validated": null
},
"employee_ssn": {
"value": "XXX-XX-6789",
"confidence": 0.97,
"validated": null
},
"employer_name": {
"value": "EXAMPLE LOGISTICS INC",
"confidence": 0.96,
"validated": null
},
"employer_ein": {
"value": "12-3456789",
"confidence": 0.99,
"validated": null
},
"wages": {
"value": 58240.5,
"confidence": 0.98,
"validated": null
},
"federal_tax_withheld": {
"value": 6120,
"confidence": 0.97,
"validated": null
},
"state": {
"value": "IL",
"confidence": 0.96,
"validated": null
}
},
"checks": [
{
"code": "ein_format",
"passed": true,
"message": "The EIN has a valid format."
},
{
"code": "holder_match",
"passed": true,
"message": "The holder matches."
}
],
"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.