---
title: "(Deprecated) Retrieve information from the tax documents used for income verification"
method: POST
path: "/income/verification/taxforms/get"
tags: ["plaid"]
deprecated: true
---

# (Deprecated) Retrieve information from the tax documents used for income verification

`POST /income/verification/taxforms/get`

> **Deprecated.**

`/income/verification/taxforms/get` returns the information collected from forms that were used to verify an end user''s income. It can be called once the status of the verification has been set to `VERIFICATION_STATUS_PROCESSING_COMPLETE`, as reported by the `INCOME: verification_status` webhook. Attempting to call the endpoint before verification has been completed will result in an error.

This endpoint has been deprecated; new integrations should use `/credit/payroll_income/get` instead.

## Request body

- IncomeVerificationTaxformsGetRequest — IncomeVerificationTaxformsGetRequest defines the request schema for `/income/verification/taxforms/get`
  - `client_id` string — Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
  - `secret` string — Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
  - `income_verification_id` string, nullable — The ID of the verification.
  - `access_token` string, nullable — The access token associated with the Item for which data is being requested.

## Response `200`

OK

- IncomeVerificationTaxformsGetResponse — IncomeVerificationTaxformsGetResponse defines the response schema for `/income/verification/taxforms/get`
  - `request_id` string — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
  - `document_metadata` DocumentMetadata[], required
    - `name` string — The name of the document.
    - `status` string, nullable — The processing status of the document. `PROCESSING_COMPLETE`: The document was successfully processed. `DOCUMENT_ERROR`: The document could not be processed. Possible causes include: The document was an unacceptable document type such as an offer letter or bank statement, the document image was cropped or blurry, or the document was corrupted. `UNKNOWN` or `null`: An internal error occurred. If this happens repeatedly, contact support or your Plaid account manager.
    - `doc_id` string — An identifier of the document that is also present in the paystub response.
    - `doc_type` 'UNKNOWN' | 'DOCUMENT_TYPE_PAYSTUB' | 'DOCUMENT_TYPE_BANK_STATEMENT' | 'DOCUMENT_TYPE_US_TAX_W2' | 'DOCUMENT_TYPE_US_MILITARY_ERAS' | 'DOCUMENT_TYPE_US_MILITARY_LES' | 'DOCUMENT_TYPE_US_MILITARY_CLES' | 'DOCUMENT_TYPE_GIG' | 'DOCUMENT_TYPE_NONE' | 'DOCUMENT_TYPE_US_TAX_1099_MISC' | 'DOCUMENT_TYPE_US_TAX_1099_K' | 'DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF' | 'DOCUMENT_TYPE_US_STUDENT_I20' — The type of document. `DOCUMENT_TYPE_PAYSTUB`: A paystub. `DOCUMENT_TYPE_BANK_STATEMENT`: A bank statement. `DOCUMENT_TYPE_US_TAX_W2`: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee. `DOCUMENT_TYPE_US_MILITARY_ERAS`: An electronic Retirement Account Statement (eRAS) issued by the US military. `DOCUMENT_TYPE_US_MILITARY_LES`: A Leave and Earnings Statement (LES) issued by the US military. `DOCUMENT_TYPE_US_MILITARY_CLES`: A Civilian Leave and Earnings Statement (CLES) issued by the US military. `DOCUMENT_TYPE_GIG`: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type. `DOCUMENT_TYPE_NONE`: Used to indicate that there is no underlying document for the data. `DOCUMENT_TYPE_US_TAX_1099_MISC`: A Form 1099-MISC information return reporting miscellaneous income. `DOCUMENT_TYPE_US_TAX_1099_K`: A Form 1099-K information return reporting payment card and third-party network transactions. `DOCUMENT_TYPE_PLAID_GENERATED_PAYSTUB_PDF`: Used to indicate that the PDF for the paystub was generated by Plaid. `DOCUMENT_TYPE_US_STUDENT_I20`: A Form I-20 Certificate of Eligibility for Nonimmigrant Student Status. `UNKNOWN`: Document type could not be determined.
  - `taxforms` Taxform[], required — A list of forms.
    - `doc_id` string — An identifier of the document referenced by the document metadata.
    - `document_type` string, required — The type of tax document. Currently, the only supported value is `w2`.
    - `w2` W2 — W2 is an object that represents income data taken from a W2 tax document.
      - `employer` PaystubEmployer — Information about the employer on the paystub
        - `address` PaystubAddress — Address on the paystub
          - `city` string, nullable — The full city name.
          - `country` string, nullable — The ISO 3166-1 alpha-2 country code.
          - `postal_code` string, nullable — The postal code of the address.
          - `region` string, nullable — The region or state Example: `"NC"`
          - `street` string, nullable — The full street address.
          - `line1` string, nullable — Street address line 1.
          - `line2` string, nullable — Street address line 2.
          - `state_code` string, nullable — The region or state Example: `"NC"`
        - `name` string, nullable, required — The name of the employer on the paystub.
      - `employee` Employee — Data about the employee.
        - `address` PaystubAddress, required — Address on the paystub
          - `city` string, nullable — The full city name.
          - `country` string, nullable — The ISO 3166-1 alpha-2 country code.
          - `postal_code` string, nullable — The postal code of the address.
          - `region` string, nullable — The region or state Example: `"NC"`
          - `street` string, nullable — The full street address.
          - `line1` string, nullable — Street address line 1.
          - `line2` string, nullable — Street address line 2.
          - `state_code` string, nullable — The region or state Example: `"NC"`
        - `name` string, nullable, required — The name of the employee.
        - `marital_status` string, nullable — Marital status of the employee - either `single` or `married`.
        - `taxpayer_id` TaxpayerID — Taxpayer ID of the individual receiving the paystub.
          - `id_type` string, nullable — Type of ID, e.g. 'SSN'
          - `id_mask` string, nullable — ID mask; i.e. last 4 digits of the taxpayer ID
          - `last_4_digits` string, nullable — Last 4 digits of unique number of ID.
      - `tax_year` string, nullable — The tax year of the W2 document.
      - `employer_id_number` string, nullable — An employer identification number or EIN.
      - `wages_tips_other_comp` string, nullable — Wages from tips and other compensation.
      - `federal_income_tax_withheld` string, nullable — Federal income tax withheld for the tax year.
      - `social_security_wages` string, nullable — Wages from Social Security.
      - `social_security_tax_withheld` string, nullable — Social Security tax withheld for the tax year.
      - `medicare_wages_and_tips` string, nullable — Wages and tips from medicare.
      - `medicare_tax_withheld` string, nullable — Medicare tax withheld for the tax year.
      - `social_security_tips` string, nullable — Tips from Social Security.
      - `allocated_tips` string, nullable — Allocated tips.
      - `box_9` string, nullable — Contents from box 9 on the W2.
      - `dependent_care_benefits` string, nullable — Dependent care benefits.
      - `nonqualified_plans` string, nullable — Nonqualified plans.
      - `box_12` W2Box12[]
        - `code` string, nullable — W2 Box 12 code.
        - `amount` string, nullable — W2 Box 12 amount.
      - `statutory_employee` string, nullable — Statutory employee.
      - `retirement_plan` string, nullable — Retirement plan.
      - `third_party_sick_pay` string, nullable — Third party sick pay.
      - `other` string, nullable — Other.
      - `state_and_local_wages` W2StateAndLocalWages[]
        - `state` string, nullable — State associated with the wage.
        - `employer_state_id_number` string, nullable — State identification number of the employer.
        - `state_wages_tips` string, nullable — Wages and tips from the specified state.
        - `state_income_tax` string, nullable — Income tax from the specified state.
        - `local_wages_tips` string, nullable — Wages and tips from the locality.
        - `local_income_tax` string, nullable — Income tax from the locality.
        - `locality_name` string, nullable — Name of the locality.
  - `error` PlaidError, nullable — Errors are identified by `error_code` and categorized by `error_type`. Use these in preference to HTTP status codes to identify and handle specific errors. HTTP status codes are set and provide the broadest categorization of errors: 4xx codes are for developer- or user-related errors, and 5xx codes are for Plaid-related errors, and the status will be 2xx in non-error cases. An Item with a non-`null` error object will only be part of an API response when calling `/item/get` to view Item status. Otherwise, error fields will be `null` if no error has occurred; if an error has occurred, an error code will be returned instead.
    - `error_type` 'INVALID_REQUEST' | 'INVALID_RESULT' | 'INVALID_INPUT' | 'INSTITUTION_ERROR' | 'RATE_LIMIT_EXCEEDED' | 'API_ERROR' | 'ITEM_ERROR' | 'ASSET_REPORT_ERROR' | 'BASE_REPORT_ERROR' | 'RECAPTCHA_ERROR' | 'OAUTH_ERROR' | 'PAYMENT_ERROR' | 'BANK_TRANSFER_ERROR' | 'INCOME_VERIFICATION_ERROR' | 'MICRODEPOSITS_ERROR' | 'SANDBOX_ERROR' | 'PARTNER_ERROR' | 'SIGNAL_ERROR' | 'TRANSACTIONS_ERROR' | 'TRANSACTION_ERROR' | 'TRANSFER_ERROR' | 'CHECK_REPORT_ERROR' | 'CONSUMER_REPORT_ERROR' | 'USER_ERROR' | 'IDEMPOTENCY_ERROR' | 'ASSETS_ERROR' | 'CRA_MONITORING_ERROR' | 'CREDIT_PROFILE_REPORT_ERROR' | 'ENCOMPASS_ERROR' | 'ENRICH_ERROR' | 'FRAUD_INSIGHTS_ERROR' | 'FREDDIE_MAC_ERROR' | 'LINK_DELIVERY_ERROR' | 'PROFILE_ERROR' | 'RECURRING_TRANSACTIONS_ERROR' | 'STATEMENTS_ERROR' | 'TRANSFER_RECURRING_ERROR' | 'TRANSFER_REFUND_ERROR', required — A broad categorization of the error. Safe for programmatic use.
    - `error_code` string, required — The particular error code. Safe for programmatic use.
    - `error_code_reason` string, nullable — The specific reason for the error code. Currently, reasons are only supported for OAuth-based item errors; `null` will be returned otherwise. Safe for programmatic use. Possible values: `OAUTH_INVALID_TOKEN`: The user's OAuth connection to this institution has been invalidated. `OAUTH_CONSENT_EXPIRED`: The user's access consent for this OAuth connection to this institution has expired. `OAUTH_USER_REVOKED`: The user's OAuth connection to this institution is invalid because the user revoked their connection.
    - `error_message` string, required — A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
    - `display_message` string, nullable, required — A user-friendly representation of the error code. `null` if the error is not related to user action. This may change over time and is not safe for programmatic use.
    - `request_id` string — A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
    - `causes` unknown[] — In this product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified. `causes` will be provided for the `error_type` `ASSET_REPORT_ERROR` or `CHECK_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
      - unknown
    - `status` integer, nullable — The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.
    - `documentation_url` string — The URL of a Plaid documentation page with more information about the error
    - `suggested_action` string, nullable — Suggested steps for resolving the error
    - `required_account_subtypes` string[] — A list of the account subtypes that were requested via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.
    - `provided_account_subtypes` string[] — A list of the account subtypes that were extracted but did not match the requested subtypes via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.

## Other responses

- `default` — Error response.

---

[API](https://skmtc.net/plaid/apis/the-plaid-api.md) · [All operations](https://skmtc.net/plaid/apis/the-plaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/plaid/the-plaid-api/versions/64c4514ea59b/schema)
