Tax form OCR

Tax forms in. Boxes out.

Upload a W‑2 as a PDF or scan, forward it by e-mail or send it to the API. Parsevix returns the employer, the employee, wages and withholding, box 12 codes and state and local taxes as structured data, ready for payroll checks or tax preparation.

  • Every W‑2 box as a field of its own
  • State and local taxes, row by row
  • Personal data masked automatically before the AI step

No credit card · 20 free pages every month

What you get back

The W‑2, box by box, already defined.

The built-in Tax Form category follows the US W‑2 and returns 32 fields: the form, employer and employee, boxes 1 to 13 and the state and local rows. Use it as it is, or change it in your project for the forms you handle.

Amounts come back as plain numbers and box 13 checkboxes as Yes or No. A box the form leaves empty, such as allocated tips, is left out, not guessed.

Form

  • tax_yearstring
  • form_typestring
  • control_numberstring

Employer

employer_infoobject

  • employer_namestring
  • employer_einstring
  • employer_addressstring
  • state_id_numberstring

Employee

employee_infoobject

  • employee_namestring
  • employee_ssnstring
  • employee_addressstring

Wages and withholding (boxes 1⁠–⁠8)

wagesobject

  • wages_tips_othernumber
  • federal_tax_withheldnumber
  • social_security_wagesnumber
  • social_security_taxnumber
  • medicare_wagesnumber
  • medicare_taxnumber
  • social_security_tipsnumber
  • allocated_tipsnumber

Other compensation (boxes 10⁠–⁠11)

  • dependent_care_benefitsnumber
  • nonqualified_plansnumber
  • deferred_compensationnumber

Box 12 codes

box_12_codesarray

  • codestring
  • amountnumber

Box 13

box_13object

  • statutory_employeestring
  • retirement_planstring
  • third_party_sick_paystring

State and local (boxes 15⁠–⁠20)

state_localarray

  • statestring
  • state_wagesnumber
  • state_taxnumber
  • local_wagesnumber
  • local_taxnumber
  • locality_namestring

Your own fields

A name, a type and one sentence on what it is.

  • box_14_other
  • payer_tin
  • nonemployee_comp
  • corrected

Made for tax season

Stacks of forms, read box by box.

Tax forms arrive in bulk, as PDFs from payroll providers and as scans from employees. This is what Parsevix does with them.

01

Box by box

Each box of the W‑2 has a field of its own: wages, federal tax, social security and Medicare in boxes 1 to 6, box 12 codes as a list of code and amount, box 13 as Yes or No. Your payroll check or tax software reads the same field names on every form.

  • 02

    W‑2 out of the box, 1099 with a few fields

    The form type says which form a document is. The built-in fields follow the W‑2; for 1099 forms, add the boxes you need to the category in your project.

  • 03

    Every state and locality

    State and local taxes come back as a list, one row per state or locality, with wages and tax for each.

  • 04

    Batches in tax season

    Upload a batch in the dashboard, send forms from your own system through the API, or let employees mail them to the project's address.

  • 05

    Tax documents from other countries

    The built-in category is shaped for US forms. For another country's tax certificate, create a category with its own fields, or let Parsevix extract every field it finds without a schema.

  • 06

    Names, addresses and numbers masked

    Names, addresses and identification numbers are masked automatically before any text goes to the AI model and put back in your result. Detection catches most personal data, not necessarily every item.

  • 07

    Every value linked to its box

    Each value is linked to the spot on the form it came from. Click it in the dashboard to see the box it was printed in.

How forms get in

Upload them, forward them or send them from your system.

Dashboard

Upload forms as PDFs or scans, one at a time or as a batch. Check each result next to its page and approve it.

E-mail address

Paid plans

Every project gets its own address. Forward forms to it, and each attachment becomes a document.

API

Send forms from your payroll or tax software and get the JSON in the same response, or receive results by signed webhook or through Zapier.

Request

curl https://parsevix.com/api/v1/extract \
  -H "X-API-Key: $PARSEVIX_API_KEY" \
  -F file=@w2-2025.pdf \
  -F category="Tax Form"

The request stays open until the document is read and answers with the JSON.

  • POST /documentsUpload without waiting; the result arrives by webhook or callback.
  • POST /extract-autoNo category: every field Parsevix finds, named as in the document.
  • POST /classifyOnly the document's category, for 1 credit.
Full API reference

Response · trimmed

{
"status": "Completed",
"category": "Tax Form",
"pageCount": 1,
"language": "en",
"extracted": {
"tax_year": "2025",
"form_type": "W-2",
"wages": {
"wages_tips_other": 68450.00,
"federal_tax_withheld": 8214.00,
…
},
…
},
…
}

Security & compliance

  • PII maskedautomatically, before the AI step
  • Encryptedin transit and at rest
  • No AI trainingon your documents
  • API files deletedafter processing

Priced per page, not per feature.

Every plan reads, sorts and masks documents the same way. Picking the category is included, and a document that fails costs nothing.

See pricing
credit per page
1
free pages every month
20
a month for 500 pages
$39

Tax form FAQ

Tax forms,
answered.

What teams ask before they send their first forms.

Still have a question?

Write to us. A person reads every message.

PDF, Word (DOCX), PNG, JPG and TIFF, up to 10 MB and 30 pages each. Scans and phone photos work too; every page is read as an image.

Not with the built-in fields, which follow the US W‑2. Create a category with the fields of your country's form, or extract without a schema and get every field the document carries, named as on the form.

The form type field tells a 1099 from a W‑2, but the built-in boxes are the W‑2's. Add the 1099 boxes you need, such as nonemployee compensation, to the category in your project.

No. It extracts what the form says into fields. It doesn't check whether the amounts are correct or complete, and nothing it returns is tax advice.

One credit per page, and a W‑2 copy is usually one page. Choosing the category is included, and if a document fails, its credits are given back.

Forms uploaded in the dashboard or sent by e-mail stay in your project until you delete them. Files sent through the API are deleted after processing unless you turn on keeping them for the project. Your forms are never used to train AI.