Introduction
This guide covers the verifications workflow:- Create a user.
- Create a verification for your desired report type.
- Create a connection frontend session URL (payroll and banking only).
- Listen for lifecycle updates via
verifications.updated. - Retrieve the completed report PDF and JSON.
Supported report types
- Payroll: Generate
voie,voe,voie-mortgage, orvoe-mortgagereports. - Banking: Connect financial institutions to generate
voa,voai,voi, orvoe-transactionsreports. - Documents (Doc VOI): Upload paystubs and W-2s to generate a
doc-voi-mortgagereport.
Payroll Overview
Verify income and employment by allowing users to directly connect their employers and payroll providers.
Banking Overview
Verify assets and income by allowing users to directly connect their financial institutions.
Documents Overview
Receive Freddie Mac monthly income calculations from uploaded paystubs and W2s.- Upload paystubs and W-2s when borrower cannot connect via Argyle with a direct payroll login
- Generate an Argyle Doc VOI report with rep & warrant determination for income and employment

Workflow
Create a user
Create a user before ordering a verification. Include the following PII information in your request:| Field | Payroll verifications | Banking verifications | Document verifications |
|---|---|---|---|
first_name | Not required | Required | Required |
last_name | Not required | Required | Required |
ssn | Not required | Required | Required |
birth_date | Not required | Required | Not required |
address | Not required | Required | Not required |
phone_number | Not required | Required | Not required |
Example request: POST /v2/users
Example request: POST /v2/users
Order a verification
UsePOST /v2/verifications for all verification types (payroll, banking, and documents).
The shared request model works as follows:
useris required for all verification requests.report.typedetermines whether the verification is payroll-based, banking-based, or documents-based.employmentsis required for document verifications only.report.configurationis used for banking verifications only.loanandbillingcan be supplied for all verification types.
report.type = voie | voe | voie-mortgage | voe-mortgage
Example payroll request: POST /v2/verifications
Example payroll request: POST /v2/verifications
report.type = voa | voai | voi | voe-transactions
Example banking request: POST /v2/verifications
Example banking request: POST /v2/verifications
report.type = doc-voi-mortgage
Example document request: POST /v2/verifications
Example document request: POST /v2/verifications
Create a connection session
Skip this step for document verifications. For payroll and banking verifications, create a session viaPOST /v2/sessions and direct the user to the link URL in the response.
The verification used to create the session must be in an active state. Active means the verification is not completed and not cancelled. If no active verification exists, create a new verification first.
verification ID and accepts an optional configuration object:
| Configuration property | Applies to | Description |
|---|---|---|
configuration.experience | Banking only | Optional bank connection experience customization ID (provided by Argyle) |
configuration.single_use_url | Banking only | Expires after one successful connection |
configuration.redirect_url | Payroll and banking | Redirect URL after session completion |
configuration.flow_id | Payroll only | Optional payroll embedded connection experience customization ID |
configuration.language | Payroll only | Supported Link display language |
configuration.mobile_app | Payroll only | Set to true if embedding in a mobile application, otherwise false |
Example payroll request: POST /v2/sessions
Example payroll request: POST /v2/sessions
Example payroll response
Example payroll response
Example banking request: POST /v2/sessions
Example banking request: POST /v2/sessions
Example banking response
Example banking response
link returned in the response in an iframe or redirect the user to it so they can complete the payroll or banking connection experience.
Subscribe to webhooks
Subscribe to theverifications.updated webhook to track lifecycle events.
Set
include_resource = true so the webhook payload contains the full verification object inside data.resource.status.code updates are:
pending— verification createduser_session_started— user opened the payroll or banking experienceauthenticated— the user authenticated for payroll or banking and data aggregation is startingdocuments_processing— uploaded documents are currently processingcompleted— the report is ready for download
Download reports and JSON
When you receive averifications.updated webhook with status.code = completed, the report object in the webhook payload will contain the following download links:
file_url— PDF reportjson_url— report in JSON format
Example webhook
Example webhook
file_url and json_url require Argyle authentication headers.
Re-Verifications (Instant Refresh)
The refresh endpoint supports payroll and banking verifications. It reuses the user’s existing connection data and returns a new verification ID and report.
POST /v2/verifications/refresh to create a new payroll or banking verification without the user needing to reconnect, as long as a valid connection is still available.
In most cases, instant refresh verifications move quickly to either completed or cancelled.
Recovery options and error handling
Connections not completed
If the user closes the payroll or banking experience before completion, the verification usually remains inpending or user_session_started. In this case, create a new session URL for the existing verification with POST /v2/sessions.
User details missing or invalid
IfPOST /v2/verifications returns a 400 response for missing or invalid user details:
- Update the user with
PATCH /v2/users/{id}. - Retry
POST /v2/verifications.
Testing
Payroll test profiles
Use Argyle’s sample user credentials in Link to connect to:- Sandbox: any employer or payroll provider
- Production:
PlatformtronicorEmployertronic
| Homer Loanseeker | Suzi Builder | Andy Freddie | |
|---|---|---|---|
| homer_loanseeker@argyle.com | suzi_builder@argyle.com | andy_freddie@argyle.com | |
| Username | homer_loanseeker | suzi_builder | andy_freddie |
| Password | passgood | passgood | passgood |
| Verification code | 9081 | 9084 | 9088 |
| Phone number | (800) 900-0101 | (800) 900-0104 | (800) 900-0108 |
| Driver’s license # | D1230101 | D1230104 | D1230108 |
| Returns | 1 active employment | 2 active employments | 1 active and 1 terminated employment |
Banking test profiles
When you’re ready to begin testing, contact your Argyle Customer Success Manager to enable banking permissions.
- Sandbox: connect to
FinBank Profiles AorFinBank Profiles B - Production: connect to
FinBank BillableorFinBank Oauth Billable
| Username | Password | Account types | Supported products |
|---|---|---|---|
| profile_02 | profile_02 | Savings, IRA, 401k, Credit Card | voa, voi, voai |
| profile_03 | profile_03 | Checking, Personal Investment, 401K, Roth, Savings (Joint Account owners) | voa, voi, voai |
| profile_04 | profile_04 | Checking, 403B, 529, Rollover, Mortgage | voa, voi, voai |
| profile_05 | profile_05 | Checking, Investment, Stocks, UGMA, UTMA (Joint Account owners) | voa, voi, voai |
| profile_06 | profile_06 | Checking, Retirement, KEOGH, 457, Credit Card | voa, voi, voai |
| profile_07 | profile_07 | Checking, Stocks, CD, Investment Tax-Deferred, Employee Stock | voa, voi, voai |
| profile_08 | profile_08 | Checking, Primary Savings, Money Market, 401A, Line of credit | voa, voi, voai |
| profile_09 | profile_09 | Checking, Savings, Checking failed report. Errors include 102, 103, 185. | voa, voi, voai (failed report) |
| Sue Wealthy | River Paycheck | Alex Student | |
|---|---|---|---|
| Username | sue_wealthy | river_paycheck | alex_student |
| Password | profile_700 | profile_703 | profile_704 |
| Description | Sue is working as a Product Manager with a good steady income, a mortgage, and multiple investment accounts. She has a loan account and leases a car. Sue travels a few times a year. She has typical expenses like groceries, clothes, entertainment, gym membership, car expenses, and she has a pet. | River works in construction. He rents an apartment and has typical expenses like groceries, clothes, entertainment, household and car expenses. He has some savings but no investments, no loans and no credit cards. In some months, River’s expenses exceed his income. | Alex is working full-time with a good salary but she is still paying off her student loan. She makes regular monthly repayments, but she still has over $30,000 to pay off. Alex has typical expenses like groceries, clothes, entertainment, household, and car expenses. She has limited savings and she has started an investment account. |
Doc VOI test documents
When you’re ready to begin testing, contact your Argyle Customer Success Manager to enable document permissions.
employments value:
- Sandbox
- Production
GSE-eligible monthly income
GSE-eligible monthly income
Upload the following documents:
Not GSE-eligible monthly income
Not GSE-eligible monthly income
Upload the following documents:
Requires more data
Requires more data
Upload only the following document: