Plaid logo
Docs
ALL DOCS

API

  • Overview
  • Libraries
  • API versioning
  • Postman Collection
  • Webhooks
Payments and Funding
  • Auth
  • Balance
  • Identity
  • Signal
  • Transfer
  • Investments Move
  • Payment Initiation
  • Virtual Accounts
Financial Insights
  • Transactions
  • Investments
  • Liabilities
  • Enrich
KYC/AML and anti-fraud
  • Look up Dashboard users
  • Identity Verification
  • Protect
  • Monitor
  • Beacon (beta)
Instant Onboarding
  • Layer
Credit and Underwriting
  • Consumer Report (by Plaid Check)
  • Assets
  • Statements
  • Income
Fundamentals
  • Items
  • Accounts
  • Institutions
  • Sandbox
  • Link
  • Users
  • Consent
  • Network
  • OAuth
Partnerships
  • Processor tokens
  • Processor partners
  • Reseller partners
Plaid logo
Docs
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
    Plaid.com
    Log in
    Get API Keys
    Open nav

    Income

    API reference for Income endpoints and webhooks

    Verify a user's income via payroll or bank account data. For how-to guidance, see the Income documentation.

    Endpoints
    /credit/sessions/getGet Link session metadata and results for the end user
    /credit/bank_income/getRetrieve information from the bank accounts used for income verification
    /credit/bank_income/pdf/getRetrieve information from the bank accounts used for income verification in PDF format
    /credit/bank_income/refreshRefresh a user's bank income information
    /credit/bank_statements/uploads/getRetrieve information from the bank statements used for income verification
    /credit/payroll_income/getRetrieve information from the pay stubs or tax forms used for income verification
    /credit/payroll_income/risk_signals/getAnalyze uploaded income documents for indications of potential fraud
    /credit/payroll_income/parsing_config/updateUpdate the parsing configuration for a document verification
    /credit/employment/get(Beta) Retrieve employment information about the end user
    /credit/payroll_income/refresh(Beta) Retrieve updated payroll income data on a linked account
    See also
    /sandbox/income/fire_webhookManually fire an Income webhook (Sandbox only)
    /user/createCreate a user for use with the income verification product
    Webhooks
    INCOME_VERIFICATIONIncome verification has completed
    INCOME_VERIFICATION_RISK_SIGNALSRisk evaluation of user-uploaded documents has completed
    BANK_INCOME_REFRESH_COMPLETEThe refreshed report has finished generating
    INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDEDA Payroll Income verification could not be refreshed

    Endpoints

    =*=*=*=

    /user/create

    Create user

    This endpoint should be called for each of your end users before they begin a Plaid Check or Income flow, or a Multi-Item Link flow. This provides you a single token to access all data associated with the user. You should only create one per end user.
    The consumer_report_user_identity object must be present in order to create a Plaid Check Consumer Report for a user. If it is not provided during the /user/create call, it can be added later by calling /user/update. Plaid Check Consumer Reports can only be created for US-based users; the user's address country must be US.
    If you call the endpoint multiple times with the same client_user_id, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given client_user_id.
    Ensure that you store the user_token along with your user's identifier in your database, as it is not possible to retrieve a previously created user_token.

    user/create

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    client_user_id
    requiredstringrequired, string
    A unique ID representing the end user. Maximum of 128 characters. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.

    Max length: 128
    Min length: 1
    consumer_report_user_identity
    objectobject
    To create a Plaid Check Consumer Report for a user, this field must be present on the user token. If this field is not provided during user token creation, you can add it to the user later by calling /user/update. Once the field has been added to the user, you will be able to call /link/token/create with a non-empty consumer_report_permissible_purpose (which will automatically create a Plaid Check Consumer Report), or call /cra/check_report/create for that user.
    first_name
    requiredstringrequired, string
    The user's first name
    last_name
    requiredstringrequired, string
    The user's last name
    phone_numbers
    required[string]required, [string]
    The user's phone number, in E.164 format: +{countrycode}{number}. For example: "+14157452130". Phone numbers provided in other formats will be parsed on a best-effort basis. Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.
    emails
    required[string]required, [string]
    The user's emails
    ssn_last_4
    stringstring
    The last 4 digits of the user's social security number.

    Max length: 4
    Min length: 4
    date_of_birth
    requiredstringrequired, string
    To be provided in the format "yyyy-mm-dd". This field is required for all Plaid Check customers.

    Format: date
    primary_address
    requiredobjectrequired, object
    Data about the components comprising an address.
    city
    requiredstringrequired, string
    The full city name
    region
    requiredstringrequired, string
    The region or state. In API versions 2018-05-22 and earlier, this field is called state. Example: "NC"
    street
    requiredstringrequired, string
    The full street address Example: "564 Main Street, APT 15"
    postal_code
    requiredstringrequired, string
    The postal code. In API versions 2018-05-22 and earlier, this field is called zip.
    country
    requiredstringrequired, string
    The ISO 3166-1 alpha-2 country code
    Select Language
    1const request: UserCreateRequest = {
    2 client_user_id: 'c0e2c4ee-b763-4af5-cfe9-46a46bce883d',
    3};
    4
    5try {
    6 const response = await client.userCreate(request);
    7} catch (error) {
    8 // handle error
    9}
    user/create

    Response fields and example

    user_token
    stringstring
    The user token associated with the User data is being requested for.
    user_id
    stringstring
    The Plaid user_id of the User associated with this webhook, warning, or error.
    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "user_token": "user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d",
    3 "user_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    4 "request_id": "Aim3b"
    5}
    Was this helpful?
    =*=*=*=

    /credit/sessions/get

    Retrieve Link sessions for your user

    This endpoint can be used for your end users after they complete the Link flow. This endpoint returns a list of Link sessions that your user completed, where each session includes the results from the Link flow.
    These results include details about the Item that was created and some product related metadata (showing, for example, whether the user finished the bank income verification step).

    credit/sessions/get

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    requiredstringrequired, string
    The user token associated with the User data is being requested for.
    Select Language
    1const request: CreditSessionsGetRequest = {
    2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
    3};
    4
    5try {
    6 const response = await client.creditSessionsGet(request);
    7} catch (error) {
    8 // handle error
    9}
    credit/sessions/get

    Response fields and example

    sessions
    [object][object]
    A list of Link sessions for the user. Sessions will be sorted in reverse chronological order.
    link_session_id
    stringstring
    The unique identifier associated with the Link session. This identifier matches the link_session_id returned in the onSuccess/onExit callbacks.
    session_start_time
    stringstring
    The time when the Link session started

    Format: date-time
    results
    objectobject
    The set of results for a Link session.
    item_add_results
    [object][object]
    The set of Item adds for the Link session.
    public_token
    stringstring
    Returned once a user has successfully linked their Item.
    item_id
    stringstring
    The Plaid Item ID. The item_id is always unique; linking the same account at the same institution twice will result in two Items with different item_id values. Like all Plaid identifiers, the item_id is case-sensitive.
    institution_id
    stringstring
    The Plaid Institution ID associated with the Item.
    bank_income_results
    [object][object]
    The set of bank income verifications for the Link session.
    status
    stringstring
    Status of the Bank Income Link session.
    APPROVED: User has approved and verified their income
    NO_DEPOSITS_FOUND: We attempted, but were unable to find any income in the connected account.
    USER_REPORTED_NO_INCOME: The user explicitly indicated that they don't receive income in the connected account.
    STARTED: The user began the bank income portion of the link flow.
    INTERNAL_ERROR: The user encountered an internal error.


    Possible values: APPROVED, NO_DEPOSITS_FOUND, USER_REPORTED_NO_INCOME
    item_id
    stringstring
    The Plaid Item ID. The item_id is always unique; linking the same account at the same institution twice will result in two Items with different item_id values. Like all Plaid identifiers, the item_id is case-sensitive.
    institution_id
    stringstring
    The Plaid Institution ID associated with the Item.
    bank_employment_results
    [object][object]
    The set of bank employment verifications for the Link session.
    status
    stringstring
    Status of the Bank Employment Link session.
    APPROVED: User has approved and verified their employment.
    NO_EMPLOYMENTS_FOUND: We attempted, but were unable to find any employment in the connected account.
    EMPLOYER_NOT_LISTED: The user explicitly indicated that they did not see their current or previous employer in the list of employer names found.
    STARTED: The user began the bank income portion of the link flow.
    INTERNAL_ERROR: The user encountered an internal error.


    Possible values: APPROVED, NO_EMPLOYERS_FOUND, EMPLOYER_NOT_LISTED
    item_id
    stringstring
    The Plaid Item ID. The item_id is always unique; linking the same account at the same institution twice will result in two Items with different item_id values. Like all Plaid identifiers, the item_id is case-sensitive.
    institution_id
    stringstring
    The Plaid Institution ID associated with the Item.
    payroll_income_results
    [object][object]
    The set of payroll income verifications for the Link session.
    num_paystubs_retrieved
    integerinteger
    The number of paystubs retrieved from a payroll provider.
    num_w2s_retrieved
    integerinteger
    The number of w2s retrieved from a payroll provider.
    institution_id
    stringstring
    The Plaid Institution ID associated with the Item.
    institution_name
    stringstring
    The Institution Name associated with the Item.
    document_income_results
    nullableobjectnullable, object
    The details of a document income verification in Link
    num_paystubs_uploaded
    integerinteger
    The number of paystubs uploaded by the user.
    num_w2s_uploaded
    integerinteger
    The number of w2s uploaded by the user.
    num_bank_statements_uploaded
    integerinteger
    The number of bank statements uploaded by the user.
    num_1099s_uploaded
    integerinteger
    The number of 1099s uploaded by the user
    errors
    [object][object]
    The set of errors that occurred during the Link session.
    error_type
    stringstring
    A broad categorization of the error.
    error_code
    stringstring
    The particular error code.
    error_message
    stringstring
    A developer-friendly representation of the error code.
    display_message
    nullablestringnullable, string
    A user-friendly representation of the error code. null if the error is not related to user action.
    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "Aim3b",
    3 "sessions": [
    4 {
    5 "link_session_id": "356dbb28-7f98-44d1-8e6d-0cec580f3171",
    6 "results": {
    7 "item_add_results": [
    8 {
    9 "public_token": "public-sandbox-5c224a01-8314-4491-a06f-39e193d5cddc",
    10 "item_id": "M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op",
    11 "institution_id": "ins_56"
    12 }
    13 ],
    14 "bank_income_results": [
    15 {
    16 "status": "APPROVED",
    17 "item_id": "M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op",
    18 "institution_id": "ins_56"
    19 }
    20 ]
    21 },
    22 "session_start_time": "2022-09-30T23:40:30.946225Z"
    23 },
    24 {
    25 "link_session_id": "f742cae8-31e4-49cc-a621-6cafbdb26fb9",
    26 "results": {
    27 "payroll_income_results": [
    28 {
    29 "num_paystubs_retrieved": 2,
    30 "num_w2s_retrieved": 1,
    31 "institution_id": "ins_92"
    32 }
    33 ]
    34 },
    35 "session_start_time": "2022-09-26T23:40:30.946225Z"
    36 }
    37 ]
    38}
    Was this helpful?
    =*=*=*=

    /credit/bank_income/get

    Retrieve information from the bank accounts used for income verification

    /credit/bank_income/get returns the bank income report(s) for a specified user. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use Multi-Item Link. To return older reports, use the options.count field.

    credit/bank_income/get

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    stringstring
    The user token associated with the User data is being requested for.
    options
    objectobject
    An optional object for /credit/bank_income/get request options.
    count
    integerinteger
    How many Bank Income Reports should be fetched. Multiple reports may be available if the report has been re-created or refreshed. If more than one report is available, the most recent reports will be returned first.

    Default: 1
    Select Language
    1const request: CreditBankIncomeGetRequest = {
    2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
    3 options: {
    4 count: 1,
    5 },
    6};
    7
    8try {
    9 const response = await client.creditBankIncomeGet(request);
    10} catch (error) {
    11 // handle error
    12}
    credit/bank_income/get

    Response fields and example

    bank_income
    [object][object]
    bank_income_id
    stringstring
    The unique identifier associated with the Bank Income Report.
    generated_time
    stringstring
    The time when the report was generated.

    Format: date-time
    days_requested
    integerinteger
    The number of days requested by the customer for the report.
    items
    [object][object]
    The list of Items in the report along with the associated metadata about the Item.
    bank_income_accounts
    [object][object]
    The Item's accounts that have Bank Income data.
    account_id
    stringstring
    Plaid's unique identifier for the account.
    mask
    nullablestringnullable, string
    The last 2-4 alphanumeric characters of an account's official account number. Note that the mask may be non-unique between an Item's accounts, and it may also not match the mask that the bank displays to the user.
    name
    stringstring
    The name of the bank account.
    official_name
    nullablestringnullable, string
    The official name of the bank account.
    subtype
    stringstring
    Valid account subtypes for depository accounts. For a list containing descriptions of each subtype, see Account schemas.

    Possible values: checking, savings, hsa, cd, money market, paypal, prepaid, cash management, ebt, all
    type
    stringstring
    The account type. This will always be depository.

    Possible values: depository
    owners
    [object][object]
    Data returned by the financial institution about the account owner or owners. Identity information is optional, so field may return an empty array.
    names
    [string][string]
    A list of names associated with the account by the financial institution. In the case of a joint account, Plaid will make a best effort to report the names of all account holders.
    If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account's names array.
    phone_numbers
    [object][object]
    A list of phone numbers associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
    data
    stringstring
    The phone number.
    primary
    booleanboolean
    When true, identifies the phone number as the primary number on an account.
    type
    stringstring
    The type of phone number.

    Possible values: home, work, office, mobile, mobile1, other
    emails
    [object][object]
    A list of email addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
    data
    stringstring
    The email address.
    primary
    booleanboolean
    When true, identifies the email address as the primary email on an account.
    type
    stringstring
    The type of email account as described by the financial institution.

    Possible values: primary, secondary, other
    addresses
    [object][object]
    Data about the various addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
    data
    objectobject
    Data about the components comprising an address.
    city
    nullablestringnullable, string
    The full city name
    region
    nullablestringnullable, string
    The region or state. In API versions 2018-05-22 and earlier, this field is called state. Example: "NC"
    street
    stringstring
    The full street address Example: "564 Main Street, APT 15"
    postal_code
    nullablestringnullable, string
    The postal code. In API versions 2018-05-22 and earlier, this field is called zip.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code
    primary
    booleanboolean
    When true, identifies the address as the primary address on an account.
    bank_income_sources
    [object][object]
    The income sources for this Item. Each entry in the array is a single income source.
    income_source_id
    stringstring
    A unique identifier for an income source.
    income_description
    stringstring
    The most common name or original description for the underlying income transactions.
    income_category
    stringstring
    The income category. BANK_INTEREST: Interest earned from a bank account. BENEFIT_OTHER: Government benefits other than retirement, unemployment, child support, or disability. Currently used only in the UK, to represent benefits such as Cost of Living Payments. CASH: Deprecated and used only for existing legacy implementations. Has been replaced by CASH_DEPOSIT and TRANSFER_FROM_APPLICATION. CASH_DEPOSIT: A cash or check deposit. CHILD_SUPPORT: Child support payments received. GIG_ECONOMY: Income earned as a gig economy worker, e.g. driving for Uber, Lyft, Postmates, DoorDash, etc. LONG_TERM_DISABILITY: Disability payments, including Social Security disability benefits. OTHER: Income that could not be categorized as any other income category. MILITARY: Veterans benefits. Income earned as salary for serving in the military (e.g. through DFAS) will be classified as SALARY rather than MILITARY. RENTAL: Income earned from a rental property. Income may be identified as rental when the payment is received through a rental platform, e.g. Airbnb; rent paid directly by the tenant to the property owner (e.g. via cash, check, or ACH) will typically not be classified as rental income. RETIREMENT: Payments from private retirement systems, pensions, and government retirement programs, including Social Security retirement benefits. SALARY: Payment from an employer to an earner or other form of permanent employment. TAX_REFUND: A tax refund. TRANSFER_FROM_APPLICATION: Deposits from a money transfer app, such as Venmo, Cash App, or Zelle. UNEMPLOYMENT: Unemployment benefits. In the UK, includes certain low-income benefits such as the Universal Credit.

    Possible values: SALARY, UNEMPLOYMENT, CASH, GIG_ECONOMY, RENTAL, CHILD_SUPPORT, MILITARY, RETIREMENT, LONG_TERM_DISABILITY, BANK_INTEREST, CASH_DEPOSIT, TRANSFER_FROM_APPLICATION, TAX_REFUND, BENEFIT_OTHER, OTHER
    account_id
    stringstring
    Plaid's unique identifier for the account.
    start_date
    stringstring
    Minimum of all dates within the specific income sources in the user's bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    end_date
    stringstring
    Maximum of all dates within the specific income sources in the user’s bank account for days requested by the client. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    pay_frequency
    stringstring
    The income pay frequency.

    Possible values: WEEKLY, BIWEEKLY, SEMI_MONTHLY, MONTHLY, DAILY, UNKNOWN
    total_amount
    numbernumber
    Total amount of earnings in the user’s bank account for the specific income source for days requested by the client.
    transaction_count
    integerinteger
    Number of transactions for the income source within the start and end date.
    historical_summary
    [object][object]
    total_amount
    deprecatednumberdeprecated, number
    Total amount of earnings for the income source(s) of the user for the month in the summary. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use total_amounts instead.
    iso_currency_code
    deprecatednullablestringdeprecated, nullable, string
    The ISO 4217 currency code of the amount or balance. Please use total_amounts instead.
    unofficial_currency_code
    deprecatednullablestringdeprecated, nullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. Please use total_amounts instead.
    total_amounts
    [object][object]
    Total amount of earnings for the income source(s) of the user for the month in the summary. This can contain multiple amounts, with each amount denominated in one unique currency.
    amount
    numbernumber
    Value of amount with up to 2 decimal places.
    iso_currency_code
    nullablestringnullable, string
    The ISO 4217 currency code of the amount or balance.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    start_date
    stringstring
    The start date of the period covered in this monthly summary. This date will be the first day of the month, unless the month being covered is a partial month because it is the first month included in the summary and the date range being requested does not begin with the first day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    end_date
    stringstring
    The end date of the period included in this monthly summary. This date will be the last day of the month, unless the month being covered is a partial month because it is the last month included in the summary and the date range being requested does not end with the last day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    transactions
    [object][object]
    amount
    numbernumber
    The settled value of the transaction, denominated in the transactions's currency as stated in iso_currency_code or unofficial_currency_code. Positive values when money moves out of the account; negative values when money moves in. For example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.
    date
    stringstring
    For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    name
    stringstring
    The merchant name or transaction description.
    original_description
    nullablestringnullable, string
    The string returned by the financial institution to describe the transaction.
    pending
    booleanboolean
    When true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
    transaction_id
    stringstring
    The unique ID of the transaction. Like all Plaid identifiers, the transaction_id is case sensitive.
    check_number
    nullablestringnullable, string
    The check number of the transaction. This field is only populated for check transactions.
    iso_currency_code
    nullablestringnullable, string
    The ISO 4217 currency code of the amount or balance.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    last_updated_time
    stringstring
    The time when this Item's data was last retrieved from the financial institution.

    Format: date-time
    institution_id
    stringstring
    The unique identifier of the institution associated with the Item.
    institution_name
    stringstring
    The name of the institution associated with the Item.
    item_id
    stringstring
    The unique identifier for the Item.
    bank_income_summary
    objectobject
    Summary for bank income across all income sources and items (max history of 730 days).
    total_amount
    deprecatednumberdeprecated, number
    Total amount of earnings across all the income sources in the end user's Items for the days requested by the client. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use total_amounts instead.
    iso_currency_code
    deprecatednullablestringdeprecated, nullable, string
    The ISO 4217 currency code of the amount or balance. Please use total_amounts instead.
    unofficial_currency_code
    deprecatednullablestringdeprecated, nullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. Please use total_amounts instead.
    total_amounts
    [object][object]
    Total amount of earnings across all the income sources in the end user's Items for the days requested by the client. This can contain multiple amounts, with each amount denominated in one unique currency.
    amount
    numbernumber
    Value of amount with up to 2 decimal places.
    iso_currency_code
    nullablestringnullable, string
    The ISO 4217 currency code of the amount or balance.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    start_date
    stringstring
    The earliest date within the days requested in which all income sources identified by Plaid appear in a user's account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    end_date
    stringstring
    The latest date in which all income sources identified by Plaid appear in the user's account. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    income_sources_count
    integerinteger
    Number of income sources per end user.
    income_categories_count
    integerinteger
    Number of income categories per end user.
    income_transactions_count
    integerinteger
    Number of income transactions per end user.
    historical_summary
    [object][object]
    total_amount
    deprecatednumberdeprecated, number
    Total amount of earnings for the income source(s) of the user for the month in the summary. This may return an incorrect value if the summary includes income sources in multiple currencies. Please use total_amounts instead.
    iso_currency_code
    deprecatednullablestringdeprecated, nullable, string
    The ISO 4217 currency code of the amount or balance. Please use total_amounts instead.
    unofficial_currency_code
    deprecatednullablestringdeprecated, nullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries. Please use total_amounts instead.
    total_amounts
    [object][object]
    Total amount of earnings for the income source(s) of the user for the month in the summary. This can contain multiple amounts, with each amount denominated in one unique currency.
    amount
    numbernumber
    Value of amount with up to 2 decimal places.
    iso_currency_code
    nullablestringnullable, string
    The ISO 4217 currency code of the amount or balance.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    start_date
    stringstring
    The start date of the period covered in this monthly summary. This date will be the first day of the month, unless the month being covered is a partial month because it is the first month included in the summary and the date range being requested does not begin with the first day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    end_date
    stringstring
    The end date of the period included in this monthly summary. This date will be the last day of the month, unless the month being covered is a partial month because it is the last month included in the summary and the date range being requested does not end with the last day of the month. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    transactions
    [object][object]
    amount
    numbernumber
    The settled value of the transaction, denominated in the transactions's currency as stated in iso_currency_code or unofficial_currency_code. Positive values when money moves out of the account; negative values when money moves in. For example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.
    date
    stringstring
    For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    name
    stringstring
    The merchant name or transaction description.
    original_description
    nullablestringnullable, string
    The string returned by the financial institution to describe the transaction.
    pending
    booleanboolean
    When true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.
    transaction_id
    stringstring
    The unique ID of the transaction. Like all Plaid identifiers, the transaction_id is case sensitive.
    check_number
    nullablestringnullable, string
    The check number of the transaction. This field is only populated for check transactions.
    iso_currency_code
    nullablestringnullable, string
    The ISO 4217 currency code of the amount or balance.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the amount or balance. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    warnings
    [object][object]
    If data from the report was unable to be retrieved, the warnings will contain information about the error that caused the data to be incomplete.
    warning_type
    stringstring
    The warning type which will always be BANK_INCOME_WARNING.

    Possible values: BANK_INCOME_WARNING
    warning_code
    stringstring
    The warning code identifies a specific kind of warning. IDENTITY_UNAVAILABLE: Unable to extract identity for the Item TRANSACTIONS_UNAVAILABLE: Unable to extract transactions for the Item ITEM_UNAPPROVED: User exited flow before giving permission to share data for the Item REPORT_DELETED: Report deleted due to customer or consumer request DATA_UNAVAILABLE: No relevant data was found for the Item

    Possible values: IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, ITEM_UNAPPROVED, REPORT_DELETED, DATA_UNAVAILABLE
    cause
    objectobject
    An error object and associated item_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.
    error_type
    stringstring
    A broad categorization of the error. Safe for programmatic use.

    Possible values: INTERNAL_SERVER_ERROR, INSUFFICIENT_CREDENTIALS, ITEM_LOCKED, USER_SETUP_REQUIRED, COUNTRY_NOT_SUPPORTED, INSTITUTION_DOWN, INSTITUTION_NO_LONGER_SUPPORTED, INSTITUTION_NOT_RESPONDING, INVALID_CREDENTIALS, INVALID_MFA, INVALID_SEND_METHOD, ITEM_LOGIN_REQUIRED, MFA_NOT_SUPPORTED, NO_ACCOUNTS, ITEM_NOT_SUPPORTED, ACCESS_NOT_GRANTED
    error_code
    stringstring
    We use standard HTTP response codes for success and failure notifications, and our errors are further classified by error_type. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. Error fields will be null if no error has occurred.
    error_message
    stringstring
    A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
    display_message
    stringstring
    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.
    item_id
    stringstring
    The item_id of the Item associated with this warning.
    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "bank_income": [
    3 {
    4 "bank_income_id": "dacc92a0-cb59-43a5-ba24-1b1c07a03f28",
    5 "bank_income_summary": {
    6 "end_date": "2024-08-21",
    7 "historical_summary": [
    8 {
    9 "end_date": "2024-08-21",
    10 "iso_currency_code": "USD",
    11 "start_date": "2024-08-06",
    12 "total_amount": 4090.14,
    13 "total_amounts": [
    14 {
    15 "amount": 4090.14,
    16 "iso_currency_code": "USD",
    17 "unofficial_currency_code": null
    18 }
    19 ],
    20 "transactions": [
    21 {
    22 "amount": 120.12,
    23 "check_number": null,
    24 "date": "2024-08-07",
    25 "iso_currency_code": "USD",
    26 "name": "TEXAS OAG CHILD SUPPORT",
    27 "original_description": "TEXAS OAG CHILD SUPPORT",
    28 "transaction_id": "EZMmvwREqlSGmlRam7bzFKyBll3kJjU4xKm1w",
    29 "unofficial_currency_code": null
    30 },
    31 {
    32 "amount": 1525,
    33 "check_number": null,
    34 "date": "2024-08-08",
    35 "iso_currency_code": "USD",
    36 "name": "AIRBNB PAYMENTS PPD ID: 1234567890",
    37 "original_description": "AIRBNB PAYMENTS PPD ID: 1234567890",
    38 "transaction_id": "Wr6jzLwg1qs6ag9Xa8BrCpBAPPxnEXF6ZmjDR",
    39 "unofficial_currency_code": null
    40 },
    41 {
    42 "amount": 500,
    43 "check_number": null,
    44 "date": "2024-08-12",
    45 "iso_currency_code": "USD",
    46 "name": "TWC-BENEFITS/UI BENEFIT",
    47 "original_description": "TWC-BENEFITS/UI BENEFIT",
    48 "transaction_id": "Aj7Apx5bDyIA3VRl35yqC18wXXorBgI9rX5dp",
    49 "unofficial_currency_code": null
    50 },
    51 {
    52 "amount": 1000.7,
    53 "check_number": null,
    54 "date": "2024-08-15",
    55 "iso_currency_code": "USD",
    56 "name": "PLAID PAYROLL",
    57 "original_description": "PLAID PAYROLL",
    58 "transaction_id": "G1L9oybBrKSMPmBdPzXoFN8aGGE7gXC6MeoQB",
    59 "unofficial_currency_code": null
    60 },
    61 {
    62 "amount": 824.2,
    63 "check_number": null,
    64 "date": "2024-08-15",
    65 "iso_currency_code": "USD",
    66 "name": "SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890",
    67 "original_description": "SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890",
    68 "transaction_id": "nWLlwMm1qxi8DomvDXP3FaGjXX5bm9TAlyQnk",
    69 "unofficial_currency_code": null
    70 },
    71 {
    72 "amount": 120.12,
    73 "check_number": null,
    74 "date": "2024-08-21",
    75 "iso_currency_code": "USD",
    76 "name": "TEXAS OAG CHILD SUPPORT",
    77 "original_description": "TEXAS OAG CHILD SUPPORT",
    78 "transaction_id": "b7dkg6eQbPFQeRvVeZlxcqxZooa7nWSmb47dj",
    79 "unofficial_currency_code": null
    80 }
    81 ],
    82 "unofficial_currency_code": null
    83 }
    84 ],
    85 "income_categories_count": 5,
    86 "income_sources_count": 5,
    87 "income_transactions_count": 6,
    88 "iso_currency_code": "USD",
    89 "start_date": "2024-08-07",
    90 "total_amount": 4090.14,
    91 "total_amounts": [
    92 {
    93 "amount": 4090.14,
    94 "iso_currency_code": "USD",
    95 "unofficial_currency_code": null
    96 }
    97 ],
    98 "unofficial_currency_code": null
    99 },
    100 "days_requested": 15,
    101 "generated_time": "2024-08-21T18:10:46.293199Z",
    102 "items": [
    103 {
    104 "bank_income_accounts": [
    105 {
    106 "account_id": "G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5",
    107 "mask": "9217",
    108 "name": "Checking",
    109 "official_name": "Plaid checking",
    110 "owners": [
    111 {
    112 "addresses": [],
    113 "emails": [],
    114 "names": [
    115 "Jane Doe"
    116 ],
    117 "phone_numbers": []
    118 }
    119 ],
    120 "subtype": "checking",
    121 "type": "depository"
    122 }
    123 ],
    124 "bank_income_sources": [
    125 {
    126 "account_id": "G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5",
    127 "end_date": "2024-08-15",
    128 "historical_summary": [
    129 {
    130 "end_date": "2024-08-21",
    131 "iso_currency_code": "USD",
    132 "start_date": "2024-08-06",
    133 "total_amount": 1000.7,
    134 "total_amounts": [
    135 {
    136 "amount": 1000.7,
    137 "iso_currency_code": "USD",
    138 "unofficial_currency_code": null
    139 }
    140 ],
    141 "transactions": [
    142 {
    143 "amount": 1000.7,
    144 "check_number": null,
    145 "date": "2024-08-15",
    146 "iso_currency_code": "USD",
    147 "name": "PLAID PAYROLL",
    148 "original_description": "PLAID PAYROLL",
    149 "transaction_id": "G1L9oybBrKSMPmBdPzXoFN8aGGE7gXC6MeoQB",
    150 "unofficial_currency_code": null
    151 }
    152 ],
    153 "unofficial_currency_code": null
    154 }
    155 ],
    156 "income_category": "SALARY",
    157 "income_description": "PLAID PAYROLL",
    158 "income_source_id": "0e9d6fbc-29de-4225-9843-2f71e02a54d1",
    159 "pay_frequency": "UNKNOWN",
    160 "start_date": "2024-08-15",
    161 "total_amount": 1000.7,
    162 "transaction_count": 1
    163 },
    164 {
    165 "account_id": "G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5",
    166 "end_date": "2024-08-15",
    167 "historical_summary": [
    168 {
    169 "end_date": "2024-08-21",
    170 "iso_currency_code": "USD",
    171 "start_date": "2024-08-06",
    172 "total_amount": 824.2,
    173 "total_amounts": [
    174 {
    175 "amount": 824.2,
    176 "iso_currency_code": "USD",
    177 "unofficial_currency_code": null
    178 }
    179 ],
    180 "transactions": [
    181 {
    182 "amount": 824.2,
    183 "check_number": null,
    184 "date": "2024-08-15",
    185 "iso_currency_code": "USD",
    186 "name": "SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890",
    187 "original_description": "SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890",
    188 "transaction_id": "nWLlwMm1qxi8DomvDXP3FaGjXX5bm9TAlyQnk",
    189 "unofficial_currency_code": null
    190 }
    191 ],
    192 "unofficial_currency_code": null
    193 }
    194 ],
    195 "income_category": "LONG_TERM_DISABILITY",
    196 "income_description": "SSI TREAS 310 XXSUPP SEC PPD ID: 1234567890",
    197 "income_source_id": "88bc00d8-2bb1-42d0-a054-db3f20948283",
    198 "pay_frequency": "UNKNOWN",
    199 "start_date": "2024-08-15",
    200 "total_amount": 824.2,
    201 "transaction_count": 1
    202 },
    203 {
    204 "account_id": "G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5",
    205 "end_date": "2024-08-08",
    206 "historical_summary": [
    207 {
    208 "end_date": "2024-08-21",
    209 "iso_currency_code": "USD",
    210 "start_date": "2024-08-06",
    211 "total_amount": 1525,
    212 "total_amounts": [
    213 {
    214 "amount": 1525,
    215 "iso_currency_code": "USD",
    216 "unofficial_currency_code": null
    217 }
    218 ],
    219 "transactions": [
    220 {
    221 "amount": 1525,
    222 "check_number": null,
    223 "date": "2024-08-08",
    224 "iso_currency_code": "USD",
    225 "name": "AIRBNB PAYMENTS PPD ID: 1234567890",
    226 "original_description": "AIRBNB PAYMENTS PPD ID: 1234567890",
    227 "transaction_id": "Wr6jzLwg1qs6ag9Xa8BrCpBAPPxnEXF6ZmjDR",
    228 "unofficial_currency_code": null
    229 }
    230 ],
    231 "unofficial_currency_code": null
    232 }
    233 ],
    234 "income_category": "RENTAL",
    235 "income_description": "AIRBNB PAYMENTS PPD ID: 1234567890",
    236 "income_source_id": "063689af-7299-4327-b71f-9d8849a40c0e",
    237 "pay_frequency": "UNKNOWN",
    238 "start_date": "2024-08-08",
    239 "total_amount": 1525,
    240 "transaction_count": 1
    241 },
    242 {
    243 "account_id": "G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5",
    244 "end_date": "2024-08-12",
    245 "historical_summary": [
    246 {
    247 "end_date": "2024-08-21",
    248 "iso_currency_code": "USD",
    249 "start_date": "2024-08-06",
    250 "total_amount": 500,
    251 "total_amounts": [
    252 {
    253 "amount": 500,
    254 "iso_currency_code": "USD",
    255 "unofficial_currency_code": null
    256 }
    257 ],
    258 "transactions": [
    259 {
    260 "amount": 500,
    261 "check_number": null,
    262 "date": "2024-08-12",
    263 "iso_currency_code": "USD",
    264 "name": "TWC-BENEFITS/UI BENEFIT",
    265 "original_description": "TWC-BENEFITS/UI BENEFIT",
    266 "transaction_id": "Aj7Apx5bDyIA3VRl35yqC18wXXorBgI9rX5dp",
    267 "unofficial_currency_code": null
    268 }
    269 ],
    270 "unofficial_currency_code": null
    271 }
    272 ],
    273 "income_category": "UNEMPLOYMENT",
    274 "income_description": "TWC-BENEFITS/UI BENEFIT",
    275 "income_source_id": "ce160170-49d0-4811-b58e-cb4878d05f83",
    276 "pay_frequency": "UNKNOWN",
    277 "start_date": "2024-08-12",
    278 "total_amount": 500,
    279 "transaction_count": 1
    280 },
    281 {
    282 "account_id": "G1L9oybBrKSMPmBdPzXoFN8oo16rqqC6PwkA5",
    283 "end_date": "2024-08-21",
    284 "historical_summary": [
    285 {
    286 "end_date": "2024-08-21",
    287 "iso_currency_code": "USD",
    288 "start_date": "2024-08-06",
    289 "total_amount": 240.24,
    290 "total_amounts": [
    291 {
    292 "amount": 240.24,
    293 "iso_currency_code": "USD",
    294 "unofficial_currency_code": null
    295 }
    296 ],
    297 "transactions": [
    298 {
    299 "amount": 120.12,
    300 "check_number": null,
    301 "date": "2024-08-07",
    302 "iso_currency_code": "USD",
    303 "name": "TEXAS OAG CHILD SUPPORT",
    304 "original_description": "TEXAS OAG CHILD SUPPORT",
    305 "transaction_id": "EZMmvwREqlSGmlRam7bzFKyBll3kJjU4xKm1w",
    306 "unofficial_currency_code": null
    307 },
    308 {
    309 "amount": 120.12,
    310 "check_number": null,
    311 "date": "2024-08-21",
    312 "iso_currency_code": "USD",
    313 "name": "TEXAS OAG CHILD SUPPORT",
    314 "original_description": "TEXAS OAG CHILD SUPPORT",
    315 "transaction_id": "b7dkg6eQbPFQeRvVeZlxcqxZooa7nWSmb47dj",
    316 "unofficial_currency_code": null
    317 }
    318 ],
    319 "unofficial_currency_code": null
    320 }
    321 ],
    322 "income_category": "CHILD_SUPPORT",
    323 "income_description": "TEXAS OAG CHILD SUPPORT",
    324 "income_source_id": "c8e1576e-9de4-47b4-ad55-3f7b068cc863",
    325 "pay_frequency": "UNKNOWN",
    326 "start_date": "2024-08-07",
    327 "total_amount": 240.24,
    328 "transaction_count": 2
    329 }
    330 ],
    331 "institution_id": "ins_20",
    332 "institution_name": "Citizens Bank",
    333 "item_id": "L8EKo4GydxSKmJQGmXyPuDkeNn4rg9fP3MKLv",
    334 "last_updated_time": "2024-08-21T18:10:47.367335Z"
    335 }
    336 ]
    337 }
    338 ],
    339 "request_id": "MLM1fFu4fbVg7KR"
    340}
    Was this helpful?
    =*=*=*=

    /credit/bank_income/pdf/get

    Retrieve information from the bank accounts used for income verification in PDF format

    /credit/bank_income/pdf/get returns the most recent bank income report for a specified user in PDF format. A single report corresponds to all institutions linked in a single Link session. To include multiple institutions in a single report, use Multi-Item Link.

    credit/bank_income/pdf/get

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    requiredstringrequired, string
    The user token associated with the User data is being requested for.
    Select Language
    1const request: CreditBankIncomePDFGetRequest = {
    2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
    3};
    4
    5try {
    6 const response = await client.creditBankIncomePdfGet(request, {
    7 responseType: 'arraybuffer',
    8 });
    9 const pdf = response.buffer.toString('base64');
    10} catch (error) {
    11 // handle error
    12}
    Response

    This endpoint returns binary PDF data. View a sample Bank Income PDF.

    =*=*=*=

    /credit/bank_income/refresh

    Refresh a user's bank income information

    /credit/bank_income/refresh refreshes the most recent bank income report data for a specific user. If the most recent bank income report is no longer valid (i.e. deleted), the endpoint will refresh the most recent valid report instead.

    credit/bank_income/refresh

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    requiredstringrequired, string
    The user token associated with the User data is being requested for.
    options
    objectobject
    An optional object for /credit/bank_income/refresh request options.
    days_requested
    integerinteger
    How many days of data to include in the refresh. If not specified, this will default to the days requested in the most recently generated bank income report for the user.
    Select Language
    1const request: CreditBankIncomeRefreshRequest = {
    2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
    3 options: {
    4 days_requested: 120,
    5 },
    6};
    7
    8try {
    9 const response = await client.creditBankIncomeRefresh(request);
    10} catch (error) {
    11 // handle error
    12}
    credit/bank_income/refresh

    Response fields and example

    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "LhQf0THi8SH1yJm"
    3}
    Was this helpful?
    =*=*=*=

    /credit/bank_statements/uploads/get

    Retrieve data for a user's uploaded bank statements

    /credit/bank_statements/uploads/get returns parsed data from bank statements uploaded by users as part of the Document Income flow. If your account is not enabled for Document Parsing, contact your account manager to request access.

    credit/bank_statements/uploads/get

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    requiredstringrequired, string
    The user token associated with the User data is being requested for.
    options
    objectobject
    An optional object for /credit/bank_statements/uploads/get request options.
    item_ids
    [string][string]
    An array of item_ids whose bank statements information is returned. Each item_id should uniquely identify a bank statements uploaded item. If this field is not provided, all item_ids associated with the user_token will returned in the response.
    Select Language
    1const request: CreditBankStatementsUploadsGetRequest = {
    2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
    3};
    4
    5try {
    6 const response = await client.creditBankStatementsUploadsGet(request);
    7} catch (error) {
    8 // handle error
    9}
    credit/bank_statements/uploads/get

    Response fields and example

    items
    [object][object]
    Array of bank statement upload items.
    item_id
    stringstring
    The item_id of the Item associated with this webhook, warning, or error
    bank_statements
    [object][object]
    transactions
    [object][object]
    An array of transactions appearing on the bank statement.
    amount
    nullablenumbernullable, number
    The value of the transaction. A negative amount indicates that money moved into the account (such as a paycheck being deposited).
    date
    nullablestringnullable, string
    The date of when the transaction was made, in ISO 8601 format (YYYY-MM-DD).

    Format: date
    original_description
    nullablestringnullable, string
    The raw description of the transaction as it appears on the bank statement.
    account_id
    nullablestringnullable, string
    The unique id of the bank account that this transaction occurs in
    document_metadata
    objectobject
    Object representing metadata pertaining to the document.
    name
    stringstring
    The name of the document.
    document_type
    nullablestringnullable, string
    The type of document.
    PAYSTUB: A paystub.
    BANK_STATEMENT: A bank statement.
    US_TAX_W2: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.
    US_MILITARY_ERAS: An electronic Retirement Account Statement (eRAS) issued by the US military.
    US_MILITARY_LES: A Leave and Earnings Statement (LES) issued by the US military.
    US_MILITARY_CLES: A Civilian Leave and Earnings Statement (CLES) issued by the US military.
    GIG: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.
    PLAID_GENERATED_PAYSTUB_PDF: Used to indicate that the PDF for the paystub was generated by Plaid.
    NONE: Used to indicate that there is no underlying document for the data.
    UNKNOWN: Document type could not be determined.


    Possible values: UNKNOWN, PAYSTUB, BANK_STATEMENT, US_TAX_W2, US_MILITARY_ERAS, US_MILITARY_LES, US_MILITARY_CLES, GIG, PLAID_GENERATED_PAYSTUB_PDF, NONE
    download_url
    nullablestringnullable, string
    Signed URL to retrieve the document(s). The payload will be a .zip file containing the document(s).
    For Payroll Income, the file type of the documents will always be PDF, and the documents may not be available, in which case the field will be null. If you would like Plaid to generate a PDF if the original is not available, contact your Account Manager. Example generated pay stub.
    For Document Income, this field will not be null, and the file type of the underlying document(s) will be the original file type uploaded by the user. For more details on available file types, see the Document Income documentation.
    This download URL can only be used once and expires after two minutes. To generate a new download URL, call /credit/payroll_income/get again.
    status
    nullablestringnullable, string
    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.


    Possible values: UNKNOWN, PROCESSING_COMPLETE, DOCUMENT_ERROR, null
    page_count
    nullableintegernullable, integer
    The number of pages of the uploaded document (if available).
    error_message
    nullablestringnullable, string
    The reason why a failure occurred during document processing (if available).
    document_id
    nullablestringnullable, string
    An identifier of the document referenced by the document metadata.
    bank_accounts
    [object][object]
    An array of bank accounts associated with the uploaded bank statement.
    name
    nullablestringnullable, string
    The name of the bank account
    bank_name
    nullablestringnullable, string
    The name of the bank institution.
    account_type
    nullablestringnullable, string
    The type of the bank account.
    account_number
    nullablestringnullable, string
    The bank account number.
    owner
    objectobject
    An object containing data about the owner of the bank account for the uploaded bank statement.
    name
    nullablestringnullable, string
    The name of the account owner
    address
    objectobject
    Address on the uploaded bank statement
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    periods
    [object][object]
    An array of period objects, containing more data on the overall period of the statement.
    start_date
    nullablestringnullable, string
    The start date of the statement period in ISO 8601 format (YYYY-MM-DD).

    Format: date
    end_date
    nullablestringnullable, string
    The end date of the statement period in ISO 8601 format (YYYY-MM-DD).

    Format: date
    starting_balance
    nullablenumbernullable, number
    The starting balance of the bank account for the period.
    ending_balance
    nullablenumbernullable, number
    The ending balance of the bank account for the period.
    account_id
    nullablestringnullable, string
    The unique id of the bank account
    status
    nullableobjectnullable, object
    Details about the status of the payroll item.
    processing_status
    nullablestringnullable, string
    Denotes the processing status for the verification.
    UNKNOWN: The processing status could not be determined.
    PROCESSING_COMPLETE: The processing has completed and the user has approved for sharing. The data is available to be retrieved.
    PROCESSING: The verification is still processing. The data is not available yet.
    FAILED: The processing failed to complete successfully.
    APPROVAL_STATUS_PENDING: The processing has completed but the user has not yet approved the sharing of the data.


    Possible values: UNKNOWN, PROCESSING_COMPLETE, PROCESSING, FAILED, APPROVAL_STATUS_PENDING
    updated_at
    nullablestringnullable, string
    Timestamp in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the Item was updated.

    Format: date-time
    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "items": [
    3 {
    4 "item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6",
    5 "bank_statements": [
    6 {
    7 "transactions": [
    8 {
    9 "amount": -1000,
    10 "date": "2023-01-01",
    11 "original_description": "PAYCHECK",
    12 "account_id": "c6778d3f-e44c-4348-874e-71507c1ac12d"
    13 }
    14 ],
    15 "document_metadata": {
    16 "document_type": "BANK_STATEMENT",
    17 "name": "statement_01.pdf",
    18 "status": "PROCESSING_COMPLETE",
    19 "download_url": null,
    20 "page_count": 2
    21 },
    22 "document_id": "2jkflanbd",
    23 "bank_accounts": [
    24 {
    25 "name": "CHASE CHECKING",
    26 "bank_name": "CHASE",
    27 "account_type": "CHECKING",
    28 "account_number": "000009752",
    29 "account_id": "c6778d3f-e44c-4348-874e-71507c1ac12d",
    30 "owner": {
    31 "name": "JANE DOE",
    32 "address": {
    33 "postal_code": "94133",
    34 "country": "US",
    35 "region": "CA",
    36 "city": "SAN FRANCISCO",
    37 "street": "2140 TAYLOR ST"
    38 }
    39 },
    40 "periods": [
    41 {
    42 "start_date": "2023-01-01",
    43 "end_date": "2023-02-01",
    44 "starting_balance": 2500,
    45 "ending_balance": 3500
    46 }
    47 ]
    48 }
    49 ]
    50 }
    51 ],
    52 "status": {
    53 "processing_status": "PROCESSING_COMPLETE"
    54 },
    55 "updated_at": "2023-02-01T21:14:54Z"
    56 }
    57 ],
    58 "request_id": "LhQf0THi8SH1yJm"
    59}
    Was this helpful?
    =*=*=*=

    /credit/payroll_income/get

    Retrieve a user's payroll information

    This endpoint gets payroll income information for a specific user, either as a result of the user connecting to their payroll provider or uploading a pay related document.

    credit/payroll_income/get

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    stringstring
    The user token associated with the User data is being requested for.
    options
    objectobject
    An optional object for /credit/payroll_income/get request options.
    item_ids
    [string][string]
    An array of item_ids whose payroll information is returned. Each item_id should uniquely identify a payroll income item. If this field is not provided, all item_ids associated with the user_token will returned in the response.
    Select Language
    1const request: CreditPayrollIncomeGetRequest = {
    2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
    3};
    4
    5try {
    6 const response = await client.creditPayrollIncomeGet(request);
    7} catch (error) {
    8 // handle error
    9}
    credit/payroll_income/get

    Response fields and example

    items
    [object][object]
    Array of payroll items.
    item_id
    stringstring
    The item_id of the Item associated with this webhook, warning, or error
    institution_id
    stringstring
    The unique identifier of the institution associated with the Item.
    institution_name
    stringstring
    The name of the institution associated with the Item.
    accounts
    [object][object]
    account_id
    nullablestringnullable, string
    ID of the payroll provider account.
    rate_of_pay
    objectobject
    An object representing the rate at which an individual is paid.
    pay_rate
    nullablestringnullable, string
    The rate at which an employee is paid.

    Possible values: ANNUAL, HOURLY, CONTRACT, WEEKLY, BIWEEKLY, MONTHLY, SEMI_MONTHLY, DAILY, COMMISSION, OTHER, null
    pay_amount
    nullablenumbernullable, number
    The amount at which an employee is paid.

    Format: double
    pay_frequency
    nullablestringnullable, string
    The frequency at which an individual is paid.

    Possible values: DAILY, WEEKLY, BIWEEKLY, SEMI_MONTHLY, MONTHLY, CONTRACT, QUARTERLY, SEMI_ANNUALLY, ANNUALLY, OTHER, null
    payroll_income
    [object][object]
    account_id
    nullablestringnullable, string
    ID of the payroll provider account.
    pay_stubs
    [object][object]
    Array of pay stubs for the user.
    deductions
    objectobject
    An object with the deduction information found on a pay stub.
    breakdown
    [object][object]
    current_amount
    nullablenumbernullable, number
    Raw amount of the deduction

    Format: double
    description
    nullablestringnullable, string
    Description of the deduction line item
    iso_currency_code
    nullablestringnullable, string
    The ISO-4217 currency code of the line item. Always null if unofficial_currency_code is non-null.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the line item. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    See the currency code schema for a full listing of supported iso_currency_codes.
    ytd_amount
    nullablenumbernullable, number
    The year-to-date amount of the deduction

    Format: double
    total
    objectobject
    An object representing the total deductions for the pay period
    current_amount
    nullablenumbernullable, number
    Raw amount of the deduction

    Format: double
    iso_currency_code
    nullablestringnullable, string
    The ISO-4217 currency code of the line item. Always null if unofficial_currency_code is non-null.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the line item. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    See the currency code schema for a full listing of supported iso_currency_codes.
    ytd_amount
    nullablenumbernullable, number
    The year-to-date total amount of the deductions

    Format: double
    document_id
    nullablestringnullable, string
    An identifier of the document referenced by the document metadata.
    document_metadata
    objectobject
    Object representing metadata pertaining to the document.
    name
    stringstring
    The name of the document.
    document_type
    nullablestringnullable, string
    The type of document.
    PAYSTUB: A paystub.
    BANK_STATEMENT: A bank statement.
    US_TAX_W2: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.
    US_MILITARY_ERAS: An electronic Retirement Account Statement (eRAS) issued by the US military.
    US_MILITARY_LES: A Leave and Earnings Statement (LES) issued by the US military.
    US_MILITARY_CLES: A Civilian Leave and Earnings Statement (CLES) issued by the US military.
    GIG: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.
    PLAID_GENERATED_PAYSTUB_PDF: Used to indicate that the PDF for the paystub was generated by Plaid.
    NONE: Used to indicate that there is no underlying document for the data.
    UNKNOWN: Document type could not be determined.


    Possible values: UNKNOWN, PAYSTUB, BANK_STATEMENT, US_TAX_W2, US_MILITARY_ERAS, US_MILITARY_LES, US_MILITARY_CLES, GIG, PLAID_GENERATED_PAYSTUB_PDF, NONE
    download_url
    nullablestringnullable, string
    Signed URL to retrieve the document(s). The payload will be a .zip file containing the document(s).
    For Payroll Income, the file type of the documents will always be PDF, and the documents may not be available, in which case the field will be null. If you would like Plaid to generate a PDF if the original is not available, contact your Account Manager. Example generated pay stub.
    For Document Income, this field will not be null, and the file type of the underlying document(s) will be the original file type uploaded by the user. For more details on available file types, see the Document Income documentation.
    This download URL can only be used once and expires after two minutes. To generate a new download URL, call /credit/payroll_income/get again.
    status
    nullablestringnullable, string
    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.


    Possible values: UNKNOWN, PROCESSING_COMPLETE, DOCUMENT_ERROR, null
    page_count
    nullableintegernullable, integer
    The number of pages of the uploaded document (if available).
    error_message
    nullablestringnullable, string
    The reason why a failure occurred during document processing (if available).
    earnings
    objectobject
    An object representing both a breakdown of earnings on a pay stub and the total earnings.
    breakdown
    [object][object]
    canonical_description
    nullablestringnullable, string
    Commonly used term to describe the earning line item.

    Possible values: BONUS, COMMISSION, OVERTIME, PAID_TIME_OFF, REGULAR_PAY, VACATION, BASIC_ALLOWANCE_HOUSING, BASIC_ALLOWANCE_SUBSISTENCE, OTHER, ALLOWANCE, BEREAVEMENT, HOLIDAY_PAY, JURY_DUTY, LEAVE, LONG_TERM_DISABILITY_PAY, MILITARY_PAY, PER_DIEM, REFERRAL_BONUS, REIMBURSEMENTS, RETENTION_BONUS, RETROACTIVE_PAY, SEVERANCE_PAY, SHIFT_DIFFERENTIAL, SHORT_TERM_DISABILITY_PAY, SICK_PAY, SIGNING_BONUS, TIPS_INCOME, RETIREMENT, GIG_ECONOMY, STOCK_COMPENSATION, null
    current_amount
    nullablenumbernullable, number
    Raw amount of the earning line item.

    Format: double
    description
    nullablestringnullable, string
    Description of the earning line item.
    hours
    nullablenumbernullable, number
    Number of hours applicable for this earning.
    iso_currency_code
    nullablestringnullable, string
    The ISO-4217 currency code of the line item. Always null if unofficial_currency_code is non-null.
    rate
    nullablenumbernullable, number
    Hourly rate applicable for this earning.

    Format: double
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the line item. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    See the currency code schema for a full listing of supported iso_currency_codes.
    ytd_amount
    nullablenumbernullable, number
    The year-to-date amount of the deduction.

    Format: double
    total
    objectobject
    An object representing both the current pay period and year to date amount for an earning category.
    current_amount
    nullablenumbernullable, number
    Total amount of the earnings for this pay period.

    Format: double
    hours
    nullablenumbernullable, number
    Total number of hours worked for this pay period.
    iso_currency_code
    nullablestringnullable, string
    The ISO-4217 currency code of the line item. Always null if unofficial_currency_code is non-null.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the security. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    See the currency code schema for a full listing of supported iso_currency_codes.
    ytd_amount
    nullablenumbernullable, number
    The total year-to-date amount of the earnings.

    Format: double
    employee
    objectobject
    Data about the employee.
    address
    objectobject
    Address on the pay stub.
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    name
    nullablestringnullable, string
    The name of the employee.
    marital_status
    nullablestringnullable, string
    Marital status of the employee - either SINGLE or MARRIED or NOT LISTED.

    Possible values: SINGLE, MARRIED, NOT LISTED, null
    taxpayer_id
    objectobject
    Taxpayer ID of the individual receiving the paystub.
    id_type
    nullablestringnullable, string
    Type of ID, e.g. 'SSN'.
    id_mask
    nullablestringnullable, string
    ID mask; i.e. last 4 digits of the taxpayer ID.
    employer
    objectobject
    Information about the employer on the pay stub.
    address
    objectobject
    Address on the pay stub.
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    name
    nullablestringnullable, string
    The name of the employer on the pay stub.
    net_pay
    objectobject
    An object representing information about the net pay amount on the pay stub.
    current_amount
    nullablenumbernullable, number
    Raw amount of the net pay for the pay period.

    Format: double
    description
    nullablestringnullable, string
    Description of the net pay.
    iso_currency_code
    nullablestringnullable, string
    The ISO-4217 currency code of the net pay. Always null if unofficial_currency_code is non-null.
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the net pay. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    See the currency code schema for a full listing of supported iso_currency_codes.
    ytd_amount
    nullablenumbernullable, number
    The year-to-date amount of the net pay.

    Format: double
    pay_period_details
    objectobject
    Details about the pay period.
    pay_amount
    nullablenumbernullable, number
    The amount of the paycheck.

    Format: double
    distribution_breakdown
    [object][object]
    account_name
    nullablestringnullable, string
    Name of the account for the given distribution.
    bank_name
    nullablestringnullable, string
    The name of the bank that the payment is being deposited to.
    current_amount
    nullablenumbernullable, number
    The amount distributed to this account.

    Format: double
    iso_currency_code
    nullablestringnullable, string
    The ISO-4217 currency code of the net pay. Always null if unofficial_currency_code is non-null.
    mask
    nullablestringnullable, string
    The last 2-4 alphanumeric characters of an account's official account number.
    type
    nullablestringnullable, string
    Type of the account that the paystub was sent to (e.g. 'checking').
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the net pay. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    See the currency code schema for a full listing of supported iso_currency_codes.
    end_date
    nullablestringnullable, string
    The date on which the pay period ended, in ISO 8601 format ("yyyy-mm-dd").

    Format: date
    gross_earnings
    nullablenumbernullable, number
    Total earnings before tax/deductions.

    Format: double
    iso_currency_code
    nullablestringnullable, string
    The ISO-4217 currency code of the net pay. Always null if unofficial_currency_code is non-null.
    pay_date
    nullablestringnullable, string
    The date on which the pay stub was issued, in ISO 8601 format ("yyyy-mm-dd").

    Format: date
    pay_frequency
    nullablestringnullable, string
    The frequency at which an individual is paid.

    Possible values: UNKNOWN, WEEKLY, BIWEEKLY, SEMI_MONTHLY, MONTHLY, null
    pay_basis
    stringstring
    The explicit pay basis on the paystub (if present).

    Possible values: SALARY, HOURLY, COMMISSION
    start_date
    nullablestringnullable, string
    The date on which the pay period started, in ISO 8601 format ("yyyy-mm-dd").

    Format: date
    unofficial_currency_code
    nullablestringnullable, string
    The unofficial currency code associated with the net pay. Always null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
    See the currency code schema for a full listing of supported iso_currency_codes.
    w2s
    [object][object]
    Array of tax form W-2s.
    document_metadata
    objectobject
    Object representing metadata pertaining to the document.
    name
    stringstring
    The name of the document.
    document_type
    nullablestringnullable, string
    The type of document.
    PAYSTUB: A paystub.
    BANK_STATEMENT: A bank statement.
    US_TAX_W2: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.
    US_MILITARY_ERAS: An electronic Retirement Account Statement (eRAS) issued by the US military.
    US_MILITARY_LES: A Leave and Earnings Statement (LES) issued by the US military.
    US_MILITARY_CLES: A Civilian Leave and Earnings Statement (CLES) issued by the US military.
    GIG: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.
    PLAID_GENERATED_PAYSTUB_PDF: Used to indicate that the PDF for the paystub was generated by Plaid.
    NONE: Used to indicate that there is no underlying document for the data.
    UNKNOWN: Document type could not be determined.


    Possible values: UNKNOWN, PAYSTUB, BANK_STATEMENT, US_TAX_W2, US_MILITARY_ERAS, US_MILITARY_LES, US_MILITARY_CLES, GIG, PLAID_GENERATED_PAYSTUB_PDF, NONE
    download_url
    nullablestringnullable, string
    Signed URL to retrieve the document(s). The payload will be a .zip file containing the document(s).
    For Payroll Income, the file type of the documents will always be PDF, and the documents may not be available, in which case the field will be null. If you would like Plaid to generate a PDF if the original is not available, contact your Account Manager. Example generated pay stub.
    For Document Income, this field will not be null, and the file type of the underlying document(s) will be the original file type uploaded by the user. For more details on available file types, see the Document Income documentation.
    This download URL can only be used once and expires after two minutes. To generate a new download URL, call /credit/payroll_income/get again.
    status
    nullablestringnullable, string
    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.


    Possible values: UNKNOWN, PROCESSING_COMPLETE, DOCUMENT_ERROR, null
    page_count
    nullableintegernullable, integer
    The number of pages of the uploaded document (if available).
    error_message
    nullablestringnullable, string
    The reason why a failure occurred during document processing (if available).
    document_id
    stringstring
    An identifier of the document referenced by the document metadata.
    employer
    objectobject
    Information about the employer on the pay stub.
    address
    objectobject
    Address on the pay stub.
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    name
    nullablestringnullable, string
    The name of the employer on the pay stub.
    employee
    objectobject
    Data about the employee.
    address
    objectobject
    Address on the pay stub.
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    name
    nullablestringnullable, string
    The name of the employee.
    marital_status
    nullablestringnullable, string
    Marital status of the employee - either SINGLE or MARRIED or NOT LISTED.

    Possible values: SINGLE, MARRIED, NOT LISTED, null
    taxpayer_id
    objectobject
    Taxpayer ID of the individual receiving the paystub.
    id_type
    nullablestringnullable, string
    Type of ID, e.g. 'SSN'.
    id_mask
    nullablestringnullable, string
    ID mask; i.e. last 4 digits of the taxpayer ID.
    tax_year
    nullablestringnullable, string
    The tax year of the W2 document.
    employer_id_number
    nullablestringnullable, string
    An employee identification number or EIN.
    wages_tips_other_comp
    nullablestringnullable, string
    Wages from tips and other compensation.
    federal_income_tax_withheld
    nullablestringnullable, string
    Federal income tax withheld for the tax year.
    social_security_wages
    nullablestringnullable, string
    Wages from social security.
    social_security_tax_withheld
    nullablestringnullable, string
    Social security tax withheld for the tax year.
    medicare_wages_and_tips
    nullablestringnullable, string
    Wages and tips from medicare.
    medicare_tax_withheld
    nullablestringnullable, string
    Medicare tax withheld for the tax year.
    social_security_tips
    nullablestringnullable, string
    Tips from social security.
    allocated_tips
    nullablestringnullable, string
    Allocated tips.
    box_9
    nullablestringnullable, string
    Contents from box 9 on the W2.
    dependent_care_benefits
    nullablestringnullable, string
    Dependent care benefits.
    nonqualified_plans
    nullablestringnullable, string
    Nonqualified plans.
    box_12
    [object][object]
    code
    nullablestringnullable, string
    W2 Box 12 code.
    amount
    nullablestringnullable, string
    W2 Box 12 amount.
    statutory_employee
    nullablestringnullable, string
    Statutory employee.
    retirement_plan
    nullablestringnullable, string
    Retirement plan.
    third_party_sick_pay
    nullablestringnullable, string
    Third party sick pay.
    other
    nullablestringnullable, string
    Other.
    state_and_local_wages
    [object][object]
    state
    nullablestringnullable, string
    State associated with the wage.
    employer_state_id_number
    nullablestringnullable, string
    State identification number of the employer.
    state_wages_tips
    nullablestringnullable, string
    Wages and tips from the specified state.
    state_income_tax
    nullablestringnullable, string
    Income tax from the specified state.
    local_wages_tips
    nullablestringnullable, string
    Wages and tips from the locality.
    local_income_tax
    nullablestringnullable, string
    Income tax from the locality.
    locality_name
    nullablestringnullable, string
    Name of the locality.
    form1099s
    [object][object]
    Array of tax form 1099s.
    document_id
    nullablestringnullable, string
    An identifier of the document referenced by the document metadata.
    document_metadata
    objectobject
    Object representing metadata pertaining to the document.
    name
    stringstring
    The name of the document.
    document_type
    nullablestringnullable, string
    The type of document.
    PAYSTUB: A paystub.
    BANK_STATEMENT: A bank statement.
    US_TAX_W2: A W-2 wage and tax statement provided by a US employer reflecting wages earned by the employee.
    US_MILITARY_ERAS: An electronic Retirement Account Statement (eRAS) issued by the US military.
    US_MILITARY_LES: A Leave and Earnings Statement (LES) issued by the US military.
    US_MILITARY_CLES: A Civilian Leave and Earnings Statement (CLES) issued by the US military.
    GIG: Used to indicate that the income is related to gig work. Does not necessarily correspond to a specific document type.
    PLAID_GENERATED_PAYSTUB_PDF: Used to indicate that the PDF for the paystub was generated by Plaid.
    NONE: Used to indicate that there is no underlying document for the data.
    UNKNOWN: Document type could not be determined.


    Possible values: UNKNOWN, PAYSTUB, BANK_STATEMENT, US_TAX_W2, US_MILITARY_ERAS, US_MILITARY_LES, US_MILITARY_CLES, GIG, PLAID_GENERATED_PAYSTUB_PDF, NONE
    download_url
    nullablestringnullable, string
    Signed URL to retrieve the document(s). The payload will be a .zip file containing the document(s).
    For Payroll Income, the file type of the documents will always be PDF, and the documents may not be available, in which case the field will be null. If you would like Plaid to generate a PDF if the original is not available, contact your Account Manager. Example generated pay stub.
    For Document Income, this field will not be null, and the file type of the underlying document(s) will be the original file type uploaded by the user. For more details on available file types, see the Document Income documentation.
    This download URL can only be used once and expires after two minutes. To generate a new download URL, call /credit/payroll_income/get again.
    status
    nullablestringnullable, string
    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.


    Possible values: UNKNOWN, PROCESSING_COMPLETE, DOCUMENT_ERROR, null
    page_count
    nullableintegernullable, integer
    The number of pages of the uploaded document (if available).
    error_message
    nullablestringnullable, string
    The reason why a failure occurred during document processing (if available).
    form_1099_type
    stringstring
    Form 1099 Type

    Possible values: FORM_1099_TYPE_UNKNOWN, FORM_1099_TYPE_MISC, FORM_1099_TYPE_K
    recipient
    objectobject
    An object representing a recipient used in both 1099-K and 1099-MISC tax documents.
    address
    objectobject
    Address on the pay stub.
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    name
    nullablestringnullable, string
    Name of recipient.
    tin
    nullablestringnullable, string
    Tax identification number of recipient.
    account_number
    nullablestringnullable, string
    Account number number of recipient.
    facta_filing_requirement
    nullablestringnullable, string
    Checked if FACTA is a filing requirement.

    Possible values: CHECKED, NOT CHECKED
    second_tin_exists
    nullablestringnullable, string
    Checked if 2nd TIN exists.

    Possible values: CHECKED, NOT CHECKED
    payer
    objectobject
    An object representing a payer used by 1099-MISC tax documents.
    address
    objectobject
    Address on the pay stub.
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    name
    nullablestringnullable, string
    Name of payer.
    tin
    nullablestringnullable, string
    Tax identification number of payer.
    telephone_number
    nullablestringnullable, string
    Telephone number of payer.
    filer
    objectobject
    An object representing a filer used by 1099-K tax documents.
    address
    objectobject
    Address on the pay stub.
    city
    nullablestringnullable, string
    The full city name.
    country
    nullablestringnullable, string
    The ISO 3166-1 alpha-2 country code.
    postal_code
    nullablestringnullable, string
    The postal code of the address.
    region
    nullablestringnullable, string
    The region or state. Example: "NC"
    street
    nullablestringnullable, string
    The full street address.
    name
    nullablestringnullable, string
    Name of filer.
    tin
    nullablestringnullable, string
    Tax identification number of filer.
    type
    nullablestringnullable, string
    One of the following values will be provided: Payment Settlement Entity (PSE), Electronic Payment Facilitator (EPF), Other Third Party

    Possible values: Payment Settlement Entity (PSE), Electronic Payment Facilitator (EPF), Other Third Party
    tax_year
    nullablestringnullable, string
    Tax year of the tax form.
    rents
    nullablenumbernullable, number
    Amount in rent by payer.

    Format: double
    royalties
    nullablenumbernullable, number
    Amount in royalties by payer.

    Format: double
    other_income
    nullablenumbernullable, number
    Amount in other income by payer.

    Format: double
    federal_income_tax_withheld
    nullablenumbernullable, number
    Amount of federal income tax withheld from payer.

    Format: double
    fishing_boat_proceeds
    nullablenumbernullable, number
    Amount of fishing boat proceeds from payer.

    Format: double
    medical_and_healthcare_payments
    nullablenumbernullable, number
    Amount of medical and healthcare payments from payer.

    Format: double
    nonemployee_compensation
    nullablenumbernullable, number
    Amount of nonemployee compensation from payer.

    Format: double
    substitute_payments_in_lieu_of_dividends_or_interest
    nullablenumbernullable, number
    Amount of substitute payments made by payer.

    Format: double
    payer_made_direct_sales_of_5000_or_more_of_consumer_products_to_buyer
    nullablestringnullable, string
    Whether or not payer made direct sales over $5000 of consumer products.
    crop_insurance_proceeds
    nullablenumbernullable, number
    Amount of crop insurance proceeds.

    Format: double
    excess_golden_parachute_payments
    nullablenumbernullable, number
    Amount of golden parachute payments made by payer.

    Format: double
    gross_proceeds_paid_to_an_attorney
    nullablenumbernullable, number
    Amount of gross proceeds paid to an attorney by payer.

    Format: double
    section_409a_deferrals
    nullablenumbernullable, number
    Amount of 409A deferrals earned by payer.

    Format: double
    section_409a_income
    nullablenumbernullable, number
    Amount of 409A income earned by payer.

    Format: double
    state_tax_withheld
    nullablenumbernullable, number
    Amount of state tax withheld of payer for primary state.

    Format: double
    state_tax_withheld_lower
    nullablenumbernullable, number
    Amount of state tax withheld of payer for secondary state.

    Format: double
    payer_state_number
    nullablestringnullable, string
    Primary state ID.
    payer_state_number_lower
    nullablestringnullable, string
    Secondary state ID.
    state_income
    nullablenumbernullable, number
    State income reported for primary state.

    Format: double
    state_income_lower
    nullablenumbernullable, number
    State income reported for secondary state.

    Format: double
    transactions_reported
    nullablestringnullable, string
    One of the values will be provided Payment card Third party network

    Possible values: Payment card, Third party network
    pse_name
    nullablestringnullable, string
    Name of the PSE (Payment Settlement Entity).
    pse_telephone_number
    nullablestringnullable, string
    Formatted (XXX) XXX-XXXX. Phone number of the PSE (Payment Settlement Entity).
    gross_amount
    nullablenumbernullable, number
    Gross amount reported.

    Format: double
    card_not_present_transaction
    nullablenumbernullable, number
    Amount in card not present transactions.

    Format: double
    merchant_category_code
    nullablestringnullable, string
    Merchant category of filer.
    number_of_payment_transactions
    nullablestringnullable, string
    Number of payment transactions made.
    january_amount
    nullablenumbernullable, number
    Amount reported for January.

    Format: double
    february_amount
    nullablenumbernullable, number
    Amount reported for February.

    Format: double
    march_amount
    nullablenumbernullable, number
    Amount reported for March.

    Format: double
    april_amount
    nullablenumbernullable, number
    Amount reported for April.

    Format: double
    may_amount
    nullablenumbernullable, number
    Amount reported for May.

    Format: double
    june_amount
    nullablenumbernullable, number
    Amount reported for June.

    Format: double
    july_amount
    nullablenumbernullable, number
    Amount reported for July.

    Format: double
    august_amount
    nullablenumbernullable, number
    Amount reported for August.

    Format: double
    september_amount
    nullablenumbernullable, number
    Amount reported for September.

    Format: double
    october_amount
    nullablenumbernullable, number
    Amount reported for October.

    Format: double
    november_amount
    nullablenumbernullable, number
    Amount reported for November.

    Format: double
    december_amount
    nullablenumbernullable, number
    Amount reported for December.

    Format: double
    primary_state
    nullablestringnullable, string
    Primary state of business.
    secondary_state
    nullablestringnullable, string
    Secondary state of business.
    primary_state_id
    nullablestringnullable, string
    Primary state ID.
    secondary_state_id
    nullablestringnullable, string
    Secondary state ID.
    primary_state_income_tax
    nullablenumbernullable, number
    State income tax reported for primary state.

    Format: double
    secondary_state_income_tax
    nullablenumbernullable, number
    State income tax reported for secondary state.

    Format: double
    status
    nullableobjectnullable, object
    Details about the status of the payroll item.
    processing_status
    nullablestringnullable, string
    Denotes the processing status for the verification.
    UNKNOWN: The processing status could not be determined.
    PROCESSING_COMPLETE: The processing has completed and the user has approved for sharing. The data is available to be retrieved.
    PROCESSING: The verification is still processing. The data is not available yet.
    FAILED: The processing failed to complete successfully.
    APPROVAL_STATUS_PENDING: The processing has completed but the user has not yet approved the sharing of the data.


    Possible values: UNKNOWN, PROCESSING_COMPLETE, PROCESSING, FAILED, APPROVAL_STATUS_PENDING
    updated_at
    nullablestringnullable, string
    Timestamp in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the Item was updated.

    Format: date-time
    error
    nullableobjectnullable, object
    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
    stringstring
    A broad categorization of the error. Safe for programmatic use.

    Possible values: INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR
    error_code
    stringstring
    The particular error code. Safe for programmatic use.
    error_code_reason
    nullablestringnullable, string
    The specific reason for the error code. Currently, reasons are only supported 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
    stringstring
    A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
    display_message
    nullablestringnullable, string
    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
    stringstring
    A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
    causes
    arrayarray
    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.
    status
    nullableintegernullable, integer
    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
    stringstring
    The URL of a Plaid documentation page with more information about the error
    suggested_action
    nullablestringnullable, string
    Suggested steps for resolving the error
    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "items": [
    3 {
    4 "item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6",
    5 "institution_id": "ins_92",
    6 "institution_name": "ADP",
    7 "accounts": [
    8 {
    9 "account_id": "GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9",
    10 "rate_of_pay": {
    11 "pay_amount": 100000,
    12 "pay_rate": "ANNUAL"
    13 },
    14 "pay_frequency": "BIWEEKLY"
    15 }
    16 ],
    17 "payroll_income": [
    18 {
    19 "account_id": "GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9",
    20 "pay_stubs": [
    21 {
    22 "deductions": {
    23 "breakdown": [
    24 {
    25 "current_amount": 123.45,
    26 "description": "taxes",
    27 "iso_currency_code": "USD",
    28 "unofficial_currency_code": null,
    29 "ytd_amount": 246.9
    30 }
    31 ],
    32 "total": {
    33 "current_amount": 123.45,
    34 "iso_currency_code": "USD",
    35 "unofficial_currency_code": null,
    36 "ytd_amount": 246.9
    37 }
    38 },
    39 "document_metadata": {
    40 "document_type": "PAYSTUB",
    41 "name": "paystub.pdf",
    42 "status": "PROCESSING_COMPLETE",
    43 "download_url": null
    44 },
    45 "document_id": "2jkflanbd",
    46 "earnings": {
    47 "breakdown": [
    48 {
    49 "canonical_description": "REGULAR_PAY",
    50 "current_amount": 200.22,
    51 "description": "salary earned",
    52 "hours": 80,
    53 "iso_currency_code": "USD",
    54 "rate": null,
    55 "unofficial_currency_code": null,
    56 "ytd_amount": 400.44
    57 },
    58 {
    59 "canonical_description": "BONUS",
    60 "current_amount": 100,
    61 "description": "bonus earned",
    62 "hours": null,
    63 "iso_currency_code": "USD",
    64 "rate": null,
    65 "unofficial_currency_code": null,
    66 "ytd_amount": 100
    67 }
    68 ],
    69 "total": {
    70 "current_amount": 300.22,
    71 "hours": 160,
    72 "iso_currency_code": "USD",
    73 "unofficial_currency_code": null,
    74 "ytd_amount": 500.44
    75 }
    76 },
    77 "employee": {
    78 "address": {
    79 "city": "SAN FRANCISCO",
    80 "country": "US",
    81 "postal_code": "94133",
    82 "region": "CA",
    83 "street": "2140 TAYLOR ST"
    84 },
    85 "name": "ANNA CHARLESTON",
    86 "marital_status": "SINGLE",
    87 "taxpayer_id": {
    88 "id_type": "SSN",
    89 "id_mask": "3333"
    90 }
    91 },
    92 "employer": {
    93 "name": "PLAID INC",
    94 "address": {
    95 "city": "SAN FRANCISCO",
    96 "country": "US",
    97 "postal_code": "94111",
    98 "region": "CA",
    99 "street": "1098 HARRISON ST"
    100 }
    101 },
    102 "net_pay": {
    103 "current_amount": 123.34,
    104 "description": "TOTAL NET PAY",
    105 "iso_currency_code": "USD",
    106 "unofficial_currency_code": null,
    107 "ytd_amount": 253.54
    108 },
    109 "pay_period_details": {
    110 "distribution_breakdown": [
    111 {
    112 "account_name": "Big time checking",
    113 "bank_name": "bank of plaid",
    114 "current_amount": 176.77,
    115 "iso_currency_code": "USD",
    116 "mask": "1223",
    117 "type": "checking",
    118 "unofficial_currency_code": null
    119 }
    120 ],
    121 "end_date": "2020-12-15",
    122 "gross_earnings": 4500,
    123 "iso_currency_code": "USD",
    124 "pay_amount": 1490.21,
    125 "pay_date": "2020-12-15",
    126 "pay_frequency": "BIWEEKLY",
    127 "start_date": "2020-12-01",
    128 "unofficial_currency_code": null
    129 }
    130 }
    131 ],
    132 "w2s": [
    133 {
    134 "allocated_tips": "1000",
    135 "box_12": [
    136 {
    137 "amount": "200",
    138 "code": "AA"
    139 }
    140 ],
    141 "box_9": "box9",
    142 "dependent_care_benefits": "1000",
    143 "document_metadata": {
    144 "document_type": "US_TAX_W2",
    145 "download_url": null,
    146 "name": "w_2.pdf",
    147 "status": "PROCESSING_COMPLETE"
    148 },
    149 "document_id": "1pkflebk4",
    150 "employee": {
    151 "address": {
    152 "city": "San Francisco",
    153 "country": "US",
    154 "postal_code": "94103",
    155 "region": "CA",
    156 "street": "1234 Grand St"
    157 },
    158 "name": "Josie Georgia Harrison",
    159 "marital_status": "SINGLE",
    160 "taxpayer_id": {
    161 "id_type": "SSN",
    162 "id_mask": "1234"
    163 }
    164 },
    165 "employer": {
    166 "address": {
    167 "city": "New York",
    168 "country": "US",
    169 "postal_code": "10010",
    170 "region": "NY",
    171 "street": "456 Main St"
    172 },
    173 "name": "Acme Inc"
    174 },
    175 "employer_id_number": "12-1234567",
    176 "federal_income_tax_withheld": "1000",
    177 "medicare_tax_withheld": "1000",
    178 "medicare_wages_and_tips": "1000",
    179 "nonqualified_plans": "1000",
    180 "other": "other",
    181 "retirement_plan": "CHECKED",
    182 "social_security_tax_withheld": "1000",
    183 "social_security_tips": "1000",
    184 "social_security_wages": "1000",
    185 "state_and_local_wages": [
    186 {
    187 "employer_state_id_number": "11111111111AAA",
    188 "local_income_tax": "200",
    189 "local_wages_and_tips": "200",
    190 "locality_name": "local",
    191 "state": "UT",
    192 "state_income_tax": "200",
    193 "state_wages_tips": "200"
    194 }
    195 ],
    196 "statutory_employee": "CHECKED",
    197 "tax_year": "2020",
    198 "third_party_sick_pay": "CHECKED",
    199 "wages_tips_other_comp": "1000"
    200 }
    201 ],
    202 "form1099s": [
    203 {
    204 "april_amount": null,
    205 "august_amount": null,
    206 "card_not_present_transaction": null,
    207 "crop_insurance_proceeds": 1000,
    208 "december_amount": null,
    209 "document_id": "mvMZ59Z2a5",
    210 "document_metadata": {
    211 "document_type": "US_TAX_1099_MISC",
    212 "download_url": null,
    213 "name": "form_1099_misc.pdf",
    214 "status": "PROCESSING_COMPLETE"
    215 },
    216 "excess_golden_parachute_payments": 1000,
    217 "february_amount": null,
    218 "federal_income_tax_withheld": 1000,
    219 "filer": {
    220 "address": {
    221 "city": null,
    222 "country": null,
    223 "postal_code": null,
    224 "region": null,
    225 "street": null
    226 },
    227 "name": null,
    228 "tin": null,
    229 "type": null
    230 },
    231 "fishing_boat_proceeds": 1000,
    232 "form_1099_type": "FORM_1099_TYPE_MISC",
    233 "gross_amount": 1000,
    234 "gross_proceeds_paid_to_an_attorney": 1000,
    235 "january_amount": null,
    236 "july_amount": null,
    237 "june_amount": null,
    238 "march_amount": null,
    239 "may_amount": null,
    240 "medical_and_healthcare_payments": 1000,
    241 "merchant_category_code": null,
    242 "nonemployee_compensation": 1000,
    243 "november_amount": null,
    244 "number_of_payment_transactions": null,
    245 "october_amount": null,
    246 "other_income": 1000,
    247 "payer": {
    248 "address": {
    249 "city": "SAN FRANCISCO",
    250 "country": "US",
    251 "postal_code": "94111",
    252 "region": "CA",
    253 "street": "1098 HARRISON ST"
    254 },
    255 "name": "PLAID INC",
    256 "telephone_number": "(123)456-7890",
    257 "tin": "12-3456789"
    258 },
    259 "payer_made_direct_sales_of_500_or_more_of_consumer_products_to_buyer": null,
    260 "payer_state_number": "CA 12345",
    261 "payer_state_number_lower": null,
    262 "primary_state": null,
    263 "primary_state_id": "CA 12345",
    264 "primary_state_income_tax": 1000,
    265 "pse_name": null,
    266 "pse_telephone_number": null,
    267 "recipient": {
    268 "account_number": "45678",
    269 "address": {
    270 "city": "SAN FRANCISCO",
    271 "country": "US",
    272 "postal_code": "94133",
    273 "region": "CA",
    274 "street": "2140 TAYLOR ST"
    275 },
    276 "facta_filing_requirement": "CHECKED",
    277 "name": "Josie Georgia Harrison",
    278 "second_tin_exists": "NOT CHECKED",
    279 "tin": "12-3456789"
    280 },
    281 "rents": 1000,
    282 "royalties": 1000,
    283 "secondary_state": null,
    284 "secondary_state_id": null,
    285 "secondary_state_income_tax": null,
    286 "section_409a_deferrals": 1000,
    287 "section_409a_income": 1000,
    288 "september_amount": null,
    289 "state_income": 1000,
    290 "state_income_lower": null,
    291 "state_tax_withheld": 1000,
    292 "state_tax_withheld_lower": null,
    293 "substitute_payments_in_lieu_of_dividends_or_interest": null,
    294 "tax_year": "2022",
    295 "transactions_reported": null
    296 }
    297 ]
    298 }
    299 ],
    300 "status": {
    301 "processing_status": "PROCESSING_COMPLETE"
    302 },
    303 "updated_at": "2022-08-02T21:14:54Z"
    304 }
    305 ],
    306 "request_id": "2pxQ59buGdsHRef"
    307}
    Was this helpful?
    =*=*=*=

    /credit/payroll_income/risk_signals/get

    Retrieve fraud insights for a user's manually uploaded document(s).

    /credit/payroll_income/risk_signals/get can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score.
    To trigger risk signal generation for an Item, call /link/token/create with parsing_config set to include risk_signals, or call /credit/payroll_income/parsing_config/update. Once risk signal generation has been triggered, /credit/payroll_income/risk_signals/get can be called at any time after the INCOME_VERIFICATION_RISK_SIGNALS webhook has been fired.
    /credit/payroll_income/risk_signals/get is offered as an add-on to Document Income and is billed separately. To request access to this endpoint, submit a product access request or contact your Plaid account manager.

    credit/payroll_income/risk_signals/get

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    stringstring
    The user token associated with the User data is being requested for.
    Select Language
    1const request: CreditPayrollIncomeRiskSignalsGetRequest = {
    2 user_token: 'user-sandbox-dd4c42bd-4a81-4089-8146-40671e81dd12',
    3};
    4try {
    5 const response = await client.creditPayrollIncomeRiskSignalsGet(request);
    6} catch (error) {
    7 // handle error
    8}
    credit/payroll_income/risk_signals/get

    Response fields and example

    items
    [object][object]
    Array of payroll items.
    item_id
    stringstring
    The item_id of the Item associated with this webhook, warning, or error
    verification_risk_signals
    [object][object]
    Array of payroll income document authenticity data retrieved for each of the user's accounts.
    account_id
    nullablestringnullable, string
    ID of the payroll provider account.
    single_document_risk_signals
    [object][object]
    Array of document metadata and associated risk signals per document
    document_reference
    objectobject
    Object containing metadata for the document
    document_id
    nullablestringnullable, string
    An identifier of the document referenced by the document metadata.
    document_name
    stringstring
    The name of the document
    status
    stringstring
    Status of a document for risk signal analysis

    Possible values: PROCESSING, PROCESSING_COMPLETE, PROCESSING_ERROR, PASSWORD_PROTECTED, VIRUS_DETECTED
    document_type
    nullablestringnullable, string
    Type of a document for risk signal analysis

    Possible values: UNKNOWN, BANK_STATEMENT, BENEFITS_STATEMENT, BUSINESS_FILING, CHECK, DRIVING_LICENSE, FINANCIAL_STATEMENT, INVOICE, PAYSLIP, SOCIAL_SECURITY_CARD, TAX_FORM, UTILITY_BILL
    file_type
    nullablestringnullable, string
    The file type for risk signal analysis

    Possible values: UNKNOWN, IMAGE_PDF, SCAN_OCR, TRUE_PDF, IMAGE, MIXED_PAGE_PDF, EMPTY_PDF, FLATTENED_PDF
    risk_signals
    [object][object]
    Array of attributes that indicate whether or not there is fraud risk with a document
    type
    nullablestringnullable, string
    The type of risk found in the risk signal check.

    Possible values: FONT, MASKING, OVERLAID_TEXT, EDITED_TEXT, TEXT_COMPRESSION, ADDRESS_FORMAT_ANOMALY, DATE_FORMAT_ANOMALY, FONT_ANOMALY, NAME_FORMAT_ANOMALY, PDF_ALIGNMENT, BRUSH_DETECTION, METADATA_DATES_OUTSIDE_WINDOW, METADATA_DATES_INSIDE_WINDOW, METADATA_DATES_MISSING, METADATA_DATES_MATCH, ADOBE_FONTS, ANNOTATION_DATES, ANNOTATIONS, EDITED_WHILE_SCANNED, EXIF_DATA_MODIFIED, HIGH_USER_ACCESS, MALFORMED_DATE, QPDF, TEXT_LAYER_TEXT, TOUCHUP_TEXT, FLATTENED_PDF, BLACKLISTS, COPYCAT_IMAGE, COPYCAT_TEXT, REJECTED_CUSTOMER, TEMPLATES, SOFTWARE_BLACKLIST
    field
    nullablestringnullable, string
    The field which the risk signal was computed for
    has_fraud_risk
    nullablebooleannullable, boolean
    A flag used to quickly identify if the signal indicates that this field is authentic or fraudulent
    institution_metadata
    nullableobjectnullable, object
    An object which contains additional metadata about the institution used to compute the verification attribute
    item_id
    stringstring
    The item_id of the Item associated with this webhook, warning, or error
    expected_value
    nullablestringnullable, string
    The expected value of the field, as seen on the document
    actual_value
    nullablestringnullable, string
    The derived value obtained in the risk signal calculation process for this field
    signal_description
    nullablestringnullable, string
    A human-readable explanation providing more detail into the particular risk signal
    page_number
    nullableintegernullable, integer
    The relevant page associated with the risk signal. If the risk signal is not associated with a specific page, the value will be 0.
    risk_summary
    objectobject
    A summary across all risk signals associated with a document
    risk_score
    nullablenumbernullable, number
    A number between 0 and 100, inclusive, where a score closer to 0 indicates a document is likely to be trustworthy and a score closer to 100 indicates a document is likely to be fraudulent. You can automatically reject documents with a high risk score, automatically accept documents with a low risk score, and manually review documents in between. We suggest starting with a threshold of 80 for auto-rejection and 20 for auto-acceptance. As you gather more data points on typical risk scores for your use case, you can tune these parameters to reduce the number of documents undergoing manual review.
    multi_document_risk_signals
    [object][object]
    Array of risk signals computed from a set of uploaded documents and the associated documents' metadata
    document_references
    [object][object]
    Array of objects containing attributes that could indicate if a document is fraudulent
    document_id
    nullablestringnullable, string
    An identifier of the document referenced by the document metadata.
    document_name
    stringstring
    The name of the document
    status
    stringstring
    Status of a document for risk signal analysis

    Possible values: PROCESSING, PROCESSING_COMPLETE, PROCESSING_ERROR, PASSWORD_PROTECTED, VIRUS_DETECTED
    document_type
    nullablestringnullable, string
    Type of a document for risk signal analysis

    Possible values: UNKNOWN, BANK_STATEMENT, BENEFITS_STATEMENT, BUSINESS_FILING, CHECK, DRIVING_LICENSE, FINANCIAL_STATEMENT, INVOICE, PAYSLIP, SOCIAL_SECURITY_CARD, TAX_FORM, UTILITY_BILL
    file_type
    nullablestringnullable, string
    The file type for risk signal analysis

    Possible values: UNKNOWN, IMAGE_PDF, SCAN_OCR, TRUE_PDF, IMAGE, MIXED_PAGE_PDF, EMPTY_PDF, FLATTENED_PDF
    risk_signals
    [object][object]
    Array of attributes that indicate whether or not there is fraud risk with a set of documents
    type
    nullablestringnullable, string
    The type of risk found in the risk signal check.

    Possible values: FONT, MASKING, OVERLAID_TEXT, EDITED_TEXT, TEXT_COMPRESSION, ADDRESS_FORMAT_ANOMALY, DATE_FORMAT_ANOMALY, FONT_ANOMALY, NAME_FORMAT_ANOMALY, PDF_ALIGNMENT, BRUSH_DETECTION, METADATA_DATES_OUTSIDE_WINDOW, METADATA_DATES_INSIDE_WINDOW, METADATA_DATES_MISSING, METADATA_DATES_MATCH, ADOBE_FONTS, ANNOTATION_DATES, ANNOTATIONS, EDITED_WHILE_SCANNED, EXIF_DATA_MODIFIED, HIGH_USER_ACCESS, MALFORMED_DATE, QPDF, TEXT_LAYER_TEXT, TOUCHUP_TEXT, FLATTENED_PDF, BLACKLISTS, COPYCAT_IMAGE, COPYCAT_TEXT, REJECTED_CUSTOMER, TEMPLATES, SOFTWARE_BLACKLIST
    field
    nullablestringnullable, string
    The field which the risk signal was computed for
    has_fraud_risk
    nullablebooleannullable, boolean
    A flag used to quickly identify if the signal indicates that this field is authentic or fraudulent
    institution_metadata
    nullableobjectnullable, object
    An object which contains additional metadata about the institution used to compute the verification attribute
    item_id
    stringstring
    The item_id of the Item associated with this webhook, warning, or error
    expected_value
    nullablestringnullable, string
    The expected value of the field, as seen on the document
    actual_value
    nullablestringnullable, string
    The derived value obtained in the risk signal calculation process for this field
    signal_description
    nullablestringnullable, string
    A human-readable explanation providing more detail into the particular risk signal
    page_number
    nullableintegernullable, integer
    The relevant page associated with the risk signal. If the risk signal is not associated with a specific page, the value will be 0.
    error
    nullableobjectnullable, object
    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
    stringstring
    A broad categorization of the error. Safe for programmatic use.

    Possible values: INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR
    error_code
    stringstring
    The particular error code. Safe for programmatic use.
    error_code_reason
    nullablestringnullable, string
    The specific reason for the error code. Currently, reasons are only supported 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
    stringstring
    A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
    display_message
    nullablestringnullable, string
    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
    stringstring
    A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
    causes
    arrayarray
    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.
    status
    nullableintegernullable, integer
    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
    stringstring
    The URL of a Plaid documentation page with more information about the error
    suggested_action
    nullablestringnullable, string
    Suggested steps for resolving the error
    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "items": [
    3 {
    4 "item_id": "testItemID",
    5 "verification_risk_signals": [
    6 {
    7 "account_id": null,
    8 "multi_document_risk_signals": [],
    9 "single_document_risk_signals": [
    10 {
    11 "document_reference": {
    12 "document_id": "lRepoQjxlJ1nz",
    13 "document_name": "Paystub.pdf",
    14 "file_type": "TRUE_PDF"
    15 },
    16 "risk_summary": {
    17 "risk_score": 70
    18 },
    19 "risk_signals": [
    20 {
    21 "actual_value": "0.00",
    22 "expected_value": "25.09",
    23 "field": null,
    24 "signal_description": null,
    25 "has_fraud_risk": true,
    26 "type": "MASKING",
    27 "page_number": 1,
    28 "institution_metadata": {
    29 "item_id": "testItemID"
    30 }
    31 },
    32 {
    33 "actual_value": null,
    34 "expected_value": null,
    35 "field": null,
    36 "signal_description": "Creation date and modification date do not match",
    37 "has_fraud_risk": true,
    38 "institution_metadata": null,
    39 "type": "METADATA_DATES_OUTSIDE_WINDOW",
    40 "page_number": 0
    41 }
    42 ]
    43 }
    44 ]
    45 }
    46 ]
    47 }
    48 ],
    49 "request_id": "LhQf0THi8SH1yJm"
    50}
    Was this helpful?
    =*=*=*=

    /credit/employment/get

    Retrieve a summary of an individual's employment information

    /credit/employment/get returns a list of items with employment information from a user's payroll provider that was verified by an end user.

    credit/employment/get

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    requiredstringrequired, string
    The user token associated with the User data is being requested for.
    Select Language
    1const request: CreditEmploymentGetRequest = {
    2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
    3};
    4
    5try {
    6 const response = await client.creditEmploymentGet(request);
    7} catch (error) {
    8 // handle error
    9}
    credit/employment/get

    Response fields and example

    items
    [object][object]
    Array of employment items.
    item_id
    stringstring
    The item_id of the Item associated with this webhook, warning, or error
    employments
    [object][object]
    account_id
    nullablestringnullable, string
    ID of the payroll provider account.
    status
    nullablestringnullable, string
    Current employment status.

    Possible values: ACTIVE, INACTIVE, null
    start_date
    nullablestringnullable, string
    Start of employment in ISO 8601 format (YYYY-MM-DD).

    Format: date
    end_date
    nullablestringnullable, string
    End of employment, if applicable. Provided in ISO 8601 format (YYY-MM-DD).

    Format: date
    employer
    objectobject
    An object containing employer data.
    name
    nullablestringnullable, string
    Name of employer.
    title
    nullablestringnullable, string
    Current title of employee.
    platform_ids
    objectobject
    The object containing a set of ids related to an employee.
    employee_id
    nullablestringnullable, string
    The ID of an employee as given by their employer.
    payroll_id
    nullablestringnullable, string
    The ID of an employee as given by their payroll.
    position_id
    nullablestringnullable, string
    The ID of the position of the employee.
    employee_type
    nullablestringnullable, string
    The type of employment for the individual. "FULL_TIME": A full-time employee. "PART_TIME": A part-time employee. "CONTRACTOR": An employee typically hired externally through a contracting group. "TEMPORARY": A temporary employee. "OTHER": The employee type is not one of the above defined types.

    Possible values: FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, OTHER, null
    last_paystub_date
    nullablestringnullable, string
    The date of the employee's most recent paystub in ISO 8601 format (YYYY-MM-DD).

    Format: date
    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "items": [
    3 {
    4 "item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6",
    5 "employments": [
    6 {
    7 "account_id": "GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9",
    8 "status": "ACTIVE",
    9 "start_date": "2020-01-01",
    10 "end_date": null,
    11 "employer": {
    12 "name": "Plaid Inc"
    13 },
    14 "title": "Software Engineer",
    15 "platform_ids": {
    16 "employee_id": "1234567",
    17 "position_id": "8888",
    18 "payroll_id": "1234567"
    19 },
    20 "employee_type": "FULL_TIME",
    21 "last_paystub_date": "2022-01-15"
    22 }
    23 ]
    24 }
    25 ],
    26 "request_id": "LhQf0THi8SH1yJm"
    27}
    Was this helpful?
    =*=*=*=

    /credit/payroll_income/parsing_config/update

    Update the parsing configuration for a document income verification

    /credit/payroll_income/parsing_config/update updates the parsing configuration for a document income verification.

    credit/payroll_income/parsing_config/update

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    requiredstringrequired, string
    The user token associated with the User data is being requested for.
    item_id
    stringstring
    The item_id of the Item associated with this webhook, warning, or error
    parsing_config
    required[string]required, [string]
    The types of analysis to enable for the document income verification session

    Possible values: ocr, risk_signals
    Select Language
    1const request: CreditPayrollIncomeParsingConfigUpdateRequest = {
    2 user_token: 'user-sandbox-dd4c42bd-4a81-4089-8146-40671e81dd12',
    3 parsing_config: ['fraud_risk'],
    4};
    5try {
    6 const response = await client.creditPayrollIncomeParsingConfigUpdate(request);
    7} catch (error) {
    8 // handle error
    9}
    credit/payroll_income/parsing_config/update

    Response fields and example

    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "LhQf0THi8SH1yJm"
    3}
    Was this helpful?
    =*=*=*=

    /credit/payroll_income/refresh

    Refresh a digital payroll income verification

    /credit/payroll_income/refresh refreshes a given digital payroll income verification.

    credit/payroll_income/refresh

    Request fields

    client_id
    stringstring
    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
    stringstring
    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.
    user_token
    requiredstringrequired, string
    The user token associated with the User data is being requested for.
    options
    objectobject
    An optional object for /credit/payroll_income/refresh request options.
    item_ids
    [string][string]
    An array of item_ids to be refreshed. Each item_id should uniquely identify a payroll income item. If this field is not provided, all item_ids associated with the user_token will be refreshed.
    webhook
    stringstring
    The URL where Plaid will send the payroll income refresh webhook.
    Select Language
    1const request: PayrollIncomeRefreshRequest = {
    2 client_user_id: 'c0e2c4ee-b763-4af5-cfe9-46a46bce883d',
    3};
    4
    5try {
    6 const response = await client.userCreate(request);
    7} catch (error) {
    8 // handle error
    9}
    credit/payroll_income/refresh

    Response fields and example

    request_id
    stringstring
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    verification_refresh_status
    stringstring
    The verification refresh status. One of the following:
    "USER_PRESENCE_REQUIRED" User presence is required to refresh an income verification. "SUCCESSFUL" The income verification refresh was successful. "NOT_FOUND" No new data was found after the income verification refresh.


    Possible values: USER_PRESENCE_REQUIRED, SUCCESSFUL, NOT_FOUND
    1{
    2 "request_id": "nTkbCH41HYmpbm5",
    3 "verification_refresh_status": "USER_PRESENCE_REQUIRED"
    4}
    Was this helpful?

    Webhooks

    Income webhooks are sent to indicate when an income verification or document fraud risk evaluation has finished processing.

    =*=*=*=

    INCOME_VERIFICATION

    Fired when the status of an income verification instance has changed. This webhook is fired for both the Document and Payroll Income flows, but not the Bank Income flow. It will typically take several minutes for this webhook to fire after the end user has uploaded their documents in the Document Income flow.

    Properties

    webhook_type
    stringstring
    "INCOME"
    webhook_code
    stringstring
    INCOME_VERIFICATION
    item_id
    stringstring
    The Item ID associated with the verification.
    user_id
    stringstring
    The Plaid user_id of the User associated with this webhook, warning, or error.
    verification_status
    stringstring
    VERIFICATION_STATUS_PROCESSING_COMPLETE: The income verification processing has completed. This indicates that the documents have been parsed successfully or that the documents were not parsable. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the /credit/payroll_income/get endpoint and check the document metadata to see which documents were successfully parsed.
    VERIFICATION_STATUS_PROCESSING_FAILED: An unexpected internal error occurred when attempting to process the verification documentation.
    VERIFICATION_STATUS_PENDING_APPROVAL: (deprecated) The income verification has been sent to the user for review.
    environment
    stringstring
    The Plaid environment the webhook was sent from

    Possible values: sandbox, production
    1{
    2 "webhook_type": "INCOME",
    3 "webhook_code": "INCOME_VERIFICATION",
    4 "item_id": "gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ",
    5 "user_id": "9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334",
    6 "verification_status": "VERIFICATION_STATUS_PROCESSING_COMPLETE",
    7 "environment": "production"
    8}
    Was this helpful?
    =*=*=*=

    INCOME_VERIFICATION_RISK_SIGNALS

    Fired when risk signals have been processed for documents uploaded via Document Income. It will typically take a minute or two for this webhook to fire after the end user has uploaded their documents in the Document Income flow. Once this webhook has fired, /credit/payroll_income/risk_signals/get may then be called to determine whether the documents were successfully processed and to retrieve risk data.

    Properties

    webhook_type
    stringstring
    "INCOME"
    webhook_code
    stringstring
    INCOME_VERIFICATION_RISK_SIGNALS
    item_id
    stringstring
    The Item ID associated with the verification.
    user_id
    stringstring
    The Plaid user_id of the User associated with this webhook, warning, or error.
    risk_signals_status
    stringstring
    RISK_SIGNALS_PROCESSING_COMPLETE: The income verification fraud detection processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the /credit/payroll_income/risk_signals/get endpoint to get all risk signal data.
    environment
    stringstring
    The Plaid environment the webhook was sent from

    Possible values: sandbox, production
    1{
    2 "webhook_type": "INCOME",
    3 "webhook_code": "INCOME_VERIFICATION_RISK_SIGNALS",
    4 "item_id": "gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ",
    5 "user_id": "9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334",
    6 "status": "RISK_SIGNALS_PROCESSING_COMPLETE",
    7 "environment": "production"
    8}
    Was this helpful?
    =*=*=*=

    BANK_INCOME_REFRESH_COMPLETE

    Fired when a refreshed bank income report has finished generating or failed to generate, triggered by calling /credit/bank_income/refresh. To get this webhook, subscribe via the Dashboard.

    Properties

    webhook_type
    stringstring
    INCOME
    webhook_code
    stringstring
    BANK_INCOME_REFRESH_COMPLETE
    user_id
    stringstring
    The user_id corresponding to the user the webhook has fired for.
    result
    stringstring
    The result of the bank income refresh report generation
    SUCCESS: The refreshed report was successfully generated and can be retrieved via /credit/bank_income/get.
    FAILURE: The refreshed report failed to be generated


    Possible values: SUCCESS, FAILURE
    environment
    stringstring
    The Plaid environment the webhook was sent from

    Possible values: sandbox, production
    1{
    2 "webhook_type": "INCOME",
    3 "webhook_code": "BANK_INCOME_REFRESH_COMPLETE",
    4 "user_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    5 "result": "SUCCESS",
    6 "environment": "production"
    7}
    Was this helpful?
    =*=*=*=

    INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED

    Fired when the attempt to refresh Payroll Income data for a user via /credit/payroll_income/refresh failed because the user must re-connect their payroll account.

    Properties

    webhook_type
    stringstring
    INCOME
    webhook_code
    stringstring
    INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED
    user_id
    stringstring
    The user_id corresponding to the user the webhook has fired for.
    environment
    stringstring
    The Plaid environment the webhook was sent from

    Possible values: sandbox, production
    1{
    2 "webhook_type": "INCOME",
    3 "webhook_code": "INCOME_VERIFICATION_REFRESH_RECONNECT_NEEDED",
    4 "user_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    5 "environment": "production"
    6}
    Was this helpful?
    Developer community
    GitHub
    GitHub
    Stack Overflow
    Stack Overflow
    YouTube
    YouTube
    Discord
    Discord