Banking Document Automation

Automate income verification

Unstract reads the pay stubs, W-2s, tax returns and bank statements an applicant sends, checks them against each other, works out monthly income the same way on every file, and records it in your loan origination system.

loan-44817 · 2 pay stubs, W-2, statementrunning
Documents4 from the applicant
Read & extract61 fields
Cross-check1 held for an underwriter
Record income$6,500 a month, recorded
09:02:11Upload from applicant · 2 pay stubs, W-2 2025, bank statement
09:02:19Read · 61 fields · lowest confidence 0.93 (pay stub 10/09, phone photo)
09:02:20Check · YTD annualizes to $78,000, W-2 2025 shows $66,300 · held
09:31:05Underwriter confirmed the raise with a written VOE · deposits match
09:31:06Recorded $6,500 a month base · 4 documents attached to the loan

Trusted by lending and onboarding teams around the globe

G2 Leader, Fall 2026G2 Best Usability, Summer 2026
Moody'sEndpointMedaxionPinpointConvrSmart ClerkCyberSoftThoughtFocusZluriIOA
The problem

Proof of income arrives as photos and PDFs, not as figures

The application states a monthly income. The pay stubs, the W-2 and the bank statements that prove it arrive by upload and email over several days, and a processor keys each figure into an income worksheet before an underwriter can look at the file.

PAY STUB 10/09OCTRATE LOCK 10/30

Pay stub figures keyed into a worksheet while the rate lock runs down

W-2 2025SCANNED 10/12

A W-2 shot on a phone, crooked, with a stamp over the wages

PAY STUB YTDANNUAL$78,000W-2 2025ANNUAL$66,300

Year-to-date pay that runs well ahead of last year's W-2

LOAN 44817 · CONDITIONSMONpay stubTUEW-2THUstatementMON⚑ 2nd stub

The second pay stub arriving a week after the first

INCOME WORKSHEETSLN-44817$6,500BASEDONELN-44817$6,500BASE⚑ 2ND

One file's income worked out twice, by two processors, two ways

Every figure has to be read, tied to the W-2 and the deposits, and turned into monthly income before the loan can move to a decision.

Unstract reads each document as it arrives, checks year-to-date pay, the employer and the deposits against each other, and works out monthly income by one rule. An underwriter sees only the files that don't add up.

Book a consultationHalf an hour, no charge. Bring a few loan files with their pay stubs and W-2s.
How it works

From the applicant's upload to the loan origination system, without the keying

Five steps, run on their own for every applicant. Parsing by LLMWhisperer, extraction by Document Studio, the whole run by Flow.

1 · Document intake

Pick up the pay stubs and W-2s wherever they land

Applicants send pay stubs, W-2s, offer letters, tax returns and bank statements through the borrower portal, by email or as phone photos to the loan officer. Each document is picked up where it arrives and filed against the right loan, one record per applicant, so the second pay stub joins the first even when it comes a week later.

Nobody chases a stub that already arrived in someone else's inbox.

APPLICANT · PORTALPay stub 09-25.pdfAPPLICANT · PHONEPay stub 10-09.jpgAPPLICANT · EMAILW-2 2025.pdfAPPLICANT · PORTALStatement Oct.pdfLOAN 44817pay stubs2W-21bank stmt1
2 · Read and extract

Read each pay stub, W-2 and statement for the figures that count

LLMWhisperer reads every document with its layout kept, so a pay stub photographed on a kitchen table or a bank statement exported from an app comes out as clean text. Document Studio then extracts the fields you defined: employer, pay period and frequency, gross and net pay, year-to-date earnings and deductions, W-2 wages, and every payroll deposit on the bank statement.

The same field definitions run on every payroll provider's stub layout, so nobody hunts for the YTD column.

PAY STUBemployerBrightline Co.✓pay_date10/09/2026✓frequencyBiweekly✓gross_pay$3,000.00✓net_pay$2,262.40✓ytd_regular$60,000.00✓confidence0.93phone photo
3 · Cross-check

Check year-to-date pay against the W-2 and the deposits

Year-to-date pay is checked against the pay period and against last year's W-2, the employer against the application, net pay against the payroll deposits on the bank statement, and every document date against your age limit. A file that clears every check moves on. One that fails stops in a review screen with the figure, the document and the mismatch side by side.

Set the hold rules once (a jump from the W-2 trend, a missing deposit, a new employer, a stub older than 30 days) and only those files wait for an underwriter.

LOAN 44817 · HELD⚑ ANNUAL INCOMEPAY STUB YTDW-2 2025DEPOSITS$78,000annualized · 10/09$66,300box 1 wages2 of 2✓match net $2,262.40EMPLOYERSTATEDCHANGEMatches app$6,500 a month+17.6% vs W-2CONFIRM RAISEASK FOR VOEOpen the page →
4 · Work out income

Work out monthly income by one rule, on every file

Monthly income is calculated from the pay frequency: biweekly pay times 26 over 12, weekly times 52 over 12, semi-monthly times two. Overtime and bonus are shown on their own lines with their history, so the underwriter decides whether they count. The result is set beside the income stated on the application.

Two processors no longer get two answers from the same pay stubs.

MONTHLY INCOME · LOAN 44817Pay frequencyBiweekly · 26 periods✓Base pay$3,000 × 26 ÷ 12 = $6,500✓Overtime YTD$1,200 · short history⚑BonusNone on stubs or W-2✓Stated income$6,500 a month · matches✓$6,500 a month, base pay
5 · Record the result

Record the income where your underwriters already work

The verified monthly income, the worksheet and the documents behind it go to your loan origination system, ICE Encompass, Dark Matter Empower or another. Leasing teams send the same result to Yardi or RealPage for tenant screening. Each decision an underwriter or leasing agent made along the way is recorded against the file.

The income on the loan file and the paper behind it never drift apart.

LOAN 44817$6,500 a month baseOvertime shown apartLOS✓ posted 09:31Income $6,500/moDOCS✓ attached4 documentsUNDERWRITER✓ VOE on fileRaise confirmed

Watch it work out income on your own loan files.

Bring ten recent files with their pay stubs, W-2s and bank statements. We run them live and show every figure, every check and every held file.

Supported documents & fields

Every paper an applicant sends to prove income

Documents

Fields captured

Employer name and addressEmployee namePay periodPay datePay frequencyHourly rate or salaryHours workedGross payNet payDeductionsYear-to-date earningsHire date
Connectors

Our agents are extroverts.

Cloud storage like S3, Google Drive, Dropbox and Box. Databases and warehouses like Snowflake, BigQuery, Postgres and SQL Server. Accounting, ERP and CRM systems like QuickBooks, Xero, SAP, NetSuite, Salesforce and HubSpot. Project trackers like Jira, Asana, ClickUp and Linear. And anything with an API.

100+
Connectors ready to go right out the box
Amazon S3
Google Drive
Dropbox
Box
Microsoft Azure
Google Cloud Storage
Snowflake
BigQuery
PostgreSQL
SQL Server
MySQL
Amazon Redshift
Oracle Database
SAP
QuickBooks
Xero
Sage
Odoo
HubSpot
Zoho
Jira
Asana
ClickUp
Linear
Getting live

Start with one loan product, then add the rest

Your team writes no code. The run is set up on the income documents your applicants already send and proven on one loan product before others join.

01

Book a consultation

We go through a handful of your recent loan files together: what applicants send, how your processors calculate income, and which files an underwriter has to see.

02

Built on your applicants' paperwork

The fields, the cross-checks, your income rules and the connection to your loan origination system are set up on real pay stubs, W-2s and bank statements from your own files.

03

Pilot on one loan product, then widen it

One product, such as conventional purchase loans, runs live first. When the income figures match what your underwriters would have signed off, the other products follow with the same hold rules.

Who it's for

Built for the people who sign off on a borrower's income

Mortgage lenders and loan officers

Income worked out within minutes of the borrower's upload, so a loan officer can talk numbers while the applicant is still on the phone.

Loan processors and underwriters

