Verify consumer income and employment using Plaid Document Income (pay stub and W-2 parsing)
domain: plaid.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
In-depth guide
Plaid webhook verification — the full failure-mode walkthrough related to plaid.com, checked against official docs, with linked verified routes.
Steps
Include 'income_verification' or the current Income product in products when calling /link/token/create; configure income_verification.income_source_types to include ['document'] for document-based verification
The user uploads pay stubs, W-2s, or 1099s through the Plaid Link document upload flow; Plaid's OCR pipeline parses the documents
Listen for the INCOME: INCOME_VERIFICATION webhook (webhook_type='INCOME', webhook_code='INCOME_VERIFICATION') to know when parsing is complete
Call /credit/payroll_income/get with client_id, secret, and user_token (or access_token depending on the integration pattern) to retrieve parsed income data including pay period gross pay, pay frequency, and employer details
For risk signals or fraud detection on uploaded documents, call /credit/payroll_income/risk_signals/get to check document authenticity signals
If the original PDF documents are needed, use the document_metadata.download_url from the /credit/payroll_income/get response to download the uploaded files
Known gotchas
Document income parsing is asynchronous; do not call /credit/payroll_income/get before receiving the INCOME_VERIFICATION webhook or the response will be empty
OCR accuracy varies by document quality; incomplete or low-resolution uploads may result in partial parsing — always validate critical fields against user-provided data
The Income product endpoints (/credit/payroll_income/get) are distinct from the older income_verification endpoints; use the current /credit/ namespace for new integrations
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?