Skip to navigation

The paystub object

An extracted paystub, one pay period.

The retrieve endpoint returns this object on its own. The list endpoint returns one per document, wrapped as { "borrower_id": …, "paystubs": [ { "extracted_document_id", "document_category", "report_data" } ] }.

A paystub read from a Plaid payroll income response carries extraction_source plaid_payroll_income on its document; the same response’s annual statements arrive as W-2 objects. The employee’s Social Security number is only ever its last four digits, and a deposit account only its last four.

The documents behind this object carry document_category paystub or pay_stub. Money keys are JSON strings with exactly two decimals ("9200000.00", "-1250.50"). Date keys are YYYY-MM-DD, as each key’s Type column shows.

Fields

KeyTypePresent whenDescription
employer_namestring, nullableAlwaysThe employer’s name.
employer_addressstring, nullableAlwaysThe employer’s address on one line: street, city, state and postal code.
employee_namestring, nullableAlwaysThe employee’s name.
employee_addressstring, nullableAlwaysThe employee’s address on one line: street, city, state and postal code.
employee_ssn_last4string, nullableAlwaysThe last four digits of the employee’s social security number; the rest of the number is never served.
marital_statusstring, nullableAlwaysThe employee’s marital status for tax withholding, lower case as stated.
pay_datestring (YYYY-MM-DD), nullableAlwaysThe date the pay was issued, as YYYY-MM-DD.
period_startstring (YYYY-MM-DD), nullableAlwaysThe first day of the pay period, as YYYY-MM-DD.
period_endstring (YYYY-MM-DD), nullableAlwaysThe last day of the pay period, as YYYY-MM-DD.
pay_frequencystring, nullableAlwaysHow often the employee is paid: weekly, biweekly, semimonthly, monthly, quarterly, annual, or unknown when the frequency stated is none of these.
pay_basisstring, nullableAlwaysHow the employee is paid, for example salary or hourly, lower case as stated.
rate_of_pay_amountstring (money), nullableAlwaysThe employee’s rate of pay, in the unit rate_of_pay_basis names.
rate_of_pay_basisstring, nullableAlwaysThe unit of the rate of pay, for example annual or hourly, lower case as stated.
gross_currentstring (money), nullableAlwaysGross pay for the pay period.
gross_ytdstring (money), nullableAlwaysGross pay for the year to date.
net_currentstring (money), nullableAlwaysNet pay for the pay period.
net_ytdstring (money), nullableAlwaysNet pay for the year to date.
deductions_total_currentstring (money), nullableAlwaysTotal deductions for the pay period.
deductions_total_ytdstring (money), nullableAlwaysTotal deductions for the year to date.
hours_currentstring, nullableAlwaysHours worked in the pay period, as a decimal string.
earningsarray of PaystubLineAlwaysThe earnings rows the stub lists, one per kind of pay, in the order stated.
deductionsarray of PaystubLineAlwaysThe deductions rows the stub lists, one per tax or withholding, in the order stated.
distributionsarray of objectsAlwaysWhere the net pay was deposited, one row per receiving account.
statusalways EXTRACTEDAlwaysAlways EXTRACTED on a paystub the API returns.
signalsarray of objectsAlwaysNotes about the paystub; empty when there are none.

distributions[]

One deposit of the net pay.

KeyTypePresent whenDescription
bank_namestring, nullableAlwaysThe receiving bank’s name.
account_namestring, nullableAlwaysThe receiving account’s name.
account_typestring, nullableAlwaysThe receiving account’s type, for example checking or savings.
account_last4string, nullableAlwaysThe last four digits of the receiving account number; the rest of the number is never served.
amountstring (money), nullableAlwaysThe amount deposited to the account.

signals[]

A note about the paystub.

KeyTypePresent whenDescription
severitystring, one of info, warnAlwaysHow much weight the note carries: info or warn.
codestringAlwaysThe note’s identifier.
detailstringAlwaysThe note in words.

Shared objects

Object types that several keys above carry. The Type column names them.

PaystubLine

One earnings or deductions row of a paystub.

KeyTypePresent whenDescription
descriptionstring, nullableAlwaysThe row’s label as stated.
kindstring, nullableAlwaysThe row’s standard kind when the payroll provider states one, for example regular_pay, overtime or bonus; null otherwise.
hoursstring, nullableAlwaysHours for the row in the pay period, as a decimal string, when stated.
ratestring (money), nullableAlwaysThe hourly rate for the row, when stated.
current_amountstring (money), nullableAlwaysThe row’s amount for the pay period.
ytd_amountstring (money), nullableAlwaysThe row’s amount for the year to date.