A finished income worksheet on every file, with the W-2 trend, the deposits and the employer already checked, and only the odd ones held.

Credit unions and community banks

Member files verified to the same standard as a large lender's, without adding a processor for every busy month.

Consumer and auto lenders

Proof of income for auto and personal loans checked in the time a dealer or applicant will wait, with deposits tied to net pay.

Outcomes

Income on the loan file in minutes, odd files caught on upload

<3 minfrom a pay stub upload to monthly income in your loan origination system
91%of applicants' income worked out without anyone keying a figure
54%fewer processor hours spent on income worksheets
2×faster from application to a conditional approval
We used it to extract complex funding packets from credit unions… Instead of manually scanning through lengthy 60–70 page PDFs, staff could now view all extracted details through a simple, user-friendly interface.
G2Puneeth KumarSenior Developer, Digital Align · Reviewed on G2
1 / 3
Security

Built for borrowers' pay and bank records

Pay stubs and bank statements show a borrower's salary, employer, account numbers, partial Social Security numbers and every payment they make. That is most of what someone needs to open credit in their name.

AICPA SOC 2ISO 27001GDPRHIPAA
  • Encrypted in transit and at rest.
  • Pay stubs, W-2s and statements never train a model.
  • Access by role, branch and loan product, with every underwriter's review and correction recorded against the loan file.
  • Retention you set: processed pay stubs and statements are deleted on the schedule your record-keeping policy names.
  • Self-hosted deployment for lenders whose examiners expect borrower data to stay inside their own environment.
See how borrower documents are handled in the Trust Center
FAQs

What lenders ask before they hand over their loan files

The usual income verification documents: pay stubs, W-2s, 1099s, offer letters, individual tax returns and IRS transcripts, bank statements, written verifications of employment, and benefit or pension award letters. Self-employed applicants' profit and loss statements read the same way, and you can add any other document your guidelines accept.

Yes. LLMWhisperer keeps the statement's layout, so a deposit stays on its own line with its date and amount, whether the statement came from the bank's site, an app export or a scan. Payroll deposits are picked out by payer and matched to the net pay on each pay stub.

Yes. Flow posts the monthly income, the worksheet and the documents to your loan origination system, such as ICE Encompass or Dark Matter Empower, as part of the run. Your processors keep working in the system they know.

Yes, for the parts a rule can decide. Base pay is annualized by pay frequency, overtime and bonus are shown on their own lines with their history, and several employers or a second job are each worked out separately. Where your guidelines leave a judgment, such as whether a new raise counts, the file stops for an underwriter.

It reads phone photos, crooked scans and screenshots as well as PDFs. Each value carries a confidence score, and any value below the threshold you set stops for a person with the photo beside it instead of reaching the loan file as a guess.

Employment verification services return payroll data when the employer reports to them. For every other applicant, someone still reads the pay stubs, W-2s and statements by hand. Unstract does that reading, and it can also set a returned verification of employment beside the documents so the two are compared.

The file stops in a review screen with the annualized year-to-date pay, last year's W-2 wages and the change between them side by side. The underwriter confirms a raise, asks for a written verification of employment or sends a condition to the applicant. The decision is recorded and every other file keeps moving.

Yes. Property managers check the same pay stubs and bank statements against a rent-to-income rule. The verified income goes to Yardi or RealPage, and an application that doesn't add up stops for a leasing agent instead of an underwriter.

Every pay stub and statement date is read and compared with the limit you set, 30 days for example. A stale document holds the file and names the date, so the processor asks for a newer one the same day.

Unstract is SOC 2, ISO 27001, GDPR and HIPAA compliant. Borrower documents are encrypted in transit and at rest, never used to train models, and deleted on your schedule. Self-hosted deployment keeps them inside your own environment.

A consultation and a set of recent loan files. We build the run around your income rules and your loan origination system, prove it on one loan product, and your processors check the results before it widens.

Next step

Bring ten recent loan files to the consultation

The pay stubs, W-2s and bank statements as applicants sent them, phone photos included. You watch each file's income worked out, and every held file shows the figure that stopped it.