Verify borrower employment and income for a mortgage application using the Plaid Income API
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
Initialize a Plaid Link session configured for the income verification product, specifying income_verification as the product and directing the borrower to connect their payroll provider or bank account
After the borrower completes Link, exchange the public_token for an access_token using the /item/public_token/exchange endpoint
Call /credit/employment/get to retrieve verified current employer name, employment status, start date, and position from the payroll provider data
Call /credit/payroll_income/get to retrieve pay frequency, gross income, and year-to-date figures directly from payroll system data
Call /credit/bank_income/get if payroll data is unavailable, to derive income estimates from up to 24 months of categorized bank transaction deposits
Submit the resulting Plaid income report to the LOS; for GSE-backed loans, confirm whether Plaid's Freddie Mac AIM or Fannie Mae DU Day 1 Certainty acceptance covers the income type before waiving document collection
Known gotchas
Payroll provider coverage is not universal; many small employers and gig platforms are not supported, forcing fallback to bank income which is treated differently by underwriting guidelines and may not qualify for rep-and-warranty relief
Plaid income data is consumer-permissioned and subject to FCRA if used for credit decisions; ensure your legal and compliance team has reviewed whether the use case triggers FCRA adverse action notice requirements
Plaid's Home Lending Report (asset-focused) and the Income API (employment-focused) are separate products with separate Link flows; do not assume a single Link session captures both—check whether your use case needs both products initialized in the same Link session
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?