Choose products
Payroll
Retrieve identities, paystubs, and source documents from accounts applicants connect.
Banking
Use Banking Verifications for income and asset reports.
Document uploads
Receive uploaded files and retrieve OCR and authenticity results when enabled.
Payroll
Use the Data APIs when your screening process needs employer, employment status, pay, or income history fields from Identities and Paystubs. Add Payroll Documents when you also need source files. Before implementing, determine which fields and how much paystub history you need, whether source documents are required, and what to offer when the required data is unavailable.Connect payroll accounts
- Reuse the applicant’s existing user ID, or create a user and store the returned ID with the applicant record in your system.
- Create a user token and launch Link so the applicant can find their employer or payroll provider.
- Let the applicant connect additional accounts when income from more than one job is needed.
- Store each connected account ID and track its status independently.
onAccountConnected callback can advance the applicant to the next screen after a successful connection. Use webhooks to determine when payroll data is ready.
Retrieve payroll data
Subscribe to the webhooks that match the data you need:Do not wait only for the
paystubs.partially_synced webhook. Also handle full synchronization and set a timeout for requests that do not return the data you need. See Retrieving paystubs for the complete flow.Match employments
An account can contain paystubs from more than one job. Use theemployment field to match identities, paystubs, and payroll documents before applying an identity’s employment status or pay details to those records.
Retrieve all records and match them afterward when you need to retain unmatched paystubs. Use the employment filter when you only need records for one employment. See Employments for both approaches.
Banking
Use Banking Verifications when applicants will share banking information for an income or asset report.- If the applicant already has a user from payroll or document collection, reuse that user ID. Otherwise, create a user. Update any missing required banking details before ordering the verification.
- Order a verification with the required report type, such as
voifor income orvoaifor assets and income. - Create a banking session and launch the returned link using the banking SDK. Hosted banking invitations must be enabled by Argyle before use.
- Wait for the
verifications.updatedwebhook. When the verification reachescompletedorcompleted_with_errors, retrieve its report PDF or JSON.
Document uploads
Document uploads can be an initial option or a fallback when an applicant cannot connect a payroll account.- Document uploads only: Create a document-upload-only Flow. Select the document categories and required quantities in Console, save the Flow, and use its Flow ID when launching Link for the existing user.
- Document uploads as a fallback: In a payroll Flow, enable document uploads under Search and connect → Fallback experiences for applicants who cannot find their employer or payroll provider, or who provide incorrect credentials. See User uploads within Link for the setup instructions.
onCantFindItemClicked callback can launch a separate document-upload-only Flow. If you already collect files outside Link, upload them through the API.
Retrieve uploaded files through User Uploads. When OCR is enabled, listen for OCR completion and failure webhooks, then retrieve the results from metadata.ocr_documents[]. Authenticity results have their own webhook. See OCR and Authenticity for supported documents, fields, and processing errors.
Doc VOI is designed for mortgage income calculations. For tenant-screening document collection, OCR, and authenticity, use Document Uploads and the User Uploads API.
Common issues
- Unmatched paystubs: A
nullemployment does not mean the paystub is unusable. Keep it available for separate processing, without applying another employment’s status to it. - Missing partial-sync event: The event may not be sent when no relevant paystubs are available or retrieval completes in one pull. Handle full synchronization and your application’s timeout.
- Connection errors: Subscribe to the
accounts.updatedwebhook withconfig.include_resource = trueand inspect the account’s connection status and errors. Offer another connection attempt or a document upload when appropriate.