Skip to main content

Attributes

The table below has the values for Tax Document fields.

Endpoint

The link below is the reference for the available Tax Document endpoint. Listing returns an array without fields:
Retrieving a single document adds fields:

Where the data comes from

Tax documents reach Truv three ways, and each one extracts a different amount of the form. The link’s data_source tells you which path produced a document, so read it before you read fields.
Treat every key as optional and branch on data_source. Each section below lists what that source returns.

Reading fields

These rules hold for every document type and every source.
  • Keys mirror the boxes and lines of the IRS form.
  • Monetary amounts are decimal strings.
  • Blank boxes are omitted. A key is present with a zero value only when the form itself shows a zero.
  • Checkboxes are returned as the string "yes" when checked, and omitted when unchecked.
  • Names, SSNs, and employer details are not in fields, except a 1099 recipient’s business name in recipient_business_name. They populate the profile and company objects on the income report.
  • The w2s array on an income report is a summary: wages, federal_tax, social_security_wages, social_security_tax, medicare_wages, medicare_tax, and gross_pay. Retrieve the tax document itself for everything below.

W-2 from uploaded documents

data_source: docs, document_type: W2. Truv reads the whole form, including Box 12 codes, Box 13 checkboxes, and multi-state data.

Wage and tax boxes

Box 12 codes

Each of the four Box 12 slots returns a letter code and an amount.

Box 13 checkboxes

State and local boxes

An uploaded W-2 carries up to two states, and up to two localities per state. Each field is returned under a key with no suffix and under an indexed key:
  • The key with no suffix is always the first row. state holds the same value as state_1, and locality_name holds the same value as locality_name_1_1.
  • State keys are indexed _1 for the first state and _2 for the second.
  • Locality keys are indexed _{state}_{locality}, so _1_2 is the second locality of the first state and _2_1 is the first locality of the second state.
  • A second state or locality has no form without a suffix. It appears only as _2, _1_2, _2_1, or _2_2.

State keys (Boxes 15–17)

Locality keys (Boxes 18–20)

Example

A W-2 with one state and one locality.

W-2 from a payroll connection

data_source: payroll, document_type: W2. Truv reads the numbered wage boxes from the W-2 the provider supplies. Upload the document for the full form.

1099 from uploaded documents

data_source: docs, document_type: F1099. 1099s reach Truv only through document upload. Every variant returns the same flat set of keys under fields. Only the boxes that exist on that variant and carry a value are present.
The keys below are returned for 1099s uploaded on or after November 1, 2026.

Form variant

document_subtype comes from the form’s own masthead, not from the subtype selected at upload. It is null for a 1099 variant outside the list below, such as 1099-SA or 1099-OID. When the masthead cannot be read, the subtype selected at upload is kept. A consolidated brokerage statement that combines 1099-DIV, 1099-INT, and 1099-B sections is stored as one tax document with fields from every section and a single document_subtype. Inspect the keys present in fields rather than treating document_subtype as a complete list of the variants on the form.

Fields on every variant

Income boxes by variant

State boxes

A 1099 carries up to two state rows. They follow the same scheme as the W-2 state keys: the key with no suffix repeats the first row, _1 is the first state, and _2 is the second state, which has no form without a suffix.

Recipient and payer

The recipient’s personal name, TIN, and address are not in fields. They populate the profile on the income report, as for other tax documents. A business name printed in the recipient box, whether on its own or as a person’s DBA, is returned in recipient_business_name. A 1099 is linked to an employment when the form names both a recipient person and a payer. The payer’s name, TIN, and address become that employment’s company. When either is missing, the 1099 is stored without an employment, and its fields are available only from Retrieve a tax document.

Example

A 1099-NEC with one state row. The number of decimal places in an amount varies, so parse amounts as numbers rather than comparing strings: a whole-dollar amount can arrive as "0.0" or "0.00".

1040 from uploaded documents

data_source: docs, document_type: F1040. A 1040 is read as a package: the main form plus any attached Schedule 1, Schedule C, Form 4562, and Form 4684. Each attachment type is an array under fields, because a return can carry several of them.
A 1040 that arrives through a tax software connection (data_source: tax) is stored as a file with fields: null. Line-level extraction requires the document upload path.
Each Schedule C becomes an employment. Truv creates one employment per Schedule C business on the return: company name from Line C, EIN from Line D, address from Line E, job_title from Line A, and start_date from Line H. Sole proprietors who leave Line C blank get the taxpayer’s own name as the company name. The 1040 document is linked to each of those employments, so self-employed income appears in the income report next to payroll-sourced employments. A return with no Schedule C is stored without an employment.
On a joint return, Truv matches the applicant to the primary filer or the spouse — by SSN first, then by name — and returns only that taxpayer’s schedules. A schedule that carries no owner information is treated as shared and included.

Form 1040 fields

Attached schedules and forms

Objects in these arrays may also carry pages — the page range the form occupies in the uploaded file, for example "3-4".

Example

A return with one Schedule C business, trimmed to a few lines per form.