Income
API reference for Income endpoints and webhooks
Verify a user's income via payroll or bank account data.
Endpoints | |
---|---|
/credit/bank_income/get | Retrieve information from the bank accounts used for income verification |
/credit/payroll_income/get | Retrieve information from the pay stubs or tax forms used for income verification |
/credit/payroll_income/precheck | Check digital income verification eligibility and optimize conversion |
/credit/employment/get | (Beta) Retrieve employment information about the end user |
/user/create | Create a user for use with the income verification product |
/income/verification/precheck | (Deprecated) Check a user's eligibility for the income verification product |
/income/verification/paystubs/get | (Deprecated) Retrieve the information collected from the paystubs that were used to verify an end user's income |
/income/verification/documents/download | (Deprecated) Download a ZIP file containing the original documents used for income verification |
/income/verification/taxforms/get | (Deprecated) Retrieve the information from taxforms associated with the verification |
/employment/verification/get | (Deprecated) Retrieve employment information about the end user |
See also | |
---|---|
/sandbox/income/fire_webhook | Manually fire an Income webhook (Sandbox only) |
Webhooks | |
---|---|
INCOME_VERIFICATION | Webhook to notify that income verification has completed |
Endpoints
/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.
Request fields and example
client_id string Your Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. | |
secret string Your Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. | |
user_token string The user token associated with the User data is being requested for. | |
options object An optional object for /credit/bank_income/get request options.
|
1const request: CreditBankIncomeGetRequest = {2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',3 options: {4 count: 1,5 },6};78try {9 const response = await client.creditBankIncomeGet(request);10} catch (error) {11 // handle error12}
Response fields and example
bank_income [object]
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
request_id string 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 "bank_income": [4 {5 "bank_income_id": "abc123",6 "generated_time": "2022-01-31T22:47:53Z",7 "days_requested": 90,8 "items": [9 {10 "last_updated_time": "2022-01-31T22:47:53Z",11 "institution_id": "ins_0",12 "institution_name": "Plaid Bank",13 "item_id": "“eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6”",14 "bank_income_accounts": [15 {16 "account_id": "“GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9”",17 "mask": "8888",18 "name": "Plaid Checking Account",19 "official_name": "Plaid Checking Account",20 "type": "depository",21 "subtype": "checking",22 "owners": [23 {24 "addresses": [25 {26 "data": {27 "city": "Malakoff",28 "country": "US",29 "postal_code": "14236",30 "region": "NY",31 "street": "2992 Cameron Road"32 },33 "primary": true34 },35 {36 "data": {37 "city": "San Matias",38 "country": "US",39 "postal_code": "93405-2255",40 "region": "CA",41 "street": "2493 Leisure Lane"42 },43 "primary": false44 }45 ],46 "emails": [47 {48 "data": "accountholder0@example.com",49 "primary": true,50 "type": "primary"51 },52 {53 "data": "accountholder1@example.com",54 "primary": false,55 "type": "secondary"56 },57 {58 "data": "extraordinarily.long.email.username.123456@reallylonghostname.com",59 "primary": false,60 "type": "other"61 }62 ],63 "names": [64 "Alberta Bobbeth Charleson"65 ],66 "phone_numbers": [67 {68 "data": "1112223333",69 "primary": false,70 "type": "home"71 },72 {73 "data": "1112224444",74 "primary": false,75 "type": "work"76 },77 {78 "data": "1112225555",79 "primary": false,80 "type": "mobile1"81 }82 ]83 }84 ]85 }86 ],87 "bank_income_sources": [88 {89 "account_id": "GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9",90 "income_source_id": "“f17efbdd-caab-4278-8ece-963511cd3d51”",91 "income_description": "“PLAID_INC_DIRECT_DEP_PPD”",92 "income_category": "SALARY",93 "start_date": "2021-11-15",94 "end_date": "2022-01-15",95 "pay_frequency": "MONTHLY",96 "total_amount": 300,97 "transaction_count": 1,98 "historical_summary": [99 {100 "start_date": "2021-11-02",101 "end_date": "2021-11-30",102 "total_amount": 100,103 "iso_currency_code": "USD",104 "unofficial_currency_code": null,105 "transactions": [106 {107 "amount": -100,108 "date": "2021-11-15",109 "name": "“PLAID_INC_DIRECT_DEP_PPD”",110 "original_description": "PLAID_INC_DIRECT_DEP_PPD 123",111 "pending": false,112 "transaction_id": "6RddrWNwE1uM63Ex5GKLhzlBl76aAZfgzlQNm",113 "check_number": null,114 "iso_currency_code": "USD",115 "unofficial_currency_code": null116 }117 ]118 },119 {120 "start_date": "2021-12-01",121 "end_date": "2021-12-31",122 "total_amount": 100,123 "iso_currency_code": "USD",124 "unofficial_currency_code": null,125 "transactions": [126 {127 "amount": -100,128 "date": "2021-12-15",129 "name": "“PLAID_INC_DIRECT_DEP_PPD”",130 "original_description": "PLAID_INC_DIRECT_DEP_PPD 123",131 "pending": false,132 "transaction_id": "7BddrWNwE1uM63Ex5GKLhzlBl82aAZfgzlCBl",133 "check_number": null,134 "iso_currency_code": "USD",135 "unofficial_currency_code": null136 }137 ]138 },139 {140 "start_date": "2022-01-01",141 "end_date": "2021-01-31",142 "total_amount": 100,143 "iso_currency_code": "USD",144 "unofficial_currency_code": null,145 "transactions": [146 {147 "amount": -100,148 "date": "2022-01-31",149 "name": "“PLAID_INC_DIRECT_DEP_PPD”",150 "original_description": "PLAID_INC_DIRECT_DEP_PPD 123",151 "pending": false,152 "transaction_id": "9FddrWNwE1uM95Ex5GKLhzlBl76aAZfgzlNQr",153 "check_number": null,154 "iso_currency_code": "USD",155 "unofficial_currency_code": null156 }157 ]158 }159 ]160 }161 ]162 }163 ],164 "bank_income_summary": {165 "total_amount": 300,166 "iso_currency_code": "USD",167 "unofficial_currency_code": null,168 "start_date": "2021-11-15",169 "end_date": "2022-01-15",170 "income_sources_count": 1,171 "income_categories_count": 1,172 "income_transactions_count": 1,173 "historical_summary": [174 {175 "start_date": "2021-11-02",176 "end_date": "2021-11-30",177 "total_amount": 100,178 "iso_currency_code": "USD",179 "unofficial_currency_code": null,180 "transactions": [181 {182 "amount": -100,183 "date": "2021-11-15",184 "name": "“PLAID_INC_DIRECT_DEP_PPD”",185 "original_description": "PLAID_INC_DIRECT_DEP_PPD 123",186 "pending": false,187 "transaction_id": "6RddrWNwE1uM63Ex5GKLhzlBl76aAZfgzlQNm",188 "check_number": null,189 "iso_currency_code": "USD",190 "unofficial_currency_code": null191 }192 ]193 },194 {195 "start_date": "2021-12-01",196 "end_date": "2021-12-31",197 "total_amount": 100,198 "iso_currency_code": "USD",199 "unofficial_currency_code": null,200 "transactions": [201 {202 "amount": -100,203 "date": "2021-12-15",204 "name": "“PLAID_INC_DIRECT_DEP_PPD”",205 "original_description": "PLAID_INC_DIRECT_DEP_PPD 123",206 "pending": false,207 "transaction_id": "7BddrWNwE1uM63Ex5GKLhzlBl82aAZfgzlCBl",208 "check_number": null,209 "iso_currency_code": "USD",210 "unofficial_currency_code": null211 }212 ]213 },214 {215 "start_date": "2022-01-01",216 "end_date": "2021-01-31",217 "total_amount": 100,218 "iso_currency_code": "USD",219 "unofficial_currency_code": null,220 "transactions": [221 {222 "amount": -100,223 "date": "2022-01-31",224 "name": "“PLAID_INC_DIRECT_DEP_PPD”",225 "original_description": "PLAID_INC_DIRECT_DEP_PPD 123",226 "pending": false,227 "transaction_id": "9FddrWNwE1uM95Ex5GKLhzlBl76aAZfgzlNQr",228 "check_number": null,229 "iso_currency_code": "USD",230 "unofficial_currency_code": null231 }232 ]233 }234 ]235 },236 "warnings": []237 }238 ]239}
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/getRequest fields and example
client_id string Your Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. |
secret string Your Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. |
user_token string The user token associated with the User data is being requested for. |
1const request: CreditPayrollIncomeGetRequest = {2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',3};45try {6 const response = await client.creditPayrollIncomeGet(request);7} catch (error) {8 // handle error9}
Response fields and example
items [object] Array of payroll items.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error nullable object 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.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
income_report_token string A token to reference what payroll data was returned from this endpoint |
1{2 "items": [3 {4 "item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6",5 "accounts": [6 {7 "account_id": "GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9",8 "rate_of_pay": {9 "pay_amount": 100000,10 "pay_rate": "ANNUAL"11 },12 "pay_frequency": "BIWEEKLY"13 }14 ],15 "payroll_income": [16 {17 "account_id": "GeooLPBGDEunl54q7N3ZcyD5aLPLEai1nkzM9",18 "pay_stubs": [19 {20 "deductions": {21 "breakdown": [22 {23 "current_amount": 123.45,24 "description": "taxes",25 "iso_currency_code": "USD",26 "unofficial_currency_code": null,27 "ytd_amount": 246.928 }29 ],30 "total": {31 "current_amount": 123.45,32 "iso_currency_code": "USD",33 "unofficial_currency_code": null,34 "ytd_amount": 246.935 }36 },37 "document_metadata": {38 "document_type": "PAYSTUB",39 "name": "paystub.pdf",40 "status": "PROCESSING_COMPLETE",41 "download_url": null42 },43 "document_id": "2jkflanbd",44 "earnings": {45 "breakdown": [46 {47 "canonical_description": "REGULAR_PAY",48 "current_amount": 200.22,49 "description": "salary earned",50 "hours": 80,51 "iso_currency_code": "USD",52 "rate": null,53 "unofficial_currency_code": null,54 "ytd_amount": 400.4455 },56 {57 "canonical_description": "BONUS",58 "current_amount": 100,59 "description": "bonus earned",60 "hours": null,61 "iso_currency_code": "USD",62 "rate": null,63 "unofficial_currency_code": null,64 "ytd_amount": 10065 }66 ],67 "total": {68 "current_amount": 300.22,69 "hours": 160,70 "iso_currency_code": "USD",71 "unofficial_currency_code": null,72 "ytd_amount": 500.4473 }74 },75 "employee": {76 "address": {77 "city": "SAN FRANCISCO",78 "country": "US",79 "postal_code": "94133",80 "region": "CA",81 "street": "2140 TAYLOR ST"82 },83 "name": "ANNA CHARLESTON",84 "marital_status": "SINGLE",85 "taxpayer_id": {86 "id_type": "SSN",87 "id_mask": "3333"88 }89 },90 "employer": {91 "name": "PLAID INC",92 "address": {93 "city": "SAN FRANCISCO",94 "country": "US",95 "postal_code": "94111",96 "region": "CA",97 "street": "1098 HARRISON ST"98 }99 },100 "net_pay": {101 "current_amount": 123.34,102 "description": "TOTAL NET PAY",103 "iso_currency_code": "USD",104 "unofficial_currency_code": null,105 "ytd_amount": 253.54106 },107 "pay_period_details": {108 "distribution_breakdown": [109 {110 "account_name": "Big time checking",111 "bank_name": "bank of plaid",112 "current_amount": 176.77,113 "iso_currency_code": "USD",114 "mask": "1223",115 "type": "checking",116 "unofficial_currency_code": null117 }118 ],119 "end_date": "2020-12-15",120 "gross_earnings": 4500,121 "iso_currency_code": "USD",122 "pay_amount": 1490.21,123 "pay_date": "2020-12-15",124 "pay_frequency": "BIWEEKLY",125 "start_date": "2020-12-01",126 "unofficial_currency_code": null127 },128 "verification": {129 "verification_status": "VERIFIED",130 "verification_attributes": []131 }132 }133 ],134 "w2s": [135 {136 "allocated_tips": "1000",137 "box_12": [138 {139 "amount": "200",140 "code": "AA"141 }142 ],143 "box_9": "box9",144 "dependent_care_benefits": "1000",145 "document_metadata": {146 "document_type": "US_TAX_W2",147 "download_url": null,148 "name": "w_2.pdf",149 "status": "PROCESSING_COMPLETE"150 },151 "document_id": "1pkflebk4",152 "employee": {153 "address": {154 "city": "San Francisco",155 "country": "US",156 "postal_code": "94103",157 "region": "CA",158 "street": "1234 Grand St"159 },160 "name": "Josie Georgia Harrison",161 "marital_status": "SINGLE",162 "taxpayer_id": {163 "id_type": "SSN",164 "id_mask": "1234"165 }166 },167 "employer": {168 "address": {169 "city": "New York",170 "country": "US",171 "postal_code": "10010",172 "region": "NY",173 "street": "456 Main St"174 },175 "name": "Acme Inc"176 },177 "employer_id_number": "12-1234567",178 "federal_income_tax_withheld": "1000",179 "medicare_tax_withheld": "1000",180 "medicare_wages_and_tips": "1000",181 "nonqualified_plans": "1000",182 "other": "other",183 "retirement_plan": "CHECKED",184 "social_security_tax_withheld": "1000",185 "social_security_tips": "1000",186 "social_security_wages": "1000",187 "state_and_local_wages": [188 {189 "employer_state_id_number": "11111111111AAA",190 "local_income_tax": "200",191 "local_wages_and_tips": "200",192 "locality_name": "local",193 "state": "UT",194 "state_income_tax": "200",195 "state_wages_tips": "200"196 }197 ],198 "statutory_employee": "CHECKED",199 "tax_year": "2020",200 "third_party_sick_pay": "CHECKED",201 "wages_tips_other_comp": "1000"202 }203 ]204 }205 ],206 "status": {207 "processing_status": "PROCESSING_COMPLETE"208 }209 }210 ],211 "request_id": "2pxQ59buGdsHRef",212 "income_report_token": "income-sandbox-6f12f5bb-22dd-4855-b918-f47ec439198a"213}
Was this helpful?
/credit/payroll_income/precheck
Check income verification eligibility and optimize conversion
/credit/payroll_income/precheck
is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification. If the user is eligible for digital verification, that information will be associated with the user token, and in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.
While all request fields are optional, providing employer
data will increase the chance of receiving a useful result.
Request fields and example
client_id string Your Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. | |||||||||
secret string Your Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. | |||||||||
user_token string The user token associated with the User data is being requested for. | |||||||||
access_tokens [string] An array of access tokens corresponding to Items belonging to the user whose eligibility is being checked. Note that if the Items specified here are not already initialized with transactions , providing them in this field will cause these Items to be initialized with (and billed for) the Transactions product. | |||||||||
employer object Information about the end user's employer
| |||||||||
us_military_info object Data about military info in the income verification precheck.
|
1const request: CreditPayrollIncomePrecheckRequest = {2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',3 employer: {4 name: 'Elm Publishing',5 address: {6 city: 'New York',7 country: 'US',8 postal_code: '10012',9 region: 'NY',10 street: '123 Main Street',11 },12 tax_id: '12-3456789',13 url: 'https://elmpublishing.com',14 },15 us_military_info: {16 is_active_duty: true,17 branch: 'ARMY',18 },19};2021try {22 const response = await client.creditPayrollIncomePrecheck(request);23} catch (error) {24 // handle error25}
Response fields and example
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
confidence string The confidence that Plaid can support the user in the digital income verification flow instead of requiring a manual paystub upload. One of the following: "HIGH" : It is very likely that this user can use the digital income verification flow." LOW ": It is unlikely that this user can use the digital income verification flow."UNKNOWN" : It was not possible to determine if the user is supportable with the information passed.Possible values: HIGH , LOW , UNKNOWN |
1{2 "request_id": "lMjeOeu9X1VUh1F",3 "confidence": "HIGH"4}
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.
Request fields and example
client_id requiredstring 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 requiredstring 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 requiredstring The user token associated with the User data is being requested for. |
1const request: CreditEmploymentGetRequest = {2 user_token: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',3};45try {6 const response = await client.creditEmploymentGet(request);7} catch (error) {8 // handle error9}
Response fields and example
items [object] Array of employment items.
| |||||||||||||||
request_id string 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?
/user/create
Create user
This endpoint should be called for each of your end users before they begin a Plaid income flow. This provides you a single token to access all income data associated with the user. You should only create one per end user.
If you call the endpoint multiple times with the same clientuserid, 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 clientuserid.
Request fields and example
client_id string Your Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. |
secret string Your Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. |
client_user_id requiredstring A unique ID representing the end user. 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 . |
1const request: UserCreateRequest = {2 client_user_id: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',3};45try {6 const response = await client.userCreate(request);7} catch (error) {8 // handle error9}
Response fields and example
user_token string The user token associated with the User data is being requested for. |
user_id string The Plaid user_id of the User associated with this webhook, warning, or error. |
request_id string 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?
/income/verification/precheck
(Deprecated) Check digital income verification eligibility and optimize conversion
/income/verification/precheck
is an optional endpoint that can be called before initializing a Link session for income verification. It evaluates whether a given user is supportable by digital income verification and returns a precheck_id
that can be provided to /link/token/create
. If the user is eligible for digital verification, providing the precheck_id
in this way will generate a Link UI optimized for the end user and their specific employer. If the user cannot be confirmed as eligible, the precheck_id
can still be provided to /link/token/create
and the user can still use the income verification flow, but they may be required to manually upload a paystub to verify their income.
While all request fields are optional, providing either employer
or transactions_access_tokens
data will increase the chance of receiving a useful result.
This endpoint has been deprecated; new integrations should use /credit/payroll_income/precheck
instead.
Request fields and example
client_id string Your Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. | |||||||||
secret string Your Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. | |||||||||
user object Information about the user whose eligibility is being evaluated.
| |||||||||
employer object Information about the end user's employer
| |||||||||
transactions_access_token deprecatedstring The access token associated with the Item data is being requested for. | |||||||||
transactions_access_tokens [string] An array of access tokens corresponding to Items belonging to the user whose eligibility is being checked. Note that if the Items specified here are not already initialized with transactions , providing them in this field will cause these Items to be initialized with (and billed for) the Transactions product. | |||||||||
us_military_info object Data about military info in the income verification precheck.
|
1const request: IncomeVerificationPrecheckRequest = {2 user: {3 first_name: 'Anne',4 last_name: 'Charleston',5 email_address: 'acharleston@email.com',6 home_address: {7 street: '123 Main St.',8 city: 'San Francisco',9 region: 'CA',10 postal_code: '94053',11 country: 'US',12 },13 },14 employer: {15 name: 'Plaid Inc.',16 tax_id: '123-45-6709',17 address: {18 street: '234 Work St.',19 city: 'San Francisco',20 region: 'CA',21 postal_code: '94053',22 country: 'US',23 },24 url: 'http://www.employer.com',25 },26};27try {28 const response = await plaidClient.incomeVerificationPrecheck(request);29} catch (error) {30 // handle error31}
Response fields and example
precheck_id string ID of the precheck. Provide this value when calling /link/token/create in order to optimize Link conversion. |
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
confidence string The confidence that Plaid can support the user in the digital income verification flow instead of requiring a manual paystub upload. One of the following: "HIGH" : It is very likely that this user can use the digital income verification flow." LOW ": It is unlikely that this user can use the digital income verification flow."UNKNOWN" : It was not possible to determine if the user is supportable with the information passed.Possible values: HIGH , LOW , UNKNOWN |
1{2 "request_id": "lMjeOeu9X1VUh1F",3 "precheck_id": "n9elqYlvYm",4 "confidence": "HIGH"5}
Was this helpful?
/income/verification/paystubs/get
(Deprecated) Retrieve information from the paystubs used for income verification
/income/verification/paystubs/get
returns the information collected from the paystubs that were used to verify an end user's income. It can be called once the status of the verification has been set to VERIFICATION_STATUS_PROCESSING_COMPLETE
, as reported by the INCOME: verification_status
webhook. Attempting to call the endpoint before verification has been completed will result in an error.
This endpoint has been deprecated; new integrations should use /credit/payroll_income/get
instead.
Request fields and example
client_id string Your Plaid API client_id . The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body. |
secret string Your Plaid API secret . The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body. |
income_verification_id deprecatedstring The ID of the verification for which to get paystub information. |
access_token string The access token associated with the Item data is being requested for. |
1const request: IncomeVerificationPaystubsGetRequest = {2 client_id: clientId,3 secret: secret,4 access_token: accessToken,5};6try {7 const response = await plaidClient.incomeVerificationPaystubsGet(request);8} catch (error) {9 // handle error10}
Response fields and example
document_metadata [object] Metadata for an income document.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
paystubs [object]
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error nullable object 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.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "document_metadata": [3 {4 "doc_id": "2jkflanbd",5 "doc_type": "DOCUMENT_TYPE_PAYSTUB",6 "name": "paystub.pdf",7 "status": "DOCUMENT_STATUS_PROCESSING_COMPLETE"8 }9 ],10 "paystubs": [11 {12 "deductions": {13 "breakdown": [14 {15 "current_amount": 123.45,16 "description": "taxes",17 "iso_currency_code": "USD",18 "unofficial_currency_code": null,19 "ytd_amount": 246.920 }21 ],22 "total": {23 "current_amount": 123.45,24 "iso_currency_code": "USD",25 "unofficial_currency_code": null,26 "ytd_amount": 246.927 }28 },29 "doc_id": "2jkflanbd",30 "earnings": {31 "breakdown": [32 {33 "canonical_description": "REGULAR PAY",34 "current_amount": 200.22,35 "description": "salary earned",36 "hours": 80,37 "iso_currency_code": "USD",38 "rate": null,39 "unofficial_currency_code": null,40 "ytd_amount": 400.4441 },42 {43 "canonical_desription": "BONUS",44 "current_amount": 100,45 "description": "bonus earned",46 "hours": null,47 "iso_currency_code": "USD",48 "rate": null,49 "unofficial_currency_code": null,50 "ytd_amount": 10051 }52 ],53 "total": {54 "current_amount": 300.22,55 "hours": 160,56 "iso_currency_code": "USD",57 "unofficial_currency_code": null,58 "ytd_amount": 500.4459 }60 },61 "employee": {62 "address": {63 "city": "SAN FRANCISCO",64 "country": "US",65 "postal_code": "94133",66 "region": "CA",67 "street": "2140 TAYLOR ST"68 },69 "name": "ANNA CHARLESTON",70 "marital_status": "single",71 "taxpayer_id": {72 "id_type": "SSN",73 "id_mask": "3333"74 }75 },76 "employer": {77 "name": "PLAID INC",78 "address": {79 "city": "SAN FRANCISCO",80 "country": "US",81 "postal_code": "94111",82 "region": "CA",83 "street": "1098 HARRISON ST"84 }85 },86 "net_pay": {87 "current_amount": 123.34,88 "description": "TOTAL NET PAY",89 "iso_currency_code": "USD",90 "unofficial_currency_code": null,91 "ytd_amount": 253.5492 },93 "pay_period_details": {94 "check_amount": 1490.21,95 "distribution_breakdown": [96 {97 "account_name": "Big time checking",98 "bank_name": "bank of plaid",99 "current_amount": 176.77,100 "iso_currency_code": "USD",101 "mask": "1223",102 "type": "checking",103 "unofficial_currency_code": null104 }105 ],106 "end_date": "2020-12-15",107 "gross_earnings": 4500,108 "pay_date": "2020-12-15",109 "start_date": "2020-12-01",110 "pay_frequency": "PAY_FREQUENCY_BIWEEKLY"111 },112 "verification": {113 "verification_status": "PAYSTUB_VERIFICATION_STATUS_VERIFIED",114 "verification_attributes": []115 }116 }117