Tax Prep Document Intake: Parse W-2s, 1099s, and 1040s Automatically

W-21099 (NEC / MISC / INT / DIV)1040Schedule CK-1

The problem

Tax preparers get buried every intake season re-keying client-submitted W-2s, 1099s, and prior-year returns by hand — and the bottleneck is worst exactly when volume peaks, January through April.

How Dokyumi solves it

Build one schema per form type — a W-2 schema, a 1099 schema, a 1040 schema — and select the right slug on the shared extraction endpoint. Give clients a white-label upload portal (available on every plan, with more portals on Growth and Enterprise) so they submit documents directly instead of emailing PDFs back and forth.

Dokyumi returns structured data with a model-reported confidence map and validation details. Resolve review results before mapping the fields into your tax software's intake step.

Only need ONE of these form types — say, just W-2s — and don't need custom schemas or a client portal? Our sibling single-form tools are purpose-built and cheaper; see which tool fits.

Example schema and result

A real schema shape for tax prep documents, and the JSON you get back from one extraction.

Example schema definition

{
  "slug": "w2-parser",
  "name": "W-2 Parser",
  "description": "Extracts wage and withholding data from employee W-2 forms",
  "ocr_mode": "standard",
  "fields": [
    {
      "key": "employer_name",
      "type": "string",
      "required": true
    },
    {
      "key": "employer_ein",
      "type": "string",
      "required": true
    },
    {
      "key": "employee_name",
      "type": "string",
      "required": true
    },
    {
      "key": "wages_box1",
      "type": "currency",
      "required": true
    },
    {
      "key": "federal_tax_withheld_box2",
      "type": "currency",
      "required": false
    },
    {
      "key": "ss_wages_box3",
      "type": "currency",
      "required": false
    },
    {
      "key": "medicare_wages_box5",
      "type": "currency",
      "required": false
    },
    {
      "key": "state",
      "type": "string",
      "required": false
    }
  ]
}

Result — POST /api/v1/extract

{
  "id": "865b0cef-e441-48d2-9d91-07131ac700f4",
  "status": "completed",
  "request_id": "10bc808d-7b36-4cc9-a0c1-6110fd266a8b",
  "schema": "w2-parser",
  "data": {
    "employer_name": "Brightline Manufacturing Inc.",
    "employer_ein": "84-1234567",
    "employee_name": "R. Chen",
    "wages_box1": 68450,
    "federal_tax_withheld_box2": 8760,
    "ss_wages_box3": 68450,
    "medicare_wages_box5": 68450,
    "state": "CA"
  },
  "confidence": {
    "wages_box1": 0.99,
    "employer_ein": 0.97,
    "federal_tax_withheld_box2": 0.98
  },
  "validation": {
    "valid": true,
    "errors": [],
    "low_confidence_fields": []
  },
  "meta": {
    "processing_time_ms": 1050,
    "page_count": 1,
    "credits_used": 1,
    "ocr_cached": false,
    "model": "anthropic/claude-sonnet-4"
  }
}

How it works

1

Build a schema per form type

W-2, 1099, and 1040 each get their own schema.

2

Send clients a branded portal link

Or accept uploads directly via the API.

3

Inspect the structured response

Review the data, confidence map, validation errors, and low-confidence fields.

4

Import after review

Resolve review results before mapping the direct API response into tax software; upload-site submissions can also use a configured webhook.

Tax Prep FAQ

Does this replace my tax prep software?+
No — Dokyumi handles document intake and data extraction only. It feeds structured data into whatever tax software you already use; it doesn't calculate returns.
Can clients upload documents themselves?+
Yes, via a white-label portal branded to your firm — no client needs a Dokyumi account.
What if a client only needs W-2 or 1099 parsing, not a custom schema?+
Our single-document sibling tools (w2extractor.com, 1099parser.com, 1040parser.com) are purpose-built for exactly one form type at a lower price point — see /which-tool.
How does Dokyumi handle SSNs and other sensitive fields on tax forms?+
You control your schema, so you decide which fields to capture. See /security for how we handle encryption, retention, and access.
Can one schema handle every 1099 variant (NEC, MISC, INT, DIV)?+
Each variant has different boxes, so for best accuracy we recommend a schema per 1099 variant you process regularly, or a broader schema if you only need a few common fields shared across variants.

Stop re-keying w-2 by hand.

25 free credits every month — one credit covers a document up to 5 pages, with no credit card or AWS account required.