Skip to main content

Eligibility Compass V1 API Reference

API Overview

Introduction

This document provides information on how to interact with the Nova Credit API to obtain Eligibility Compass reports.

The best way to get the report using Nova Credit's API is to have your applicants use NovaConnect, an easy-to-use and secure JavaScript module. Visit our Quickstart Guide for all details on how to get Nova Credit API credentials and integrate NovaConnect into your app or website today.

Framework and Protocol

The Nova Credit API is organized around REST. It uses resource-oriented URLs, HTTP response codes, and native HTTP functionality such as authentication and verbs. Note that our APIs are served over HTTPS; HTTP is not supported in production.

Delivery Formats

JSON is the default response format.

Endpoints

Our API host is api.novacredit.com. (See Quickstart Guide for environment information.)

EndpointDescription
GET /connect/accesstokenRetrieves an access token for an applicant's report
GET /connect/statusRetrieves the status of an applicant's report

These endpoints are used to retrieve information about an applicant's report, and are prefixed with /connect/affordable-housing-verification/v1/:

EndpointDescription
GET <prefix>/jsonRetrieves an applicant's report in JSON form
GET <prefix>/filesRetrieves a list of files associated with an application, even if there is no report
GET <prefix>/files/<filepath>Retrieves a file associated with an applicant's report

Visit our Quickstart Guide to see details on how to call these endpoints with examples.

Data Types & Formats

Data Types

TypeDescription
StringExtended character set, numbers and punctuation symbols. This includes non-ASCII language-specific characters such as ß, à, ç, é, and more (all encoded as utf8).
IntegerA rounded numerical value.
FloatA 64-bit floating decimal point format.
BoolA boolean-flag indicating true or false.
ObjectNested JSON level with more field-values.
ArrayA value or type array contains a zero or positive amount of elements. The elements can be of any type.

Data Formats

FormatDescription
Timestamp(String) UTC ISO 8601 data and time format. Full specs according to RFC 3339. Example: 1982-09-26T32:20:50.52Z
Full Date(String) UTC ISO 8601 date format. Full date format in YYYY-MM-DD. Example: 1982-09-26
Short Date(String) UTC ISO 8601 date format. Shorter format in YYYY-MM. Example: 1982-09
UUID(String) Universally Unique Identifier according to RFC 4122
URI(String) Uniform Resource Identifier according to RFC 3986
Full Version(String) Semantic versioning. http://semver.org/

Report Body

Generally, if there is no data to return in that "node" (aka JSON Object), it will not be returned.

Within each node, all fields will be returned. If there is no data to be returned for that field, it will be null.

Report Structure

The Eligibility Compass report has the following high level keys in the JSON:

  • meta {object}
  • product {object}
  • stated_employers {array}
  • identities {array}
  • employment {array}
  • assets {object}
  • income {object}
  • documents {array}
  • application_completeness_checks {array}

A report with only income verification completed could have this structure:

{
"meta": { ... },
"product": { ... },
"stated_employers": [ ... ],
"identities": [ ... ],
"employment": [ ... ],
"income": { ... },
"documents": [ ... ]
}

A report with only assets verification completed could have this structure:

{
"meta": { ... },
"product": { ... },
"stated_employers": [ ... ],
"identities": [ ... ],
"assets": { ... },
"documents": [ ... ],
"application_completeness_checks": [ ... ]
}

meta

Information specific to the report that's been returned.

FieldFormatNotes
public_tokenUUIDThe unique identifier of this report
user_argsString or nullThe input of the userArgs function in NovaConnect.
created_atTimestampThe date the consumer's data was retrieved
api_versionFull versionThe API version used to generate this report
external_idString or nullThe unique applicant identifier of the report from your system.
statusStringThe status for this report. If a report is available, the status will be SUCCESS
substatusString or nullThe substatus for the report. See substatuses.
nova_report_revisionString or nullThe revision name for this report. This field will be null if this report has never been revised.
consumer_idString or nullThe unique identifier of the consumer associated with this report. Only returned if NovaConnect Consumer Endpoints BETA feature is enabled.
consumer_external_idString or nullThe unique identifier from your system of the consumer associated with this report. Only returned if NovaConnect Consumer Endpoints BETA feature is enabled.

Example:

"meta": {
"public_token": "ff0886a4-f3ff-11e6-bc64-92361f002671",
"user_args": "235234224",
"created_at": "2024-01-13T11:07:46.51Z",
"api_version": "1.0.0",
"external_id": "d167c6bb-225c-461c-be63-f0bc3a1f62ea",
"status": "SUCCESS",
"substatus": null,
"nova_report_revision": null,
"consumer_id": "b281e335-9d19-4aa7-b559-e74d08a05cf4",
"consumer_external_id": "472cbdc9-cf31-4117-a095-e27e2db054e5"
}

product

Details of the product the applicant applied for. Please refer to the Client-Side Integration section in the Quickstart Guide.

FieldFormatNotes
nameStringProduct name
product_idUUIDThe unique identifier for the product
inquiry_typeStringSee product inquiry_type values

Example:

"product": {
"name": "Village Communities",
"product_id": "9cf178e0-760e-11e7-abf3-5da9d338ae4b",
"inquiry_type": "TENANT"
}

stated_employers

Each item represents a different employer or inflow source.

FieldFormatNotes
nameStringName of the stated employer
input_methodStringThe method by which the stated employer was provided. See input_method values
verification_sourcesArraySee verification_sources
skipped_reasonString or nullSee skipped_reason

Example of a stated employer that was verified by a payroll provider:

{
"name": "Uber",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"source_type": "PAYROLL",
"status": "SUCCESS",
"substatus": null
}
],
"skipped_reason": null
}

Example of a stated employer that was verified by documents uploaded by the applicant:

{
"name": "Walmart",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543001",
"source_type": "DOCUMENT",
"status": "SUCCESS",
"substatus": null
}
],
"skipped_reason": null
}

Example of a stated employer that was not verified and a reason was provided:

{
"name": "Alimony",
"input_method": "CONSUMER_INPUT",
"verification_sources": [],
"skipped_reason": "No longer receiving this income"
}

Example of a stated employer was attempted to be verified with a payroll provider but failed:

{
"name": "Social Security",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"source_type": "PAYROLL",
"status": "ERROR",
"substatus": null
}
],
"skipped_reason": null
},

Example of a stated employer that was not verified nor explicitly skipped by the user (journey abandoned and not completed before invite expiration):

{
"name": "Walmart",
"input_method": "CONSUMER_INPUT",
"verification_sources": [],
"skipped_reason": null
}

verification_sources

An array of verification sources that were attempted to verify the stated employer

FieldFormatNotes
source_idStringSee source_id
source_uuidUUIDThe unique identifier for the source instance
source_typeStringSee source_type
statusStringSee status
substatusStringSee substatus

identities

The applicant's personal identity information reported from each data source.

FieldFormatNotes
source_idStringThe human-readable identifier for the source that reported the identity information. See source_id
source_uuidUUID or nullThe unique identifier for the source instance
first_nameString or null
last_nameString or null
full_nameString or null
emailsArray of String
matchingObjectSee matching

Example snippet of identities a report with one bank source and one payroll source:

{
"identities": [
{
"source_id": "CONSUMER_INPUT",
"source_uuid": null,
"first_name": "Annie",
"last_name": "Affordable",
"full_name": "Annie Affordable",
"emails": ["annie@email.com"],
"matching": {
"full_name": {
"matched_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "60735ac6-0b22-4c2e-9090-a5eba621f0bc"
},
{
"source_id": "USA_FIN",
"source_uuid": "a41f19b0-4fa5-445c-a2b7-c048e45d4050"
}
],
"unmatched_sources": []
}
}
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "60735ac6-0b22-4c2e-9090-a5eba621f0bc",
"first_name": "Annie",
"last_name": "Affordable",
"full_name": "Annie Affordable",
"emails": ["annie@email.com"]
},
{
"source_id": "USA_FIN",
"source_uuid": "a41f19b0-4fa5-445c-a2b7-c048e45d4050",
"first_name": null,
"last_name": null,
"full_name": "Annie Affordable Andrew Affordable",
"emails": []
}
]
}

matching

Information about sources which have matching and conflicting values to a particular identity.

matching is returned in an object broken out by field, only certain fields are matched between sources. If only one identity item exists, there will be no matching field. Information about matching sources is stored wrapped in the MatchingField format, which indicates where each value was sourced from. The matching node will only be displayed on the identity with source_id of CONSUMER_INPUT.

FieldFormatNotes
full_nameObjectMatched and unmatched sources for the full name of the applicant

Example identities matching field object for case where there is a full name match:

{
"matching": {
"full_name": {
"matched_sources": [
{
"source_id": "USA_FIN",
"source_uuid": "5f19d40f-3c19-4a7d-ad7b-cc28dac40c4d"
}
],
"unmatched_sources": []
}
}
}

Example identities matching field object for case where there is no full name match:

{
"matching": {
"full_name": {
"matched_sources": [],
"unmatched_sources": [
{
"source_id": "USA_FIN",
"source_uuid": "c31bf8c7-c25b-4d2c-a4bc-61f79fd46e65"
}
]
}
}
}
MatchingField

An object containing information about which sources have a matching value for a field and which sources contain conflicting values for the same field. A source is an object containing a source_id and a source_uuid if there are multiple source records.

FieldFormatNotes
matched_sourcesArrayList of sources which have a value that matches this identity. See Sources
unmatched_sourcesArrayA list of sources which have a value that conflicts with this identity. See Sources
Example matching field object for case where there is a field match:

{
"matched_sources": [
{
"source_id": "USA_FIN",
"source_uuid": "5f19d40f-3c19-4a7d-ad7b-cc28dac40c4d"
}
],
"unmatched_sources": []
}

Example matching field object for case where there is no field match:

{
"matched_sources": [],
"unmatched_sources": [
{
"source_id": "USA_FIN",
"source_uuid": "c31bf8c7-c25b-4d2c-a4bc-61f79fd46e65"
}
]
}
Source

An object containing information about a source.

FieldFormatNotes
source_idStringThe identifier for the source that reported the identity information. See source_id
source_uuidUUID or nullThe unique identifier for the source instance

employment

Employment information specific to the applicant whose report is being accessed.

FieldFormatNotes
source_idStringThe identifier for the source that reported the employment information. See source_id
source_uuidUUIDThe unique identifier for the source instance
employer_nameString or nullName of the applicant's employer
employer_address_line_1String or nullAddress line 1 where the applicant's employer is located
employer_address_line_2String or nullAddress line 2 where the applicant's employer is located
employer_cityString or nullCity where the applicant's employer is located
employer_stateString or nullState where the applicant's employer is located
employment_typeString or nullType of employment. See employment type
employment_statusString or nullStatus of the applicant's employment. See employment status
job_titleString or nullTitle of the applicant's job
hire_dateFull Date or nullEmployee hire date as stated on the employment source
termination_dateFull Date or nullEmployment termination date. If employment_status is active will be null
base_pay_rateFloat or nullThe base pay rate of the employee
base_pay_periodString or nullThe period associated with the base pay for the employee. See base_pay_period table
matchingObjectSee matching

Example:

{
"employment": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"employer_name": "Microsoft",
"employer_address_line_1": "1 Microsoft Way",
"employer_address_line_2": null,
"employer_city": "Redmond",
"employer_state": "Washington",
"employment_type": "fulltime",
"employment_status": "active",
"job_title": "Product Manager",
"hire_date": "2017-04-19",
"termination_date": null,
"base_pay_period": "SALARY",
"base_pay_amount": 112000,
"matching": {
"employer_name": {
"matched_employer_name": [
{
"stated_employer": "Microsoft"
}
],
"unmatched_employer_name": []
},
"direct_deposit_accounts": {
"matched_direct_deposit_accounts": [
{
"matched_account_id": "36139831-0a91-4d1f-bc3e-edc908a978c6",
"truncated_account_number": "xxxx1234",
"institution_name": "Bank of America"
}
],
"unmatched_direct_deposit_accounts": []
}
}
}
]
}

matching

matching is returned as an object broken out by field. Each field includes matched and unmatched values, and may include where each value was sourced from.

FieldFormatNotes
employer_nameObjectMatched sources for an employer name
direct_deposit_accountsObjectMatched direct deposit accounts
{
"matching": {
"employer_name": { ... },
"direct_deposit_accounts": { ... },
}
}

matching.employer_name

Information about employment sources which have matching vs. conflicting values to a particular stated_employer.

Example employment matching field object for case where there is an employer name match:

{
"employer_name": {
"matched_employer_name": [
{
"stated_employer": "Microsoft"
}
],
"unmatched_employer_name": []
}
}

Example employment matching field object for case where there is no employer name match:

{
"employer_name": {
"matched_employer_name": [],
"unmatched_employer_name": [
{
"stated_employer": "Microsoft"
}
]
}
}

matching.direct_deposit_accounts

Information about direct deposit accounts which may or may not be matched between the payroll connection and the assets portion of the report.

This node is only returned if the report includes assets verification.

FieldFormatNotes
matched_direct_deposit_accountsArrayArray includes all direct deposit accounts for this payroll connection that we were able to match to accounts linked in the assets portion of the report
matched_direct_deposit_accounts.matched_account_idStringThe account_id for the matched account found within the assets array (will match to one of the assets.account_details.account_id numbers)
matched_direct_deposit_accounts.truncated_account_numberStringThe truncated account number for the direct deposit account, as provided by the payroll system
matched_direct_deposit_accounts.institution_nameStringThe institution name (i.e., bank) for the direct deposit account, as provided by the payroll system
unmatched_direct_deposit_accountsArrayArray includes all direct deposit accounts for this payroll connection that we were not able to match to accounts linked in the assets portion of the report
unmatched_direct_deposit_accounts.truncated_account_numberStringThe truncated account number for the unmatched direct deposit account, as provided by the payroll system
unmatched_direct_deposit_accounts.institution_nameStringThe institution name (i.e., bank) for the unmatched direct deposit account, as provided by the payroll system
{
"direct_deposit_accounts": {
"matched_direct_deposit_accounts": [
{
"matched_account_id": "36139831-0a91-4d1f-bc3e-edc908a978c6",
"truncated_account_number": "xxxx1234",
"institution_name": "Bank of America"
}
],
"unmatched_direct_deposit_accounts": [
{
"truncated_account_number": "xxxx5678",
"institution_name": "Chase"
}
]
}
}

assets

The assets object contains the following four fields:

{
"assets": {
"account_details": [ ... ],
"inflows": [ ... ],
"matched_income_sources": [ ... ],
"failed_connections": [ ... ],
}
}

account_details

An array with each instance containing details about an account. The array can have zero objects, and there is no upper bound.

FieldFormatNotes
source_idStringThe identifier for the source that reported the account details. See source_id
source_uuidUUIDThe unique identifier for the source instance.
account_idUUIDUnique identifier for the account
owner_full_nameString or nullFull name of the owner of the account
institution_nameString or nullName of institution such as Chase or Bank of America
account_nameStringName of the account within the bank
account_typeString or nullType of the account within the bank. See account types
date_first_transactionFull Date or nullDate the first transaction was made on the account
last_statement_end_dateFull Date or nullDate the last statement was ended on the account
truncated_account_numberString or nullIf available, the last four digits of the account number
responsibilityString or nullSee responsibility
addressesArraySee addresses
current_balanceFloat or nullCurrent balance of the account
six_months_average_balanceFloat or nullAverage balance for the last six months. If < 6 months of data is available, balance for period available will be returned (no extrapolation is applied). See date_first_transaction to determine if < 6 months of data is available
twelve_months_income_from_assetsFloat or nullHow much interest was collected in the last twelve months. If < 12 months of data is available, income from assets for period available will be returned (no extrapolation is applied). See date_first_transaction to determine if < 12 months of data is available

Example:

{
"account_details": [{
"source_id": "USA_FIN",
"source_uuid": "a7f3c89e-4b2d-4c8a-9f1e-6d3a8b7c4e92",
"account_id": "36139831-0a91-4d1f-bc3e-edc908a978c6",
"owner_full_name": "John Doe",
"institution_name": "CHASE",
"account_name": "INVESTMENT ACCOUNT",
"account_type": "INVESTMENT",
"date_first_transaction": "2015-05-01",
"truncated_account_number": "1234",
"responsibility": "INDIVIDUAL",
"addresses": [
{
"address_id": "80421b7e-7918-4963-b5fb-85055c2994b7",
"address": "225 Valencia St.",
"street": "Valencia St.",
"city": "San Francisco",
"zipcode": "94103",
"state": "CA"
}
],
"current_balance": 577.63,
"six_months_average_balance": 432.55,
"twelve_months_income_from_assets": 12.61
},
...
],
}

addresses

Addresses is a history of contact information attached to this account. Addresses are returned in an array, can have zero objects, and there is no upper bound.

FieldFormatNotes
address_idUUIDUnique identifier for the address
addressStringThe full mailing address of the account owner
streetStringThe street address where the account owner is located
cityStringThe city where the account owner is located
zipcodeStringThe zip code where the account owner is located
stateStringThe state where the account owner is located

Example:

{
"addresses": [{
"address_id": "80421b7e-7918-4963-b5fb-85055c2994b7",
"address": "225 Valencia St., San Francisco, CA 94103",
"street": "Valencia St.",
"city": "San Francisco",
"zipcode": "94103",
"state": "CA"
}],
},

inflows

An array with each element containing information about inflows which have been marked as income. An inflow is a group of transactions that represents a single income stream (e.g., from a single employer).

If no inflows marked as income were found, this array may be empty.

FieldFormatNotes
inflow_idStringA unique identifier for the inflow
account_idStringA unique identifier for the linked account in assets.account_details
descriptionStringA short description of the inflow
deposited_annual_incomeNumberSum of all deposits for the inflow over the last twelve months. If fewer than twelve months are available, the data from the available months will be annualized.
deposited_recent_incomeNumberSum of all deposits for the inflow over the last three months annualized

Example:

{
"inflows": [
{
"inflow_id": "3222a843-9768-406b-907c-b2f9a3dc669e",
"account_id": "36139831-0a91-4d1f-bc3e-edc908a978c6",
"description": "CLERICAL-TECHNIC PAYROLL PPD ID: ******7683",
"deposited_annual_income": 31403.93,
"deposited_recent_income": 34520.64
},
{
"inflow_id": "1a84f67b-0ed1-450a-a78e-0e101755cc09",
"account_id": "36139831-0a91-4d1f-bc3e-edc908a978c6",
"description": "IRS TREAS 310 TAX REF PPD ID: ******6170",
"deposited_annual_income": 3115,
"deposited_recent_income": 0
},
{
"inflow_id": "804636ca-8630-4609-93c0-5f6c07331a8e",
"account_id": "36139831-0a91-4d1f-bc3e-edc908a978c6",
"description": "STATEOFMICHIGAN PMT/REFUND PPD ID: 014-INCTAX",
"deposited_annual_income": 716,
"deposited_recent_income": 0
}
]
}

matched_income_sources

An array with each element containing information about any stated employer names provided by the applicant which were determined to match with an inflow.

If no matches between stated employer names and inflows could be found, this array may be empty.

Each stated employer may match with more than one inflow, but each inflow will only ever have a maximum of one stated employer match.

FieldFormatNotes
stated_employerStringThe name of the stated employer that was determined to match an inflow
matched_inflow_idStringThe unique identifier of the inflow that was determined to match the stated employer. See inflows

Example:

{
"matched_income_sources": [
{
"stated_employer": "Clerical Technic",
"matched_inflow_id": "3222a843-9768-406b-907c-b2f9a3dc669e"
}
]
}

failed_connections

If the consumer attempted to connect an assets source (bank or bank statements) but failed, this array will contain the details of the failed connection.

FieldFormatNotes
source_idStringThe identifier for the source that failed to connect. See source_id
source_uuidUUIDThe unique identifier for the source instance
source_typeStringThe type of the source that failed to connect. See source_type
institutionString or nullThe name of the institution that failed to connect
statusStringThe status of the failed connection. See status
substatusString or nullThe substatus of the failed connection. See substatus

Example:

{
"failed_connections": [
{
"source_id": "USA_FIN",
"source_uuid": "a7f3c89e-4b2d-4c8a-9f1e-6d3a8b7c4e92",
"source_type": "BANK_TRANSACTION",
"institution": "Chime",
"status": "ERROR",
"substatus": "MFA_FETCH_REQUIRED"
}
]
}

income

Income information specific to the applicant whose report is being accessed. Not included in reports if income information is not found. If included, the data will include up to 12 months of pay statements.

FieldFormatNotes
payrollArraySee payroll
{
"income": {
"payroll": [ ... ]
}
}

payroll

Income information derived from payroll data.

FieldFormatNotes
source_idStringThe identifier for the source that reported the payroll information. See source_id
source_uuidUUIDThe unique identifier for the source instance.
provider_nameStringName of the provider of payroll
provider_typeStringType of the payroll provider

Depending on the provider type, payroll data is returned in two formats. The following fields are returned when provider_type is not "GIG":

FieldFormatNotes
annual_gross_incomeFloatThe sum of the last 12 month gross income for the employee. If < 12 months of data is available, the information will be annualized
annual_net_incomeFloatThe sum of the last 12 months net income for the employee. If < 12 months of data is available, the information will be annualized
pay_frequencyString or nullCalculated pay frequencySee pay_frequency table
statementsArraySee statements
calendar_summaryArraySee calendar_summary

The following fields are returned when provider_type is "GIG":

FieldFormatNotes
gigs_annual_gross_earningsFloatEstimate of the gross annual gig earnings
gigs_annual_deposited_amountFloatEstimate of the annual gig deposited amount
gigs_annual_net_earningsFloatEstimate of the net annual gig earnings
gig_summariesArraySee gig_summaries

Example 1:

{
"income": {
...
"payroll": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "a7f3c89e-4b2d-4c8a-9f1e-6d3a8b7c4e92",
"provider_name": "ADP",
"provider_type": "EMPLOYER",
"annual_gross_income": 47500.38,
"annual_net_income": 30000.12,
"pay_frequency": "WEEKLY",
"gigs_annual_gross_earnings": null,
"gigs_annual_deposited_amount": null,
"gigs_annual_net_earnings": null,
"gig_summaries": [],
"statements": [
{
"pay_date": "2020-06-30",
"pay_period_start": "2025-06-16",
"pay_period_end": "2025-06-30",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 1225,
"gross_total_earnings_amount_ytd": 13625,
"net_total_earnings_amount_current": 840,
"net_total_earnings_amount_ytd": 8840
},
{
"pay_date": "2020-06-15",
"pay_period_start": "2025-06-01",
"pay_period_end": "2025-06-15",
"hours_worked": 38.5,
"gross_total_earnings_amount_current": 1175,
"gross_total_earnings_amount_ytd": 12400,
"net_total_earnings_amount_current": 800,
"net_total_earnings_amount_ytd": 8000
}
]
}
]
}
}

Example 2:

{
"income": {
...
"payroll": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "a7f3c89e-4b2d-4c8a-9f1e-6d3a8b7c4e92",
"provider_name": "Uber",
"provider_type": "GIG",
"estimated_gross_annual_income": null,
"estimated_net_annual_income": null,
"pay_frequency": null,
"statements": [],
"gigs_annual_gross_earnings": 13221.01,
"gigs_annual_deposited_amount": 11001.66,
"gigs_annual_net_earnings": 9555.05,
"gig_summaries": [
{
"pay_summary_start": "2025-03-15",
"pay_summary_end": "2025-03-21",
"gross_earnings": 969.56,
"deposited_amount": 859.09,
"net_earnings": 795.85,
"tips": 24.76
},
{
"pay_summary_start": "2025-03-08",
"pay_summary_end": "2025-03-14",
"gross_earnings": 541.62,
"deposited_amount": 486.72,
"net_earnings": 486.72,
"tips": 20.4
},
{
"pay_summary_start": "2025-03-01",
"pay_summary_end": "2025-03-07",
"gross_earnings": 423.57,
"deposited_amount": 372.1,
"net_earnings": 328.29,
"tips": 0
}
...
]
}
]
}
}
statements

A list of statement details

FieldFormatNotes
pay_dateFull DateDate the pay was issued
pay_period_startFull Date or nullDate this pay period started
pay_period_endFull Date or nullDate this pay period ended
hours_workedFloat or nullHours worked this pay period
gross_total_earnings_amount_currentFloat or nullGross total earnings from current pay period
gross_total_earnings_amount_ytdFloat or nullGross total earnings from year to date pay period
net_total_earnings_amount_currentFloat or nullNet total earnings from current pay period
net_total_earnings_amount_ytdFloat or nullNet total earnings from year to date pay period

Example of one statement:

{
"pay_date": "2025-02-01",
"pay_period_start": "2025-01-01",
"pay_period_end": "2025-01-31",
"hours_worked": 160.0,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 2254.32,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 2104.0
}
gig_summaries

A list of weekly gig summary details:

FieldFormatNotes
pay_summary_startFull DateInclusive date of the summary period start
pay_summary_endFull DateInclusive date of the summary period end
gross_earningsFloat or nullGross earnings for the summary week
deposited_amountFloat or nullDeposited amount for the summary week
net_earningsFloat or nullNet earnings for the summary week
tipsFloat or nullTotal tips for the summary week

Example of one statement:

{
"pay_summary_start": "2025-02-01",
"pay_summary_end": "2025-02-07",
"gross_earnings": 355.11,
"deposited_amount": 280.54,
"net_earnings": 269.92,
"tips": 34.44
}
calendar_summary
FieldFormatNotes
yearStringThe year associated with the calendar income. This will start in the most recent year + extend back to the earliest year of data.
calendar_year_gross_incomeFloat or nullThe sum of the gross income received within that calendar year. If less than 12 months of data is available, the data will not be annualized.
calendar_year_net_incomeFloat or nullThe sum of the net income received within that calendar year. If less than 12 months of data is available, the data will not be annualized.

Example of summary:

{
"income": {
"payroll": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"provider_name": "Walmart, Inc.",
"pay_frequency": "WEEKLY",
"provider_type": "EMPLOYER",
"annual_gross_income": 12340,
"annual_net_income": 8233,
"calendar_summary": [
{
"year": "2025",
"calendar_year_gross_income": 10296,
"calendar_year_net_income": 7696,
},
{
"year": "2024",
"calendar_year_gross_income": 9260,
"calendar_year_net_income": 7134,
},
{
"year": "2023",
"calendar_year_gross_income": 1245,
"calendar_year_net_income": 843,
},
]
"gigs_annual_gross_earnings": null,
"gigs_annual_deposited_amount": null,
"gigs_annual_net_earnings": null,
"statements": [
{
"pay_date": "2025-08-25",
"pay_period_start": "2025-08-18",
"pay_period_end": "2025-08-24",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 10296,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7696
},
{
"pay_date": "2025-08-18",
"pay_period_start": "2025-08-11",
"pay_period_end": "2025-08-17",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 10098,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7548
}
]
},
],
}
}

documents

This array will contain items if:

  • the applicant has uploaded documents for income verification
  • the applicant has uploaded bank statements for asset verification
  • the applicant has connected a payroll account for income verification that is not a gig connection
FieldFormatNotes
source_idStringThe identifier for the source that reported the income information. See source_id
source_uuidUUIDThe unique identifier for the source instance.
document_typeStringThe type of document uploaded. See document_type
document_idUUIDThe identifier for the document.
available_dateFull Date or nullThe date the document was made available to the end user.
source_filepathStringThe file path used for downloading an applicant's document.
irregularity_detectionObjectSee irregularity_detection

Example where an applicant has uploaded one document and one bank statement:

{
"documents": [
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "DOCUMENT",
"document_id": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"available_date": null,
"source_filepath": "65bf7135-4eb8-4342-a7c2-0380322b3d59/a3bb189e-8bf9-3888-9912-ace4e6543002.pdf"
},
{
"source_id": "OCROLUS",
"source_uuid": "550e8400-e29b-41d4-a716-446655440000",
"document_type": "BANK_STATEMENT",
"document_id": "314986b3-6ae3-48ef-98ae-ace06900d6f8",
"available_date": null,
"source_filepath": "65bf7135-4eb8-4342-a7c2-0380322b3d59/550e8400-e29b-41d4-a716-446655440000.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
}
]
}

Payroll connection documents

For each payroll connection used for income verification, the documents node will have up to 15 items (paystubs). These items will have the same source_uuid, "source_id":"USA_ARGYLE", but a distinct document_id. Note that if it is a gig connection there will be 0 items.

In this example, the applicant has connected two different payroll accounts:

{
"stated_employers": [
{
"name": "Pet Food Express",
"input_method": "CONSUMER_INPUT",
"verification_sources": [{
"source_id": "USA_ARGYLE",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"source_type": "PAYROLL", // note the source_type is PAYROLL
"status": "SUCCESS",
"substatus": null
}],
"skipped_reason": null
},
{
"name": "Pet Club",
"input_method": "CONSUMER_INPUT",
"verification_sources": [{
"source_id": "USA_ARGYLE",
"source_uuid": "3f2504e0-4f89-11d3-9a0c-0305e82c330",
"source_type": "PAYROLL", // note the source_type is PAYROLL
"status": "SUCCESS",
"substatus": null
}],
"skipped_reason": null
}
],
"employment": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"employer_name": "Pet Food Express",
...
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
"employer_name": "Pet Club",
...
},
],
"documents": [
// First connection has 1 paystub
{
"source_id": "USA_ARGYLE",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "PAYSTUB",
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"available_date": "2025-06-30",
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/550e8400-e29b-41d4-a716-446655440000.pdf"
},
// Second connection has 2 paystubs
{
"source_id": "USA_ARGYLE",
"source_uuid": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
"document_type": "PAYSTUB",
"document_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"available_date": "2025-06-23",
"source_filepath": "3f2504e0-4f89-11d3-9a0c-0305e82c3301/a1b2c3d4-e5f6-7890-abcd-ef1234567890.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
"document_type": "PAYSTUB",
"document_id": "8b3e1f2a-4c5d-6e7f-8901-23456789abcd",
"available_date": "2025-06-16",
"source_filepath": "3f2504e0-4f89-11d3-9a0c-0305e82c3301/8b3e1f2a-4c5d-6e7f-8901-23456789abcd.pdf"
}
]
}

Benefit connection documents

For each benefit connection used for income verification, the documents node will have 1 item (benefit letter). This item will have "source_id":"USA_ARGYLE".

In this example, the applicant has connected a single benefit account:

{
"stated_employers": [
{
"name": "Social Security",
"input_method": "CONSUMER_INPUT",
"verification_sources": [{
"source_id": "USA_ARGYLE",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"source_type": "PAYROLL", // note the source_type is PAYROLL
"status": "SUCCESS",
"substatus": null
}],
"skipped_reason": null
}
],
"employment": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"employer_name": "Social Security",
...
},
],
"documents": [
// Connection has 1 benefit letter
{
"source_id": "USA_ARGYLE",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "BENEFIT",
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"available_date": "2025-03-01",
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/550e8400-e29b-41d4-a716-446655440000.pdf"
}
]
}

Bank statement upload documents

During asset verification, the applicant has the option to upload bank statements for an account if they cannot connect it directly. For each account, the documents node will have exactly 6 items (separate bank statements). These items will have the same source_uuid, "source_id":"OCROLUS", but a distinct document_id.

In this example, the applicant has uploaded bank statements for one bank account:

{
"assets": {
"account_details": [{
"source_id": "OCROLUS",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"institution_name": "Citizens Bank",
...

}]
},
"documents": [
// Connection has 6 bank statements
{
"source_id": "OCROLUS",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "BANK_STATEMENT",
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/550e8400-e29b-41d4-a716-446655440000.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "BANK_STATEMENT",
"document_id": "e7f6a5b4-c3d2-e1f0-9a8b-7c6d5e4f3a2b",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/e7f6a5b4-c3d2-e1f0-9a8b-7c6d5e4f3a2b.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "BANK_STATEMENT",
"document_id": "5f4e3d2c-1b0a-9988-7766-554433221100",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/5f4e3d2c-1b0a-9988-7766-554433221100.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "BANK_STATEMENT",
"document_id": "9a8c7d6-e5f4-3021-9876-543210fedcba",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/9a8c7d6-e5f4-3021-9876-543210fedcba.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "BANK_STATEMENT",
"document_id": "2d1c0b9a-8978-6756-4534-231209876543",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/2d1c0b9a-8978-6756-4534-231209876543.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "BANK_STATEMENT",
"document_id": "7e6d5c4b-3a29-1807-6543-21098fedcba9",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/7e6d5c4b-3a29-1807-6543-21098fedcba9.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
}
]
}

Generic document upload documents

If the applicant has uploaded documents for income verification, the documents node will have up to 3 items (separate documents) from the same income source. These items will have the same source_uuid, "source_id":"NOVA_DOCUMENT", but a distinct document_id.

In this example, the applicant has uploaded two documents for one income source:

{
"stated_employers": [
{
"name": "Pet Food Express",
"input_method": "NOVA_DOCUMENT",
"verification_sources": [
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"source_type": "DOCUMENT", // note the source_type is DOCUMENT
"status": "SUCCESS",
"substatus": null
}
],
"skipped_reason": null
}
],
"documents": [
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "DOCUMENT",
"document_id": "8b3e1f2a-4c5d-6e7f-8901-23456789abcd",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/8b3e1f2a-4c5d-6e7f-8901-23456789abcd.pdf"
},
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "a3bb189e-8bf9-3888-9912-ace4e6543002",
"document_type": "DOCUMENT",
"document_id": "1a2b3c4d-5e6f-7890-abcd-ef0123456789",
"available_date": null,
"source_filepath": "a3bb189e-8bf9-3888-9912-ace4e6543002/1a2b3c4d-5e6f-7890-abcd-ef0123456789.pdf"
}
]
}

irregularity_detection

This node will contain details about any irregularities detected on bank statements.

FieldFormatNotes
statusStringSee irregularity_detection status values
reasonsArraySee irregularity_detection reasons values
file_typeString or nullSee irregularity_detection file_types values
genuine_pdfBoolean or nullTrue only if document is exceptionally genuine, not provided otherwise
versionStringThe version of the fraud algorithm used to generate the results

Example irregularity_detection field with status NOT_DETECTED and the genuine_pdf flag:

{
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.0"
}
}

Example irregularity_detection field with status REVIEW:

{
"irregularity_detection": {
"status": "REVIEW",
"reasons": [
{
"reason": "Edited Content Detected",
"severity": "Low Risk"
}
],
"file_type": "pdf",
"genuine_pdf": null,
"version": "3.0"
}
}

Example irregularity_detection field with status DETECTED and multiple reasons:

{
"irregularity_detection": {
"status": "DETECTED",
"reasons": [
{
"reason": "Edited Content Detected",
"severity": "High Risk"
},
{
"reason": "Unusual Document Source Detected",
"severity": "Medium Risk"
}
],
"file_type": "pdf",
"genuine_pdf": null,
"version": "3.0"
}
}
irregularity detection reasons []

Specific reasons supporting the provided irregularity_detection status.

FieldFormatNotes
reasonStringSee the irregularity_detection_reason table
severityStringSee the irregularity_detection_severity table

application_completeness_checks

Nova checks information across the report to check for specific inconsistencies or indicators that the compliance officers will need to follow up with applicants for additional information.

FieldFormatNotes
checkStringSee check
valueBooleanRepresents if the check has passed or failed

Example:

  "application_completeness_checks": [
{
"check": "MISSING_DEPOSIT_ACCOUNTS_DETECTED",
"value": false
},
{
"check": "PRIMARY_ACCOUNT_NOT_DETECTED",
"value": false
},
{
"check": "VENMO_TRANSACTIONS_DETECTED",
"value": true
},
{
"check": "CASHAPP_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "ZELLE_TRANSACTIONS_DETECTED",
"value": true
},
{
"check": "PAYPAL_TRANSACTIONS_DETECTED",
"value": true
},
{
"check": "SKIPPED_INCOME",
"value": true
}
]

Tables

account_type

Values of the account_type field.

Value
CASH_EQUIVALENT
CREDIT_CARD
INVESTMENT
INSTALLMENT
MORTGAGE
OTHER

base_pay_period

Value
HOURLY
DAILY
WEEKLY
BI_WEEKLY
SEMI_MONTHLY
MONTHLY
ANNUAL
SALARY

check

ValueDescription
MISSING_DEPOSIT_ACCOUNTS_DETECTEDFlags if there are any direct deposit accounts found in payroll data that were not connected via bank connection
PRIMARY_ACCOUNT_NOT_DETECTEDNo primary account was detected
VENMO_TRANSACTIONS_DETECTEDAny transactions detected from Venmo in the last 12 months, per keyword searching
CASHAPP_TRANSACTIONS_DETECTEDAny transactions detected from CashApp in the last 12 months, per keyword searching
ZELLE_TRANSACTIONS_DETECTEDAny transactions detected from Zelle in the last 12 months, per keyword searching
PAYPAL_TRANSACTIONS_DETECTEDAny transactions detected from PayPal in the last 12 months, per keyword searching
SKIPPED_INCOMEConsumer skipped verification of any income streams

document_type

ValueDescription
BANK_STATEMENTA bank statement uploaded by the applicant for asset verification
BENEFITA benefit letter pulled from a benefits provider for income verification
DOCUMENTA document uploaded by the applicant for income verification
PAYSTUBA paystub pulled from a payroll provider for income verification

employment_status

Values of the employment[].employment_status field.

Value
active
terminated

employment_type

Values of the employment[].employment_type field.

Value
contract
fulltime
parttime

input_method

ValueDescription
CONSUMER_INPUTThe stated employer was provided by the applicant
DETECTEDThe stated employer was detected by Nova Credit

inquiry_type

The human-readable labels are shown when creating and viewing products in the Nova Credit Dashboard. The value column shows the values that are returned in the JSON.

Human-readable labelValue
MonitoringMONITORING
Credit CardCREDIT_CARD
Vehicle AutoVEHICLE_AUTO
Vehicle OtherVEHICLE_OTHER
MortgageMORTGAGE
PersonalPERSONAL
StudentSTUDENT
UtilityUTILITY
CommercialCOMMERCIAL
ConsumerCONSUMER
Tenant ScreeningTENANT
OtherOTHER

irregularity_detection file_type

Values of the file_type field in the irregularity_detection node.

Value
pdf
image
unsupported

irregularity_detection reason

Values of the reason field in the irregularity_detection.reasons node.

Value
Serial Fraud Detected
Edited Content Detected
Suspicious Modification Detected
Browser/Os Processed
No Textual Document Detected
Unusual Document Source Detected
Screenshot Detected
PDF/Image Converted
Suspicious Format Detected
Editing Software Detected
Others

irregularity_detection severity

Values of the severity field in the irregularity_detection.reasons node.

Value
High Risk
Medium Risk
Low Risk

irregularity_detection status

Values of the status field in the irregularity_detection node.

ValueDescription
NOT_DETECTEDNo irregularities were detected on the file
DETECTEDIrregularities were detected on the file
REVIEWMinor fraud indications detected, manual review recommended

pay_frequency

Values of the pay_frequency field.

Value
null
WEEKLY
BI_WEEKLY
SEMI_MONTHLY
MONTHLY
QUARTERLY

provider_type

Values of the provider_type field.

Value
null
EMPLOYER
GIG
BENEFITS
PLATFORM

responsibility

Values of the responsibility field.

ValueDescription
INDIVIDUALThe individual is solely responsible for the account
JOINTThe individual is jointly responsible for the account

skipped_reason

If the inflow was not verified, the reason the applicant provided for skipping.

ValueDescription
"No longer receiving this income"The applicant has chosen this value from a dropdown
"Duplicate income"The applicant has chosen this value from a dropdown
"Incorrect or unknown income source"The applicant has chosen this value from a dropdown
"One-time refund or account transfer"The applicant has chosen this value from a dropdown
"Declined all verification options"The applicant did not select any verification options
(other)The applicant has manually entered a reason

source_id

A human-readable identifier for the source, unique within the context of the report.

ValueDescription
MANUALData was manually entered by the applicant
NOVA_DOCUMENTData was sourced from a document uploaded by the applicant
OCROLUSData was sourced from an uploaded bank statement
USA_AKOYAData was sourced from a bank connection through Akoya
USA_ARGYLEData was sourced from a payroll provider through Argyle
USA_FINData was sourced from a bank connection through Finicity
USA_MXData was sourced from a bank connection through MX
USA_RAIData was sourced through Resistant AI

source_type

The following are values for stated_employers[].verification_sources[].source_type:

ValueDescription
DOCUMENTData was sourced from a document
PAYROLLData was sourced from a payroll provider

The following are values for assets[].failed_connections[].source_type:

ValueDescription
BANK_TRANSACTIONData was sourced from a bank connection
FRAUDData was sourced from fraud analysis

status

If the status is the overall status of an application, the following columns are relevant:

  • Terminal means that this overall status is final and will not change
  • Report Available means that a report can be retrieved for the application or publicToken
  • Webhook means that there is a webhook available for this status
StatusDescriptionTerminal?Report Available?Webhook?
INVITEDThe applicant has been sent an invite, such as through the Invite API or in the Nova Dashboard
INITIALIZEDThe /connect/initialization endpoint has been used
PENDINGA visit has been initialized upon opening the NovaConnect widget
SUCCESSThe data source has successfully provided information on the applicant
EXPIREDThe visit has expired before the applicant was able to complete the flow. This will be sent if no completion 5 days after initial widget opened, invite sent, or initialization endpoint called
NOT_AUTHENTICATEDThe applicant was unable to connect to a valid account or the applicant did not upload supported documents within the allowed retry attempts
ERRORAn error occurred and the report could not be compiled. If there isn't a detailed substatus, send a message to your Nova Credit Representative with the publicToken
SKIPPEDThe applicant opted to skip all steps in the application.
SUPPLIER_UNRESPONSIVEThe applicant has encountered a data supplier outage while going through the widget. They may need to go through NovaConnect again at a later time

The following statuses can be attached to a specific source:

StatusDescription
PENDINGThe source was started but never completed
SUCCESSSee above
NOT_AUTHENTICATEDSee above
ERRORSee above
SKIPPEDThe applicant opted to skip the source.
SUPPLIER_UNRESPONSIVESee above

substatus

Additional insight on certain cases that occur when fetching or parsing a report.

These substatuses may accompany a webhook with an ERROR status:

ValueDescription
INVALID_PREFILLS_PII_MISSINGPrefills required for the IN Report are missing.
INVALID_PREFILL_KEYA prefill field has been passed in that is not supported for the current API version. (Only returned in sandbox.)
INVALID_PREFILL_ADDRESSThe address sent via prefill must be a string with max length 100 characters and contain a valid street address.
INVALID_PREFILL_CITYThe city sent via prefill must be a string with max length 100.
INVALID_PREFILL_DOBThe birthday sent via prefill is missing or not in YYYY-MM-DD format.
INVALID_PREFILL_EMAILThe email sent via prefill must be a valid email with max length 100 characters.
INVALID_PREFILL_FIRST_NAMEThe first name sent via prefill must be a string less than 255 characters and contain only alphabetical, unicode, dots, apostraphes and dashes.
INVALID_PREFILL_LAST_NAMEThe last name sent via prefill must be a string less than 255 characters and contain only alphabetical, unicode, dots, apostraphes and dashes.
INVALID_PREFILL_INCOMEThe stated annual income sent via prefill must be an integer between 0 and 2147483647.
INVALID_PREFILL_PHONEThe phone number sent via prefill must be a string with max length 255 characters.
INVALID_PREFILL_STATEThe state sent via prefill is missing or not in a valid two letter US state or territory code.
INVALID_PREFILL_ZIPThe zip code sent via prefill must a string with a valid USA zip code.

The following substatuses can be attached to a specific source:

Source StatusSource SubstatusDescription
ERRORINCOMPLETE_INFORMATIONThe source did not provide critical fields
NOT_AUTHENTICATEDE_BANKING_NOT_SUPPORTEDThe connected bank does not support e-banking features
NOT_AUTHENTICATEDINCOMPATIBLE_ACCOUNT_TYPES_SUBMITTEDThe user only submitted debt accounts (e.g. credit card).
NOT_AUTHENTICATEDMFA_REQUIRED_ON_FETCHMulti-factor authentication failed or was required but not completed

Report Examples

Primary example (verification with bank + payroll connection)

{
"meta": {
"public_token": "65bf7135-4eb8-4342-a7c2-0380322b3d59",
"user_args": null,
"created_at": "2025-02-07T23:10:51.987Z",
"api_version": "1.0.0",
"external_id": null,
"status": "SUCCESS",
"substatus": null,
"nova_report_revision": null,
"consumer_id": "b281e335-9d19-4aa7-b559-e74d08a05cf4",
"consumer_external_id": "472cbdc9-cf31-4117-a095-e27e2db054e5"
},
"product": {
"name": "Village Communities",
"product_id": "12d1e755-3d82-445d-84e6-b67b5ff7c70d",
"inquiry_type": "TENANT"
},
"stated_employers": [
{
"name": "Walmart",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"source_type": "PAYROLL",
"status": "SUCCESS",
"substatus": null
}
]
},
{
"name": "Social Security",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"source_type": "PAYROLL",
"status": "SUCCESS",
"substatus": null
}
]
}
],
"identities": [
{
"source_id": "CONSUMER_INPUT",
"source_uuid": null,
"first_name": "Raymond",
"last_name": "Marshal",
"full_name": "Raymond Marshal",
"emails": ["raymond@email.com"],
"matching": {
"full_name": {
"matched_sources": [
{
"source_id": "USA_AKOYA",
"source_uuid": "753c4285-9331-4502-b02b-5064904f33ce"
},
{
"source_id": "USA_FIN",
"source_uuid": "550e8400-e29b-41d4-a716-446655440000"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
],
"unmatched_sources": []
}
}
},
{
"source_id": "USA_AKOYA",
"source_uuid": "753c4285-9331-4502-b02b-5064904f33ce",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
},
{
"source_id": "USA_FIN",
"source_uuid": "550e8400-e29b-41d4-a716-446655440000",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND J MARSHAL",
"emails": []
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
}
],
"employment": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"employer_name": "Walmart, Inc.",
"employer_address_line_1": "702 SW 8th Street",
"employer_address_line_2": null,
"employer_city": "Bentonville",
"employer_state": "Arkansas",
"employment_type": "parttime",
"employment_status": "active",
"job_title": "Cashier",
"hire_date": "2023-03-01",
"termination_date": null,
"base_pay_period": "HOURLY",
"base_pay_amount": 24.22,
"matching": {
"employer_name": {
"matched_employer_name": [
{
"stated_employer": "Walmart"
}
],
"unmatched_employer_name": []
},
"direct_deposit_accounts": {
"matched_direct_deposit_accounts": [
{
"matched_account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"truncated_account_number": "475462",
"institution_name": "Chase"
}
],
"unmatched_direct_deposit_accounts": []
}
}
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"employer_name": "Social Security Administration",
"employer_address_line_1": "1100 West High Rise",
"employer_address_line_2": null,
"employer_city": "Baltimore",
"employer_state": "Maryland",
"employment_type": "benefit",
"employment_status": "active",
"job_title": null,
"hire_date": "2022-01-01",
"termination_date": null,
"base_pay_period": "MONTHLY",
"base_pay_amount": null,
"matching": {
"employer_name": {
"matched_employer_name": [
{
"stated_employer": "Social Security"
}
],
"unmatched_employer_name": []
},
"direct_deposit_accounts": {
"matched_direct_deposit_accounts": [
{
"matched_account_id": "738a6d6e-23be-40c8-a236-39c5659a09a1",
"truncated_account_number": "47205726",
"institution_name": "Alpine Bank"
}
],
"unmatched_direct_deposit_accounts": []
}
}
}
],
"assets": {
"account_details": [
{
"source_id": "USA_AKOYA",
"source_uuid": "753c4285-9331-4502-b02b-5064904f33ce",
"account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"owner_full_name": "RAYMOND MARSHAL",
"institution_name": "Chase",
"account_name": "Checking Account",
"account_type": "CASH_EQUIVALENT",
"date_first_transaction": "2020-01-27",
"last_statement_end_date": null,
"truncated_account_number": "475462",
"responsibility": "INDIVIDUAL",
"addresses": [
{
"address_id": "6d4d5fff-25ee-4ba0-8247-9bc75b900378",
"address": "5445 ALTON PKWY IRVINE CA 92614",
"street": null,
"city": null,
"zipcode": null,
"state": null
}
],
"current_balance": 577.63,
"six_months_average_balance": 432.55,
"twelve_months_income_from_assets": 12.61
},
{
"source_id": "USA_FIN",
"source_uuid": "550e8400-e29b-41d4-a716-446655440000",
"account_id": "738a6d6e-23be-40c8-a236-39c5659a09a1",
"owner_full_name": "RAYMOND MARSHAL",
"institution_name": "Alpine Bank",
"account_name": "Checking Account",
"account_type": "CASH_EQUIVALENT",
"date_first_transaction": "2025-02-27",
"last_statement_end_date": null,
"truncated_account_number": "47205726",
"responsibility": null,
"addresses": [
{
"address_id": "6d4d5fff-25ee-4ba0-8247-9bc75b900378",
"address": "5445 ALTON PKWY IRVINE CA 92614",
"street": null,
"city": null,
"zipcode": null,
"state": null
}
],
"current_balance": 643.78,
"six_months_average_balance": 337.54,
"twelve_months_income_from_assets": 11.67
}
],
"inflows": [
{
"inflow_id": "f3f0d372-a0f7-402f-835e-67ce6db2a75f",
"account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"description": "walmart irvine superstore",
"deposited_annual_income": 10296,
"deposited_recent_income": 7696
},
{
"inflow_id": "2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d",
"account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"description": "soc secur treas XXX",
"deposited_annual_income": 12345,
"deposited_recent_income": 12345
},
{
"inflow_id": "c33632a0-1d6a-11eb-806e-1f1356d092eb",
"account_id": "738a6d6e-23be-40c8-a236-39c5659a09a1",
"description": "VENMO CASHOUT PPD ID",
"deposited_annual_income": 480,
"deposited_recent_income": 488
}
],
"matched_income_sources": [
{
"stated_employer": "Social Security",
"matched_inflow_id": "2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d"
},
{
"stated_employer": "Walmart",
"matched_inflow_id": "f3f0d372-a0f7-402f-835e-67ce6db2a75f"
}
]
},
"income": {
"payroll": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"provider_name": "Walmart, Inc.",
"provider_type": "EMPLOYER",
"annual_gross_income": 10296.0,
"annual_net_income": 7696.0,
"pay_frequency": "WEEKLY",
"gigs_annual_gross_earnings": null,
"gigs_annual_deposited_amount": null,
"gigs_annual_net_earnings": null,
"gig_summaries": [],
"calendar_summary": [
{
"year": "2025",
"calendar_year_gross_income": 6675.43,
"calendar_year_net_income": 4989.71
},
{
"year": "2024",
"calendar_year_gross_income": 3620.57,
"calendar_year_net_income": 2706.29
}
],
"statements": [
{
"pay_date": "2025-08-25",
"pay_period_start": "2025-08-18",
"pay_period_end": "2025-08-24",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 10296,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7696
},
{
"pay_date": "2025-08-18",
"pay_period_start": "2025-08-11",
"pay_period_end": "2025-08-17",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 10098,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7548
},
{
"pay_date": "2025-08-11",
"pay_period_start": "2025-08-04",
"pay_period_end": "2025-08-10",
"hours_worked": 38.5,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9900,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7400
},
{
"pay_date": "2025-08-04",
"pay_period_start": "2025-07-28",
"pay_period_end": "2025-08-03",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9702,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7252
},
{
"pay_date": "2025-07-28",
"pay_period_start": "2025-07-21",
"pay_period_end": "2025-07-27",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9504,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7104
},
{
"pay_date": "2025-07-21",
"pay_period_start": "2025-07-14",
"pay_period_end": "2025-07-20",
"hours_worked": 35.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9306,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6956
},
{
"pay_date": "2025-07-14",
"pay_period_start": "2025-07-07",
"pay_period_end": "2025-07-13",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9108,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6808
},
{
"pay_date": "2025-07-07",
"pay_period_start": "2025-06-30",
"pay_period_end": "2025-07-06",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8910,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6660
},
{
"pay_date": "2025-06-30",
"pay_period_start": "2025-06-23",
"pay_period_end": "2025-06-29",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8712,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6512
},
{
"pay_date": "2025-06-23",
"pay_period_start": "2025-06-16",
"pay_period_end": "2025-06-22",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8514,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6364
},
{
"pay_date": "2025-06-16",
"pay_period_start": "2025-06-09",
"pay_period_end": "2025-06-15",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8316,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6216
},
{
"pay_date": "2025-06-09",
"pay_period_start": "2025-06-02",
"pay_period_end": "2025-06-08",
"hours_worked": 38.5,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8118,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6068
},
{
"pay_date": "2025-06-02",
"pay_period_start": "2025-05-26",
"pay_period_end": "2025-06-01",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7920,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5920
},
{
"pay_date": "2025-05-26",
"pay_period_start": "2025-05-19",
"pay_period_end": "2025-05-25",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7722,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5772
},
{
"pay_date": "2025-05-19",
"pay_period_start": "2025-05-12",
"pay_period_end": "2025-05-18",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7524,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5624
},
{
"pay_date": "2025-05-12",
"pay_period_start": "2025-05-05",
"pay_period_end": "2025-05-11",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7326,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5476
},
{
"pay_date": "2025-05-05",
"pay_period_start": "2025-04-28",
"pay_period_end": "2025-05-04",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7128,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5328
},
{
"pay_date": "2025-04-28",
"pay_period_start": "2025-04-21",
"pay_period_end": "2025-04-27",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6930,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5180
},
{
"pay_date": "2025-04-21",
"pay_period_start": "2025-04-14",
"pay_period_end": "2025-04-20",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6732,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5032
},
{
"pay_date": "2025-04-14",
"pay_period_start": "2025-04-07",
"pay_period_end": "2025-04-13",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6534,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4884
},
{
"pay_date": "2025-04-07",
"pay_period_start": "2025-03-31",
"pay_period_end": "2025-04-06",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6336,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4736
},
{
"pay_date": "2025-03-31",
"pay_period_start": "2025-03-24",
"pay_period_end": "2025-03-30",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6138,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4588
},
{
"pay_date": "2025-03-24",
"pay_period_start": "2025-03-17",
"pay_period_end": "2025-03-23",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5940,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4440
},
{
"pay_date": "2025-03-17",
"pay_period_start": "2025-03-10",
"pay_period_end": "2025-03-16",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5742,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4292
},
{
"pay_date": "2025-03-10",
"pay_period_start": "2025-03-03",
"pay_period_end": "2025-03-09",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5544,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4144
},
{
"pay_date": "2025-03-03",
"pay_period_start": "2025-02-24",
"pay_period_end": "2025-03-02",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5346,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3996
},
{
"pay_date": "2025-02-24",
"pay_period_start": "2025-02-17",
"pay_period_end": "2025-02-23",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5148,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3848
},
{
"pay_date": "2025-02-17",
"pay_period_start": "2025-02-10",
"pay_period_end": "2025-02-16",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4950,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3700
},
{
"pay_date": "2025-02-10",
"pay_period_start": "2025-02-03",
"pay_period_end": "2025-02-09",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4752,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3552
},
{
"pay_date": "2025-02-03",
"pay_period_start": "2025-01-27",
"pay_period_end": "2025-02-02",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4554,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3404
},
{
"pay_date": "2025-01-27",
"pay_period_start": "2025-01-20",
"pay_period_end": "2025-01-26",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4356,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3256
},
{
"pay_date": "2025-01-20",
"pay_period_start": "2025-01-13",
"pay_period_end": "2025-01-19",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4158,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3108
},
{
"pay_date": "2025-01-13",
"pay_period_start": "2025-01-06",
"pay_period_end": "2025-01-12",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3960,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2960
},
{
"pay_date": "2025-01-06",
"pay_period_start": "2024-12-30",
"pay_period_end": "2025-01-05",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3762,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2812
},
{
"pay_date": "2024-12-30",
"pay_period_start": "2024-12-23",
"pay_period_end": "2024-12-29",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3564,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2664
},
{
"pay_date": "2024-12-23",
"pay_period_start": "2024-12-16",
"pay_period_end": "2024-12-22",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3366,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2516
},
{
"pay_date": "2024-12-16",
"pay_period_start": "2024-12-09",
"pay_period_end": "2024-12-15",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3168,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2368
},
{
"pay_date": "2024-12-09",
"pay_period_start": "2024-12-02",
"pay_period_end": "2024-12-08",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2970,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2220
},
{
"pay_date": "2024-12-02",
"pay_period_start": "2024-11-25",
"pay_period_end": "2024-12-01",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2772,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2072
},
{
"pay_date": "2024-11-25",
"pay_period_start": "2024-11-18",
"pay_period_end": "2024-11-24",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2574,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1924
},
{
"pay_date": "2024-11-18",
"pay_period_start": "2024-11-11",
"pay_period_end": "2024-11-17",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2376,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1776
},
{
"pay_date": "2024-11-11",
"pay_period_start": "2024-11-04",
"pay_period_end": "2024-11-10",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2178,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1628
},
{
"pay_date": "2024-11-04",
"pay_period_start": "2024-10-28",
"pay_period_end": "2024-11-03",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1980,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1480
},
{
"pay_date": "2024-10-28",
"pay_period_start": "2024-10-21",
"pay_period_end": "2024-10-27",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1782,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1332
},
{
"pay_date": "2024-10-21",
"pay_period_start": "2024-10-14",
"pay_period_end": "2024-10-20",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1584,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1184
},
{
"pay_date": "2024-10-14",
"pay_period_start": "2024-10-07",
"pay_period_end": "2024-10-13",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1386,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1036
},
{
"pay_date": "2024-10-07",
"pay_period_start": "2024-09-30",
"pay_period_end": "2024-10-06",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1188,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 888
},
{
"pay_date": "2024-09-30",
"pay_period_start": "2024-09-23",
"pay_period_end": "2024-09-29",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 990,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 740
},
{
"pay_date": "2024-09-23",
"pay_period_start": "2024-09-16",
"pay_period_end": "2024-09-22",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 792,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 592
},
{
"pay_date": "2024-09-16",
"pay_period_start": "2024-09-09",
"pay_period_end": "2024-09-15",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 594,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 444
},
{
"pay_date": "2024-09-09",
"pay_period_start": "2024-09-02",
"pay_period_end": "2024-09-08",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 396,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 296
},
{
"pay_date": "2024-09-02",
"pay_period_start": "2024-08-26",
"pay_period_end": "2024-09-01",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 198,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 148
}
]
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"provider_name": "Social Security Administration",
"provider_type": "BENEFITS",
"annual_gross_income": 13526.0,
"annual_net_income": 12624.0,
"pay_frequency": "MONTHLY",
"gigs_annual_gross_earnings": null,
"gigs_annual_deposited_amount": null,
"gigs_annual_net_earnings": null,
"gig_summaries": [],
"calendar_summary": [
{
"year": "2025",
"calendar_year_gross_income": 7890.12,
"calendar_year_net_income": 7364
},
{
"year": "2024",
"calendar_year_gross_income": 5635.8,
"calendar_year_net_income": 5260
}
],
"statements": [
{
"pay_date": "2025-08-01",
"pay_period_start": "2025-07-01",
"pay_period_end": "2025-07-31",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 9017.28,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 8416.0
},
{
"pay_date": "2025-07-01",
"pay_period_start": "2025-06-01",
"pay_period_end": "2025-06-30",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 7890.12,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 7364.0
},
{
"pay_date": "2025-06-01",
"pay_period_start": "2025-05-01",
"pay_period_end": "2025-05-31",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 6762.96,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 6312.0
},
{
"pay_date": "2025-05-01",
"pay_period_start": "2025-04-01",
"pay_period_end": "2025-04-30",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 5635.8,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 5260.0
},
{
"pay_date": "2025-04-01",
"pay_period_start": "2025-03-01",
"pay_period_end": "2025-03-31",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 4508.64,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 4208.0
},
{
"pay_date": "2025-03-01",
"pay_period_start": "2025-02-01",
"pay_period_end": "2025-02-28",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 3381.48,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 3156.0
},
{
"pay_date": "2025-02-01",
"pay_period_start": "2025-01-01",
"pay_period_end": "2025-01-31",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 2254.32,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 2104.0
},
{
"pay_date": "2025-01-01",
"pay_period_start": "2024-12-01",
"pay_period_end": "2024-12-31",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 1127.16,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 1052.0
},
{
"pay_date": "2024-12-01",
"pay_period_start": "2024-11-01",
"pay_period_end": "2024-11-30",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 13525.92,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 12624.0
},
{
"pay_date": "2024-11-01",
"pay_period_start": "2024-10-01",
"pay_period_end": "2024-10-31",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 12398.76,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 11572.0
},
{
"pay_date": "2024-10-01",
"pay_period_start": "2024-09-01",
"pay_period_end": "2024-09-30",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 11271.6,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 10520.0
},
{
"pay_date": "2024-09-01",
"pay_period_start": "2024-08-01",
"pay_period_end": "2024-08-31",
"hours_worked": null,
"gross_total_earnings_amount_current": 1127.16,
"gross_total_earnings_amount_ytd": 10144.44,
"net_total_earnings_amount_current": 1052.0,
"net_total_earnings_amount_ytd": 9468.0
}
]
}
],
"documents": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "cf0fa8ef-a79e-4e2a-a829-3a9a61db66e3",
"available_date": "2025-10-30",
"source_filepath": "cf0fa8ef-a79e-4e2a-a829-3a9a61db66e3/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "7f3e9c82-4d5a-4b8e-9f2c-1a6b8e4d7c3f",
"available_date": "2025-10-23",
"source_filepath": "7f3e9c82-4d5a-4b8e-9f2c-1a6b8e4d7c3f/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"available_date": "2025-10-16",
"source_filepath": "f47ac10b-58cc-4372-a567-0e02b2c3d479/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "6ba7b812-9dad-11d1-80b4-00c04fd430c8",
"available_date": "2025-10-09",
"source_filepath": "6ba7b812-9dad-11d1-80b4-00c04fd430c8/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "9d8c7b6a-5e4f-3210-abcd-ef9876543210",
"available_date": "2025-10-02",
"source_filepath": "9d8c7b6a-5e4f-3210-abcd-ef9876543210/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "1a2b3c4d-5e6f-7890-abcd-123456789abc",
"available_date": "2025-09-25",
"source_filepath": "1a2b3c4d-5e6f-7890-abcd-123456789abc/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "8f7e6d5c-4b3a-2190-fedc-ba9876543210",
"available_date": "2025-09-18",
"source_filepath": "8f7e6d5c-4b3a-2190-fedc-ba9876543210/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "fedcba98-7654-3210-9876-543210fedcba",
"available_date": "2025-09-11",
"source_filepath": "fedcba98-7654-3210-9876-543210fedcba/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "24681357-9bdf-ace0-2468-13579bdfac24",
"available_date": "2025-09-04",
"source_filepath": "24681357-9bdf-ace0-2468-13579bdfac24/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "97531246-8ace-0bdf-9753-1246acedbf97",
"available_date": "2025-08-29",
"source_filepath": "97531246-8ace-0bdf-9753-1246acedbf97/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "abcdef12-3456-7890-abcd-ef1234567890",
"available_date": "2025-08-22",
"source_filepath": "abcdef12-3456-7890-abcd-ef1234567890/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "1122aabb-ccdd-eeff-1122-aabbccddeeff",
"available_date": "2025-08-15",
"source_filepath": "1122aabb-ccdd-eeff-1122-aabbccddeeff/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "9988ffee-ddcc-bbaa-9988-ffeeddccbbaa",
"available_date": "2025-08-08",
"source_filepath": "9988ffee-ddcc-bbaa-9988-ffeeddccbbaa/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "deadbeef-cafe-babe-dead-beefcafebabe",
"available_date": "2025-08-01",
"source_filepath": "deadbeef-cafe-babe-dead-beefcafebabe/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "c0ffee00-d00d-face-c0ff-ee00d00dface",
"available_date": "2025-07-24",
"source_filepath": "c0ffee00-d00d-face-c0ff-ee00d00dface/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"document_type": "BENEFIT",
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"available_date": "2025-07-17",
"source_filepath": "550e8400-e29b-41d4-a716-446655440000/6ba7b810-9dad-11d1-80b4-00c04fd430c8.pdf"
}
]
},
"application_completeness_checks": [
{
"check": "MISSING_DEPOSIT_ACCOUNTS_DETECTED",
"value": false
},
{
"check": "PRIMARY_ACCOUNT_NOT_DETECTED",
"value": false
},
{
"check": "VENMO_TRANSACTIONS_DETECTED",
"value": true
},
{
"check": "CASHAPP_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "ZELLE_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "PAYPAL_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "SKIPPED_INCOME",
"value": false
}
]
}

Document example (verification with bank statements + document upload)

{
"meta": {
"public_token": "a1b2c3d4-5e6f-7890-abcd-ef1234567890",
"user_args": null,
"created_at": "2025-09-07T23:10:51.987Z",
"api_version": "1.0.0",
"external_id": null,
"status": "SUCCESS",
"substatus": null,
"nova_report_revision": null,
"consumer_id": "b281e335-9d19-4aa7-b559-e74d08a05cf4",
"consumer_external_id": "472cbdc9-cf31-4117-a095-e27e2db054e5"
},
"product": {
"name": "Village Communities",
"product_id": "9f8e7d6c-5b4a-3928-1764-fedcba098765",
"inquiry_type": "TENANT"
},
"stated_employers": [
{
"name": "Uber",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "b2c3d4e5-f678-9012-3456-789abcdef012",
"source_type": "PAYROLL",
"status": "SUCCESS",
"substatus": null
}
]
},
{
"name": "Unemployment",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "d4e5f678-9012-3456-789a-bcdef0123456",
"source_type": "DOCUMENT",
"status": "SUCCESS",
"substatus": null
}
]
},
// This income source was skipped and applicant provided a reason
{
"name": "Alimony",
"input_method": "CONSUMER_INPUT",
"verification_sources": [],
"skipped_reason": "No longer receiving this income"
}
],
"identities": [
{
"source_id": "CONSUMER_INPUT",
"source_uuid": null,
"first_name": "Raymond",
"last_name": "Marshal",
"full_name": "Raymond Marshal",
"emails": ["raymond@email.com"],
"matching": {
"full_name": {
"matched_sources": [
{
"source_id": "OCROLUS",
"source_uuid": "e5f67890-1234-5678-9abc-def012345678"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b2c3d4e5-f678-9012-3456-789abcdef012"
}
],
"unmatched_sources": []
}
}
},
{
"source_id": "OCROLUS",
"source_uuid": "e5f67890-1234-5678-9abc-def012345678",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b2c3d4e5-f678-9012-3456-789abcdef012",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
}
],
"employment": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "b2c3d4e5-f678-9012-3456-789abcdef012",
"employer_name": "Uber",
"employer_address_line_1": "1725 3rd St",
"employer_address_line_2": null,
"employer_city": "San Francisco",
"employer_state": "California",
"employment_type": "contract",
"employment_status": "active",
"job_title": "Driver",
"hire_date": "2025-03-01",
"termination_date": null,
"base_pay_period": null,
"base_pay_amount": null,
"matching": {
"employer_name": {
"matched_employer_name": [
{
"stated_employer": "Uber"
}
],
"unmatched_employer_name": []
},
"direct_deposit_accounts": {
"matched_direct_deposit_accounts": [
{
"matched_account_id": "f6789012-3456-789a-bcde-f01234567890",
"truncated_account_number": "475462",
"institution_name": "Redstone Federal Credit Union"
}
],
"unmatched_direct_deposit_accounts": []
}
}
}
],
"assets": {
"account_details": [
{
"source_id": "OCROLUS",
"source_uuid": "e5f67890-1234-5678-9abc-def012345678",
"account_id": "f6789012-3456-789a-bcde-f01234567890",
"owner_full_name": "RAYMOND MARSHAL",
"institution_name": "Redstone Federal Credit Union",
"account_name": "Checking Account",
"account_type": "CASH_EQUIVALENT",
"date_first_transaction": "2020-01-27",
"last_statement_end_date": "2025-08-31",
"truncated_account_number": "475462",
"responsibility": "INDIVIDUAL",
"addresses": [
{
"address_id": "78901234-5678-9abc-def0-123456789012",
"address": "5445 ALTON PKWY IRVINE CA 92614",
"street": null,
"city": null,
"zipcode": null,
"state": null
}
],
"current_balance": 612.47,
"six_months_average_balance": 458.73,
"twelve_months_income_from_assets": 13.42
}
],
"inflows": [
{
"inflow_id": "89012345-6789-abcd-ef01-23456789abcd",
"account_id": "f6789012-3456-789a-bcde-f01234567890",
"description": "uber instant pay st louis mo",
"deposited_annual_income": 3847,
"deposited_recent_income": 4102
},
{
"inflow_id": "9abcdef0-1234-5678-9abc-def012345678",
"account_id": "f6789012-3456-789a-bcde-f01234567890",
"description": "CA unemp dept of labor",
"deposited_annual_income": 2345,
"deposited_recent_income": 2345
}
],
"matched_income_sources": [
{
"stated_employer": "Unemployment",
"matched_inflow_id": "9abcdef0-1234-5678-9abc-def012345678"
},
{
"stated_employer": "Uber",
"matched_inflow_id": "89012345-6789-abcd-ef01-23456789abcd"
}
],
// User had one attempted bank connection for asset verification that failed
"failed_connections": [
{
"source_id": "USA_FIN",
"source_uuid": "abcdef01-2345-6789-abcd-ef0123456789",
"source_type": "BANK_TRANSACTION",
"institution": "Chime",
"status": "ERROR",
"sub_status": "MFA_FETCH_REQUIRED"
}
]
},
"income": {
"payroll": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "b2c3d4e5-f678-9012-3456-789abcdef012",
"provider_name": "UberDrive",
"provider_type": "GIG",
"annual_gross_income": null,
"annual_net_income": null,
"pay_frequency": null,
"gigs_annual_gross_earnings": 27212.78,
"gigs_annual_deposited_amount": 23715.6,
"gigs_annual_net_earnings": 22281.13,
"gig_summaries": [
{
"pay_summary_start": "2025-10-18",
"pay_summary_end": "2025-10-24",
"gross_earnings": 621.21,
"deposited_amount": 553.73,
"net_earnings": 527.04,
"tips": 38.86
},
{
"pay_summary_start": "2025-10-11",
"pay_summary_end": "2025-10-17",
"gross_earnings": 769.66,
"deposited_amount": 660.37,
"net_earnings": 646.71,
"tips": 22.98
},
{
"pay_summary_start": "2025-10-04",
"pay_summary_end": "2025-10-10",
"gross_earnings": 371.89,
"deposited_amount": 336.47,
"net_earnings": 295.47,
"tips": 39.89
},
{
"pay_summary_start": "2025-09-27",
"pay_summary_end": "2025-10-03",
"gross_earnings": 310.89,
"deposited_amount": 262.14,
"net_earnings": 251.66,
"tips": 9.92
},
{
"pay_summary_start": "2025-09-20",
"pay_summary_end": "2025-09-26",
"gross_earnings": 618.1,
"deposited_amount": 556.96,
"net_earnings": 510.75,
"tips": 0
},
{
"pay_summary_start": "2025-09-13",
"pay_summary_end": "2025-09-19",
"gross_earnings": 905.07,
"deposited_amount": 825.72,
"net_earnings": 750.16,
"tips": 34.48
},
{
"pay_summary_start": "2025-09-06",
"pay_summary_end": "2025-09-12",
"gross_earnings": 428.17,
"deposited_amount": 372.15,
"net_earnings": 372.15,
"tips": 24.17
},
{
"pay_summary_start": "2025-08-30",
"pay_summary_end": "2025-09-05",
"gross_earnings": 273.91,
"deposited_amount": 236.61,
"net_earnings": 206.29,
"tips": 8.88
},
{
"pay_summary_start": "2025-08-23",
"pay_summary_end": "2025-08-29",
"gross_earnings": 553.13,
"deposited_amount": 472.76,
"net_earnings": 453.69,
"tips": 19.95
},
{
"pay_summary_start": "2025-08-16",
"pay_summary_end": "2025-08-22",
"gross_earnings": 354.58,
"deposited_amount": 242.34,
"net_earnings": 235.41,
"tips": 0
},
{
"pay_summary_start": "2025-08-09",
"pay_summary_end": "2025-08-15",
"gross_earnings": 475.23,
"deposited_amount": 420.88,
"net_earnings": 395.23,
"tips": 30.72
},
{
"pay_summary_start": "2025-08-02",
"pay_summary_end": "2025-08-08",
"gross_earnings": 432.43,
"deposited_amount": 401.2,
"net_earnings": 387.89,
"tips": 0
},
{
"pay_summary_start": "2025-07-26",
"pay_summary_end": "2025-08-01",
"gross_earnings": 331.04,
"deposited_amount": 306.37,
"net_earnings": 264.38,
"tips": 0
},
{
"pay_summary_start": "2025-07-19",
"pay_summary_end": "2025-07-25",
"gross_earnings": 272.08,
"deposited_amount": 233.67,
"net_earnings": 217.64,
"tips": 19.31
},
{
"pay_summary_start": "2025-07-12",
"pay_summary_end": "2025-07-18",
"gross_earnings": 487.97,
"deposited_amount": 441.84,
"net_earnings": 433.64,
"tips": 23.2
},
{
"pay_summary_start": "2025-07-05",
"pay_summary_end": "2025-07-11",
"gross_earnings": 371.26,
"deposited_amount": 274.47,
"net_earnings": 256.23,
"tips": 30.68
},
{
"pay_summary_start": "2025-06-28",
"pay_summary_end": "2025-07-04",
"gross_earnings": 228.8,
"deposited_amount": 201.71,
"net_earnings": 184.63,
"tips": 0
},
{
"pay_summary_start": "2025-06-21",
"pay_summary_end": "2025-06-27",
"gross_earnings": 536.43,
"deposited_amount": 463.1,
"net_earnings": 442.76,
"tips": 0
},
{
"pay_summary_start": "2025-06-14",
"pay_summary_end": "2025-06-20",
"gross_earnings": 692.75,
"deposited_amount": 567.1,
"net_earnings": 557.34,
"tips": 6.95
},
{
"pay_summary_start": "2025-06-07",
"pay_summary_end": "2025-06-13",
"gross_earnings": 618.9,
"deposited_amount": 547.38,
"net_earnings": 506.34,
"tips": 0
},
{
"pay_summary_start": "2025-05-31",
"pay_summary_end": "2025-06-06",
"gross_earnings": 739.85,
"deposited_amount": 653.05,
"net_earnings": 600.27,
"tips": 46.67
},
{
"pay_summary_start": "2025-05-24",
"pay_summary_end": "2025-05-30",
"gross_earnings": 512.5,
"deposited_amount": 439.07,
"net_earnings": 404.94,
"tips": 15.01
},
{
"pay_summary_start": "2025-05-17",
"pay_summary_end": "2025-05-23",
"gross_earnings": 572.35,
"deposited_amount": 475.58,
"net_earnings": 475.58,
"tips": 0
},
{
"pay_summary_start": "2025-05-10",
"pay_summary_end": "2025-05-16",
"gross_earnings": 669.68,
"deposited_amount": 568.57,
"net_earnings": 554.94,
"tips": 0
},
{
"pay_summary_start": "2025-05-03",
"pay_summary_end": "2025-05-09",
"gross_earnings": 292.31,
"deposited_amount": 256.95,
"net_earnings": 234.59,
"tips": 0
},
{
"pay_summary_start": "2025-04-26",
"pay_summary_end": "2025-05-02",
"gross_earnings": 604.81,
"deposited_amount": 512.91,
"net_earnings": 502.92,
"tips": 0
},
{
"pay_summary_start": "2025-04-19",
"pay_summary_end": "2025-04-25",
"gross_earnings": 469.9,
"deposited_amount": 411.33,
"net_earnings": 373.86,
"tips": 12.14
},
{
"pay_summary_start": "2025-04-12",
"pay_summary_end": "2025-04-18",
"gross_earnings": 772.98,
"deposited_amount": 718.64,
"net_earnings": 643.98,
"tips": 0
},
{
"pay_summary_start": "2025-04-05",
"pay_summary_end": "2025-04-11",
"gross_earnings": 632.32,
"deposited_amount": 546.57,
"net_earnings": 532.63,
"tips": 47.23
},
{
"pay_summary_start": "2025-03-29",
"pay_summary_end": "2025-04-04",
"gross_earnings": 511.34,
"deposited_amount": 419.39,
"net_earnings": 419.39,
"tips": 2.34
},
{
"pay_summary_start": "2025-03-22",
"pay_summary_end": "2025-03-28",
"gross_earnings": 551.59,
"deposited_amount": 513.24,
"net_earnings": 473.84,
"tips": 15.66
},
{
"pay_summary_start": "2025-03-15",
"pay_summary_end": "2025-03-21",
"gross_earnings": 969.56,
"deposited_amount": 859.09,
"net_earnings": 795.85,
"tips": 24.76
},
{
"pay_summary_start": "2025-03-08",
"pay_summary_end": "2025-03-14",
"gross_earnings": 541.62,
"deposited_amount": 486.72,
"net_earnings": 486.72,
"tips": 20.4
},
{
"pay_summary_start": "2025-03-01",
"pay_summary_end": "2025-03-07",
"gross_earnings": 423.57,
"deposited_amount": 372.1,
"net_earnings": 328.29,
"tips": 0
},
{
"pay_summary_start": "2025-02-22",
"pay_summary_end": "2025-02-28",
"gross_earnings": 287.93,
"deposited_amount": 271.91,
"net_earnings": 246.52,
"tips": 0
},
{
"pay_summary_start": "2025-02-15",
"pay_summary_end": "2025-02-21",
"gross_earnings": 718.36,
"deposited_amount": 634.04,
"net_earnings": 571.55,
"tips": 6.74
},
{
"pay_summary_start": "2025-02-08",
"pay_summary_end": "2025-02-14",
"gross_earnings": 633.36,
"deposited_amount": 543.81,
"net_earnings": 494.67,
"tips": 20.5
},
{
"pay_summary_start": "2025-02-01",
"pay_summary_end": "2025-02-07",
"gross_earnings": 507.88,
"deposited_amount": 440.52,
"net_earnings": 415.8,
"tips": 8.28
},
{
"pay_summary_start": "2025-01-25",
"pay_summary_end": "2025-01-31",
"gross_earnings": 288.26,
"deposited_amount": 237.51,
"net_earnings": 213.32,
"tips": 0
}
],
"statements": []
}
],
// Applicant uploaded 6 bank statements from one account for asset verification
"documents": [
{
"source_id": "OCROLUS",
"source_uuid": "bcdef012-3456-789a-bcde-f01234567890",
"document_type": "BANK_STATEMENT",
"document_id": "cdef0123-4567-89ab-cdef-012345678901",
"available_date": null,
"source_filepath": "a1b2c3d4-5e6f-7890-abcd-ef1234567890/bcdef012-3456-789a-bcde-f01234567890.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "bcdef012-3456-789a-bcde-f01234567890",
"document_type": "BANK_STATEMENT",
"document_id": "def01234-5678-9abc-def0-123456789012",
"available_date": null,
"source_filepath": "a1b2c3d4-5e6f-7890-abcd-ef1234567890/bcdef012-3456-789a-bcde-f01234567890.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "bcdef012-3456-789a-bcde-f01234567890",
"document_type": "BANK_STATEMENT",
"document_id": "ef012345-6789-abcd-ef01-234567890123",
"available_date": null,
"source_filepath": "a1b2c3d4-5e6f-7890-abcd-ef1234567890/bcdef012-3456-789a-bcde-f01234567890.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "bcdef012-3456-789a-bcde-f01234567890",
"document_type": "BANK_STATEMENT",
"document_id": "f0123456-789a-bcde-f012-3456789abcde",
"available_date": null,
"source_filepath": "a1b2c3d4-5e6f-7890-abcd-ef1234567890/bcdef012-3456-789a-bcde-f01234567890.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "bcdef012-3456-789a-bcde-f01234567890",
"document_type": "BANK_STATEMENT",
"document_id": "01234567-89ab-cdef-0123-456789abcdef",
"available_date": null,
"source_filepath": "a1b2c3d4-5e6f-7890-abcd-ef1234567890/bcdef012-3456-789a-bcde-f01234567890.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
{
"source_id": "OCROLUS",
"source_uuid": "bcdef012-3456-789a-bcde-f01234567890",
"document_type": "BANK_STATEMENT",
"document_id": "12345678-9abc-def0-1234-56789abcdef0",
"available_date": null,
"source_filepath": "a1b2c3d4-5e6f-7890-abcd-ef1234567890/bcdef012-3456-789a-bcde-f01234567890.pdf",
"irregularity_detection": {
"status": "NOT_DETECTED",
"reasons": [],
"file_type": "pdf",
"genuine_pdf": true,
"version": "3.1"
}
},
// Applicant uploaded 1 document for one income source for income verification
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "23456789-abcd-ef01-2345-6789abcdef01",
"document_type": "DOCUMENT",
"document_id": "c3d4e5f6-7890-1234-5678-9abcdef01234",
"available_date": null,
"source_filepath": "a1b2c3d4-5e6f-7890-abcd-ef1234567890/23456789-abcd-ef01-2345-6789abcdef01.pdf"
}
]
},
"application_completeness_checks": [
{
"check": "MISSING_DEPOSIT_ACCOUNTS_DETECTED",
"value": false
},
{
"check": "PRIMARY_ACCOUNT_NOT_DETECTED",
"value": false
},
{
"check": "VENMO_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "CASHAPP_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "ZELLE_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "PAYPAL_TRANSACTIONS_DETECTED",
"value": true
},
{
"check": "SKIPPED_INCOME",
"value": true
}
]
}

Income only example (verification of income only)

{
"meta": {
"public_token": "e1f2a3b4-5c6d-4890-abcd-ef1234567890",
"user_args": null,
"created_at": "2025-09-07T23:10:51.987Z",
"api_version": "1.0.0",
"external_id": null,
"status": "SUCCESS",
"substatus": null,
"nova_report_revision": null,
"consumer_id": "b281e335-9d19-4aa7-b559-e74d08a05cf4",
"consumer_external_id": "472cbdc9-cf31-4117-a095-e27e2db054e5"
},
"product": {
"name": "Village Communities",
"product_id": "a2b3c4d5-6e7f-4928-8764-fedcba098765",
"inquiry_type": "TENANT"
},
"stated_employers": [
{
"name": "Target",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"source_type": "PAYROLL",
"status": "SUCCESS",
"substatus": null
}
]
},
{
"name": "Child Support",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "d5e6f789-0123-4456-889a-bcdef0123456",
"source_type": "DOCUMENT",
"status": "SUCCESS",
"substatus": null
}
]
}
],
"identities": [
{
"source_id": "CONSUMER_INPUT",
"source_uuid": null,
"first_name": "Raymond",
"last_name": "Marshal",
"full_name": "Raymond Marshal",
"emails": ["raymond@email.com"],
"matching": {
"full_name": {
"matched_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012"
}
],
"unmatched_sources": []
}
}
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
}
],
"employment": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"employer_name": "Target",
"employer_address_line_1": "1725 3rd St",
"employer_address_line_2": null,
"employer_city": "Minneapolis",
"employer_state": "Minnesota",
"employment_type": "full time",
"employment_status": "active",
"job_title": "Cashier",
"hire_date": "2023-03-01",
"termination_date": null,
"base_pay_period": "HOURLY",
"base_pay_amount": 22.22,
"matching": {
"employer_name": {
"matched_employer_name": [
{
"stated_employer": "Target"
}
],
"unmatched_employer_name": []
}
}
}
],
"income": {
"payroll": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"provider_name": "Target, Inc.",
"provider_type": "EMPLOYER",
"annual_gross_income": 28100.0,
"annual_net_income": 23900.0,
"pay_frequency": "BIWEEKLY",
"gigs_annual_gross_earnings": null,
"gigs_annual_deposited_amount": null,
"gigs_annual_net_earnings": null,
"gig_summaries": [],
"statements": [
{
"pay_date": "2025-08-15",
"pay_period_start": "2025-08-01",
"pay_period_end": "2025-08-14",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 19458,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 16540
},
{
"pay_date": "2025-08-01",
"pay_period_start": "2025-07-18",
"pay_period_end": "2025-07-31",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 18377,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 15620
},
{
"pay_date": "2025-07-18",
"pay_period_start": "2025-07-04",
"pay_period_end": "2025-07-17",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 17296,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 14700
},
{
"pay_date": "2025-07-04",
"pay_period_start": "2025-06-20",
"pay_period_end": "2025-07-03",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 16215,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 13780
},
{
"pay_date": "2025-06-20",
"pay_period_start": "2025-06-06",
"pay_period_end": "2025-06-19",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 15134,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 12860
},
{
"pay_date": "2025-06-06",
"pay_period_start": "2025-05-23",
"pay_period_end": "2025-06-05",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 14053,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 11940
},
{
"pay_date": "2025-05-23",
"pay_period_start": "2025-05-09",
"pay_period_end": "2025-05-22",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 12972,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 11020
},
{
"pay_date": "2025-05-09",
"pay_period_start": "2025-04-25",
"pay_period_end": "2025-05-08",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 11891,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 10100
},
{
"pay_date": "2025-04-25",
"pay_period_start": "2025-04-11",
"pay_period_end": "2025-04-24",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 10810,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 9180
},
{
"pay_date": "2025-04-11",
"pay_period_start": "2025-03-28",
"pay_period_end": "2025-04-10",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 9729,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 8260
},
{
"pay_date": "2025-03-28",
"pay_period_start": "2025-03-14",
"pay_period_end": "2025-03-27",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 8648,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 7340
},
{
"pay_date": "2025-03-14",
"pay_period_start": "2025-02-28",
"pay_period_end": "2025-03-13",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 7567,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 6420
},
{
"pay_date": "2025-02-28",
"pay_period_start": "2025-02-14",
"pay_period_end": "2025-02-27",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 6486,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 5500
},
{
"pay_date": "2025-02-14",
"pay_period_start": "2025-01-31",
"pay_period_end": "2025-02-13",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 5405,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 4580
},
{
"pay_date": "2025-01-31",
"pay_period_start": "2025-01-17",
"pay_period_end": "2025-01-30",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 4324,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 3660
},
{
"pay_date": "2025-01-17",
"pay_period_start": "2025-01-03",
"pay_period_end": "2025-01-16",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 3243,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 2740
},
{
"pay_date": "2025-01-03",
"pay_period_start": "2024-12-20",
"pay_period_end": "2025-01-02",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 1081,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 920
},
{
"pay_date": "2024-12-20",
"pay_period_start": "2024-12-06",
"pay_period_end": "2024-12-19",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 28081,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 23869
},
{
"pay_date": "2024-12-06",
"pay_period_start": "2024-11-22",
"pay_period_end": "2024-12-05",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 27000,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 22949
},
{
"pay_date": "2024-11-22",
"pay_period_start": "2024-11-08",
"pay_period_end": "2024-11-21",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 27000,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 22949
},
{
"pay_date": "2024-11-08",
"pay_period_start": "2024-10-25",
"pay_period_end": "2024-11-07",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 25919,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 22029
},
{
"pay_date": "2024-10-25",
"pay_period_start": "2024-10-11",
"pay_period_end": "2024-10-24",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 24838,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 21109
},
{
"pay_date": "2024-10-11",
"pay_period_start": "2024-09-27",
"pay_period_end": "2024-10-10",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 23757,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 20189
},
{
"pay_date": "2024-09-27",
"pay_period_start": "2024-09-13",
"pay_period_end": "2024-09-26",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 22676,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 19269
},
{
"pay_date": "2024-09-13",
"pay_period_start": "2024-08-30",
"pay_period_end": "2024-09-12",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 21595,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 18349
},
{
"pay_date": "2024-08-30",
"pay_period_start": "2024-08-16",
"pay_period_end": "2024-08-29",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 20514,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 17429
},
{
"pay_date": "2024-08-16",
"pay_period_start": "2024-08-02",
"pay_period_end": "2024-08-15",
"hours_worked": 80.0,
"gross_total_earnings_amount_current": 1081,
"gross_total_earnings_amount_ytd": 19433,
"net_total_earnings_amount_current": 920,
"net_total_earnings_amount_ytd": 16509
}
]
}
]
},
"documents": [
// Applicant uploaded 1 document for one income source for income verification
{
"source_id": "NOVA_DOCUMENT",
"source_uuid": "d5e6f789-0123-4456-889a-bcdef0123456",
"document_type": "DOCUMENT",
"document_id": "c4d5e6f7-8901-4234-8678-9abcdef01234",
"available_date": null,
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/e6f78901-2345-4678-9abc-def012345678.pdf"
},
// Applicant has paystubs from one payroll account for income verification
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "f7890123-4567-489a-bcde-f01234567890",
"available_date": "2025-08-15",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_001.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "89012345-6789-4bcd-ef01-234567890123",
"available_date": "2025-08-01",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_002.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "90123456-789a-4cde-f012-3456789abcde",
"available_date": "2025-07-18",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_003.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "01234567-89ab-4def-0123-456789abcdef",
"available_date": "2025-07-04",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_004.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "12345678-9abc-4ef0-1234-56789abcdef0",
"available_date": "2025-06-20",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_005.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "23456789-abcd-4f01-2345-6789abcdef01",
"available_date": "2025-06-06",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_006.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "3456789a-bcde-4012-3456-789abcdef012",
"available_date": "2025-05-23",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_007.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "456789ab-cdef-4123-4567-89abcdef0123",
"available_date": "2025-05-09",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_008.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "56789abc-def0-4234-5678-9abcdef01234",
"available_date": "2025-04-25",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_009.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "6789abcd-ef01-4345-6789-abcdef012345",
"available_date": "2025-04-11",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_010.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "789abcde-f012-4456-789a-bcdef0123456",
"available_date": "2025-03-28",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_011.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "89abcdef-0123-4567-89ab-cdef01234567",
"available_date": "2025-03-14",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_012.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "9abcdef0-1234-4678-9abc-def012345678",
"available_date": "2025-02-28",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_013.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "abcdef01-2345-4789-abcd-ef0123456789",
"available_date": "2025-02-14",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_014.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "b3c4d5e6-7f80-4012-8456-789abcdef012",
"document_type": "PAYSTUB",
"document_id": "bcdef012-3456-489a-bcde-f01234567890",
"available_date": "2025-01-31",
"source_filepath": "e1f2a3b4-5c6d-4890-abcd-ef1234567890/b3c4d5e6-7f80-4012-8456-789abcdef012_015.pdf"
}
]
}

Partial report

In this example, the applicant dropped off before finishing the entire process:

{
"meta": {
"public_token": "65bf7135-4eb8-4342-a7c2-0380322b3d59",
"user_args": null,
"created_at": "2025-02-07T23:10:51.987Z",
"api_version": "1.0.0",
"external_id": null,
"status": "SUCCESS",
"substatus": null,
"nova_report_revision": null,
"consumer_id": "b281e335-9d19-4aa7-b559-e74d08a05cf4",
"consumer_external_id": "472cbdc9-cf31-4117-a095-e27e2db054e5"
},
"product": {
"name": "Village Communities",
"product_id": "12d1e755-3d82-445d-84e6-b67b5ff7c70d",
"inquiry_type": "TENANT"
},
"stated_employers": [
{
"name": "Walmart",
"input_method": "CONSUMER_INPUT",
"verification_sources": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"source_type": "PAYROLL",
"status": "SUCCESS",
"substatus": null
}
]
},
// Applicant dropped off before verifying this income source
{
"name": "Social Security",
"input_method": "CONSUMER_INPUT",
"verification_sources": []
}
],
"identities": [
{
"source_id": "CONSUMER_INPUT",
"source_uuid": null,
"first_name": "Raymond",
"last_name": "Marshal",
"full_name": "Raymond Marshal",
"emails": ["raymond@email.com"],
"matching": {
"full_name": {
"matched_sources": [
{
"source_id": "USA_AKOYA",
"source_uuid": "753c4285-9331-4502-b02b-5064904f33ce"
},
{
"source_id": "USA_FIN",
"source_uuid": "550e8400-e29b-41d4-a716-446655440000"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
],
"unmatched_sources": []
}
}
},
{
"source_id": "USA_AKOYA",
"source_uuid": "753c4285-9331-4502-b02b-5064904f33ce",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
},
{
"source_id": "USA_FIN",
"source_uuid": "550e8400-e29b-41d4-a716-446655440000",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND MARSHAL",
"emails": []
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"first_name": null,
"last_name": null,
"full_name": "RAYMOND J MARSHAL",
"emails": []
}
],
"employment": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"employer_name": "Walmart, Inc.",
"employer_address_line_1": "702 SW 8th Street",
"employer_address_line_2": null,
"employer_city": "Bentonville",
"employer_state": "Arkansas",
"employment_type": "parttime",
"employment_status": "active",
"job_title": "Cashier",
"hire_date": "2023-03-01",
"termination_date": null,
"base_pay_period": "SALARY",
"base_pay_amount": 133000.22,
"matching": {
"employer_name": {
"matched_employer_name": [
{
"stated_employer": "Walmart"
}
],
"unmatched_employer_name": []
},
"direct_deposit_accounts": {
"matched_direct_deposit_accounts": [
{
"matched_account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"truncated_account_number": "475462",
"institution_name": "Chase"
}
],
"unmatched_direct_deposit_accounts": []
}
}
}
],
"assets": {
"account_details": [
{
"source_id": "USA_AKOYA",
"source_uuid": "753c4285-9331-4502-b02b-5064904f33ce",
"account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"owner_full_name": "RAYMOND MARSHAL",
"institution_name": "Chase",
"account_name": "Checking Account",
"account_type": "CASH_EQUIVALENT",
"date_first_transaction": "2020-01-27",
"last_statement_end_date": null,
"truncated_account_number": "475462",
"responsibility": "INDIVIDUAL",
"addresses": [
{
"address_id": "6d4d5fff-25ee-4ba0-8247-9bc75b900378",
"address": "5445 ALTON PKWY IRVINE CA 92614",
"street": null,
"city": null,
"zipcode": null,
"state": null
}
],
"current_balance": 577.63,
"six_months_average_balance": 432.55,
"twelve_months_income_from_assets": 12.61
},
{
"source_id": "USA_FIN",
"source_uuid": "550e8400-e29b-41d4-a716-446655440000",
"account_id": "738a6d6e-23be-40c8-a236-39c5659a09a1",
"owner_full_name": "RAYMOND MARSHAL",
"institution_name": "Alpine Bank",
"account_name": "Checking Account",
"account_type": "CASH_EQUIVALENT",
"date_first_transaction": "2025-02-27",
"last_statement_end_date": null,
"truncated_account_number": "47205726",
"responsibility": null,
"addresses": [
{
"address_id": "6d4d5fff-25ee-4ba0-8247-9bc75b900378",
"address": "5445 ALTON PKWY IRVINE CA 92614",
"street": null,
"city": null,
"zipcode": null,
"state": null
}
],
"current_balance": 643.78,
"six_months_average_balance": 337.54,
"twelve_months_income_from_assets": 11.67
}
],
"inflows": [
{
"inflow_id": "f3f0d372-a0f7-402f-835e-67ce6db2a75f",
"account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"description": "walmart irvine superstore",
"deposited_annual_income": 10296,
"deposited_recent_income": 7696
},
{
"inflow_id": "2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d",
"account_id": "fd058f61-56d3-4150-ad9f-ff899b55f799",
"description": "soc secur treas XXX",
"deposited_annual_income": 12345,
"deposited_recent_income": 12345
},
{
"inflow_id": "c33632a0-1d6a-11eb-806e-1f1356d092eb",
"account_id": "738a6d6e-23be-40c8-a236-39c5659a09a1",
"description": "VENMO CASHOUT PPD ID",
"deposited_annual_income": 480,
"deposited_recent_income": 488
}
],
"matched_income_sources": [
{
"stated_employer": "Social Security",
"matched_inflow_id": "2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d"
},
{
"stated_employer": "Walmart",
"matched_inflow_id": "f3f0d372-a0f7-402f-835e-67ce6db2a75f"
}
]
},
"income": {
"payroll": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"provider_name": "Walmart, Inc.",
"provider_type": "EMPLOYER",
"annual_gross_income": 10296.0,
"annual_net_income": 7696.0,
"pay_frequency": "WEEKLY",
"gigs_annual_gross_earnings": null,
"gigs_annual_deposited_amount": null,
"gigs_annual_net_earnings": null,
"gig_summaries": [],
"statements": [
{
"pay_date": "2025-08-25",
"pay_period_start": "2025-08-18",
"pay_period_end": "2025-08-24",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 10296,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7696
},
{
"pay_date": "2025-08-18",
"pay_period_start": "2025-08-11",
"pay_period_end": "2025-08-17",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 10098,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7548
},
{
"pay_date": "2025-08-11",
"pay_period_start": "2025-08-04",
"pay_period_end": "2025-08-10",
"hours_worked": 38.5,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9900,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7400
},
{
"pay_date": "2025-08-04",
"pay_period_start": "2025-07-28",
"pay_period_end": "2025-08-03",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9702,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7252
},
{
"pay_date": "2025-07-28",
"pay_period_start": "2025-07-21",
"pay_period_end": "2025-07-27",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9504,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 7104
},
{
"pay_date": "2025-07-21",
"pay_period_start": "2025-07-14",
"pay_period_end": "2025-07-20",
"hours_worked": 35.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9306,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6956
},
{
"pay_date": "2025-07-14",
"pay_period_start": "2025-07-07",
"pay_period_end": "2025-07-13",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 9108,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6808
},
{
"pay_date": "2025-07-07",
"pay_period_start": "2025-06-30",
"pay_period_end": "2025-07-06",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8910,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6660
},
{
"pay_date": "2025-06-30",
"pay_period_start": "2025-06-23",
"pay_period_end": "2025-06-29",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8712,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6512
},
{
"pay_date": "2025-06-23",
"pay_period_start": "2025-06-16",
"pay_period_end": "2025-06-22",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8514,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6364
},
{
"pay_date": "2025-06-16",
"pay_period_start": "2025-06-09",
"pay_period_end": "2025-06-15",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8316,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6216
},
{
"pay_date": "2025-06-09",
"pay_period_start": "2025-06-02",
"pay_period_end": "2025-06-08",
"hours_worked": 38.5,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 8118,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 6068
},
{
"pay_date": "2025-06-02",
"pay_period_start": "2025-05-26",
"pay_period_end": "2025-06-01",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7920,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5920
},
{
"pay_date": "2025-05-26",
"pay_period_start": "2025-05-19",
"pay_period_end": "2025-05-25",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7722,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5772
},
{
"pay_date": "2025-05-19",
"pay_period_start": "2025-05-12",
"pay_period_end": "2025-05-18",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7524,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5624
},
{
"pay_date": "2025-05-12",
"pay_period_start": "2025-05-05",
"pay_period_end": "2025-05-11",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7326,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5476
},
{
"pay_date": "2025-05-05",
"pay_period_start": "2025-04-28",
"pay_period_end": "2025-05-04",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 7128,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5328
},
{
"pay_date": "2025-04-28",
"pay_period_start": "2025-04-21",
"pay_period_end": "2025-04-27",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6930,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5180
},
{
"pay_date": "2025-04-21",
"pay_period_start": "2025-04-14",
"pay_period_end": "2025-04-20",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6732,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 5032
},
{
"pay_date": "2025-04-14",
"pay_period_start": "2025-04-07",
"pay_period_end": "2025-04-13",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6534,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4884
},
{
"pay_date": "2025-04-07",
"pay_period_start": "2025-03-31",
"pay_period_end": "2025-04-06",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6336,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4736
},
{
"pay_date": "2025-03-31",
"pay_period_start": "2025-03-24",
"pay_period_end": "2025-03-30",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 6138,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4588
},
{
"pay_date": "2025-03-24",
"pay_period_start": "2025-03-17",
"pay_period_end": "2025-03-23",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5940,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4440
},
{
"pay_date": "2025-03-17",
"pay_period_start": "2025-03-10",
"pay_period_end": "2025-03-16",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5742,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4292
},
{
"pay_date": "2025-03-10",
"pay_period_start": "2025-03-03",
"pay_period_end": "2025-03-09",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5544,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 4144
},
{
"pay_date": "2025-03-03",
"pay_period_start": "2025-02-24",
"pay_period_end": "2025-03-02",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5346,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3996
},
{
"pay_date": "2025-02-24",
"pay_period_start": "2025-02-17",
"pay_period_end": "2025-02-23",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 5148,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3848
},
{
"pay_date": "2025-02-17",
"pay_period_start": "2025-02-10",
"pay_period_end": "2025-02-16",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4950,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3700
},
{
"pay_date": "2025-02-10",
"pay_period_start": "2025-02-03",
"pay_period_end": "2025-02-09",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4752,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3552
},
{
"pay_date": "2025-02-03",
"pay_period_start": "2025-01-27",
"pay_period_end": "2025-02-02",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4554,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3404
},
{
"pay_date": "2025-01-27",
"pay_period_start": "2025-01-20",
"pay_period_end": "2025-01-26",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4356,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3256
},
{
"pay_date": "2025-01-20",
"pay_period_start": "2025-01-13",
"pay_period_end": "2025-01-19",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 4158,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 3108
},
{
"pay_date": "2025-01-13",
"pay_period_start": "2025-01-06",
"pay_period_end": "2025-01-12",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3960,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2960
},
{
"pay_date": "2025-01-06",
"pay_period_start": "2024-12-30",
"pay_period_end": "2025-01-05",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3762,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2812
},
{
"pay_date": "2024-12-30",
"pay_period_start": "2024-12-23",
"pay_period_end": "2024-12-29",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3564,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2664
},
{
"pay_date": "2024-12-23",
"pay_period_start": "2024-12-16",
"pay_period_end": "2024-12-22",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3366,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2516
},
{
"pay_date": "2024-12-16",
"pay_period_start": "2024-12-09",
"pay_period_end": "2024-12-15",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 3168,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2368
},
{
"pay_date": "2024-12-09",
"pay_period_start": "2024-12-02",
"pay_period_end": "2024-12-08",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2970,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2220
},
{
"pay_date": "2024-12-02",
"pay_period_start": "2024-11-25",
"pay_period_end": "2024-12-01",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2772,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 2072
},
{
"pay_date": "2024-11-25",
"pay_period_start": "2024-11-18",
"pay_period_end": "2024-11-24",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2574,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1924
},
{
"pay_date": "2024-11-18",
"pay_period_start": "2024-11-11",
"pay_period_end": "2024-11-17",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2376,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1776
},
{
"pay_date": "2024-11-11",
"pay_period_start": "2024-11-04",
"pay_period_end": "2024-11-10",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 2178,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1628
},
{
"pay_date": "2024-11-04",
"pay_period_start": "2024-10-28",
"pay_period_end": "2024-11-03",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1980,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1480
},
{
"pay_date": "2024-10-28",
"pay_period_start": "2024-10-21",
"pay_period_end": "2024-10-27",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1782,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1332
},
{
"pay_date": "2024-10-21",
"pay_period_start": "2024-10-14",
"pay_period_end": "2024-10-20",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1584,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1184
},
{
"pay_date": "2024-10-14",
"pay_period_start": "2024-10-07",
"pay_period_end": "2024-10-13",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1386,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 1036
},
{
"pay_date": "2024-10-07",
"pay_period_start": "2024-09-30",
"pay_period_end": "2024-10-06",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 1188,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 888
},
{
"pay_date": "2024-09-30",
"pay_period_start": "2024-09-23",
"pay_period_end": "2024-09-29",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 990,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 740
},
{
"pay_date": "2024-09-23",
"pay_period_start": "2024-09-16",
"pay_period_end": "2024-09-22",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 792,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 592
},
{
"pay_date": "2024-09-16",
"pay_period_start": "2024-09-09",
"pay_period_end": "2024-09-15",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 594,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 444
},
{
"pay_date": "2024-09-09",
"pay_period_start": "2024-09-02",
"pay_period_end": "2024-09-08",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 396,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 296
},
{
"pay_date": "2024-09-02",
"pay_period_start": "2024-08-26",
"pay_period_end": "2024-09-01",
"hours_worked": 40.0,
"gross_total_earnings_amount_current": 198,
"gross_total_earnings_amount_ytd": 198,
"net_total_earnings_amount_current": 148,
"net_total_earnings_amount_ytd": 148
}
]
}
],
"documents": [
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "cf0fa8ef-a79e-4e2a-a829-3a9a61db66e3",
"available_date": "2025-08-25",
"source_filepath": "cf0fa8ef-a79e-4e2a-a829-3a9a61db66e3/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "7f3e9c82-4d5a-4b8e-9f2c-1a6b8e4d7c3f",
"available_date": "2025-08-18",
"source_filepath": "7f3e9c82-4d5a-4b8e-9f2c-1a6b8e4d7c3f/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"available_date": "2025-08-11",
"source_filepath": "f47ac10b-58cc-4372-a567-0e02b2c3d479/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "6ba7b812-9dad-11d1-80b4-00c04fd430c8",
"available_date": "2025-08-04",
"source_filepath": "6ba7b812-9dad-11d1-80b4-00c04fd430c8/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "9d8c7b6a-5e4f-3210-abcd-ef9876543210",
"available_date": "2025-07-28",
"source_filepath": "9d8c7b6a-5e4f-3210-abcd-ef9876543210/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "1a2b3c4d-5e6f-7890-abcd-123456789abc",
"available_date": "2025-07-21",
"source_filepath": "1a2b3c4d-5e6f-7890-abcd-123456789abc/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "8f7e6d5c-4b3a-2190-fedc-ba9876543210",
"available_date": "2025-07-14",
"source_filepath": "8f7e6d5c-4b3a-2190-fedc-ba9876543210/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "fedcba98-7654-3210-9876-543210fedcba",
"available_date": "2025-07-07",
"source_filepath": "fedcba98-7654-3210-9876-543210fedcba/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "24681357-9bdf-ace0-2468-13579bdfac24",
"available_date": "2025-06-30",
"source_filepath": "24681357-9bdf-ace0-2468-13579bdfac24/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "97531246-8ace-0bdf-9753-1246acedbf97",
"available_date": "2025-06-23",
"source_filepath": "97531246-8ace-0bdf-9753-1246acedbf97/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "abcdef12-3456-7890-abcd-ef1234567890",
"available_date": "2025-06-16",
"source_filepath": "abcdef12-3456-7890-abcd-ef1234567890/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "1122aabb-ccdd-eeff-1122-aabbccddeeff",
"available_date": "2025-06-09",
"source_filepath": "1122aabb-ccdd-eeff-1122-aabbccddeeff/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"available_date": "2025-06-02",
"source_filepath": "9988ffee-ddcc-bbaa-9988-ffeeddccbbaa/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "deadbeef-cafe-babe-dead-beefcafebabe",
"available_date": "2025-05-26",
"source_filepath": "deadbeef-cafe-babe-dead-beefcafebabe/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
},
{
"source_id": "USA_ARGYLE",
"source_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"document_type": "PAYSTUB",
"document_id": "c0ffee00-d00d-face-c0ff-ee00d00dface",
"available_date": "2025-05-19",
"source_filepath": "c0ffee00-d00d-face-c0ff-ee00d00dface/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf"
}
]
},
"application_completeness_checks": [
{
"check": "MISSING_DEPOSIT_ACCOUNTS_DETECTED",
"value": false
},
{
"check": "PRIMARY_ACCOUNT_NOT_DETECTED",
"value": false
},
{
"check": "VENMO_TRANSACTIONS_DETECTED",
"value": true
},
{
"check": "CASHAPP_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "ZELLE_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "PAYPAL_TRANSACTIONS_DETECTED",
"value": false
},
{
"check": "SKIPPED_INCOME",
"value": true
}
]
}

Sandbox Environment

The sandbox environment provides a safe testing space to integrate and validate your implementation before going to production. This guide covers everything you need to know about testing in sandbox mode.

Overview

The sandbox environment allows you to:

  • Access predefined test user profiles with different data scenarios
  • Simulate various response states and error conditions
  • Validate your webhook integration
  • Test both assets and income sections of the AFH report

For general information about sandbox vs. production environments, see the Quickstart Guide.

Accessing Sandbox Reports

To retrieve a sandbox report, you must provide specific test user information through the NovaConnect widget's prefill functionality. The prefill data can match one of our predefined test profiles exactly. If the prefill data is different from the user profile you select in the UI, it will appear in unmatched_sources in the matching[] section of the report.

You could also prefill using a test email you have access to, that will help you go through the end-to-end user journey.

For sandbox testing, any address value can be passed in the required address field.

Required Information

Each test user requires the following prefill fields:

  • firstName - The test user's first name
  • lastName - The test user's last name
  • dateOfBirth - Date of birth in YYYY-MM-DD format
  • email - The test user's email address
  • state - The test user's state
  • statedEmployerNames - statedEmployerNames - The names of the applicant's current employers, with a minimum of 1 name and a maximum of 6 names

Learn more about implementing prefill in the Quickstart Guide.

User Profiles

We have one test user for the full E2E Eligibility Compass report flow, with a number of variations allowing for testing different scenarios.

Prefill information

  • firstName - Annie
  • lastName - Affordable
  • dateOfBirth - 6/18/1995
  • email - annie@email.com
  • state - MO
  • statedEmployerNames - Walmart, Uber, Social Security
    • NOTE: These are the three supported employers in sandbox. You may use any combination of the above stated employers as a prefill information. They can also be “added” in the flow.

Asset testing

When proceeding through the flow in sandbox mode, connect up to 6 Bank Connections / Bank Statement uploads.

If testing a bank connection is selected:

  • Select a bank from the tiles available
  • Select either "Annie" or "Simulate Error" to simulate a response

If you'd like to test bank statements:

  • Type “abc testing bank” in the bank selector payroll
  • Select “Try another method" (this will appear when there are no search results)
  • Supply 6 total bank statements, with at least one bank statement with a filename that matches against a known test user:
FilenameOutcome
annie.pdfValid statement with normal transaction history
annie_detected.pdfStatement with irregularities detected

Income testing

When proceeding through the flow in sandbox mode, for each stated employer you can choose to either verify with payroll or with documents.

If payroll is selected:

  • Select a provider from the drop down
  • Select either “Test User” or “Argyle Error” to simulate a response

If payroll is skipped and the user proceeds to document upload:

  • Upload any document meeting the requirements
  • Up to 4 documents can be uploaded for each income source

Simulating Error States

Expired Session

  • Set lastName to expiresoon in the prefill data
  • Result: Triggers an EXPIRED status in 5 minutes instead of the standard 5 days
  • Use Case: Tests timeout handling, and allows for partial report generation

Supplier Unresponsive

To test a Supplier Unresponsive response for bank connections:

  • Choose Mikomo Bank and click "Simulate Supplier Outage", or choose MX and click "Simulate Supplier Unresponsive"
  • Result: Triggers a SUPPLIER_UNRESPONSIVE status for the corresponding bank connection
  • Use Case: Test error handling for aggregator connection failures

To test a Supplier Unresponsive response during income verification:

  • In the Argyle Simulator, click on "Argyle Supplier Unresponsive" button
  • Result: Triggers a SUPPLIER_UNRESPONSIVE status for the corresponding payroll connection
  • Use Case: Test error handling for payroll connection failures

Webhooks

Webhooks are the mechanism that Nova Credit uses to inform you of core initialization and completion steps for each NovaConnect widget interaction. A session is initialized when the NovaConnect widget is opened. One session can consist of multiple suppliers, and these supplier-flow outcomes are recorded and attached to the webhook body in the history node.

We make a POST API call to the webhook callback URL that you provide. Webhooks can be managed in the Developer tab on the Nova Credit Dashboard, where you must set your callback URL and can toggle your various event subscriptions on and off. Some events or statuses are subscribed to by default.

Webhook Event Types

Each Webhook API call will contain one of the event types listed below in the JSON body:

Event TypeDescription
VISITA single NovaConnect widget interaction, which can consist of multiple suppliers. Only one terminal status outcome is sent per widget open; other supplier-flow outcomes are recorded and attached to the webhook in the history node
REGENERATED_VISITOnly occurs for reports that have been regenerated. This event type also includes a novaReportRevision in the webhook body.

Webhook Status Codes

View the status table to see the full list of statuses, with the "Webhook" column representing which ones correspond to a webhook call.

Webhook Body

Webhook Body KeyDescription
eventTypeEvent Type (see event type table above) corresponding to this webhook
statusStatus (see status code table above) corresponding to this webhook
substatusA more detailed status. See substatus types
publicTokenUnique UUID associated with this status, which can be used to retrieve the Nova Credit report
externalIdOptional unique identifier passed in by the Nova Credit customer (you) with this application. This key will only be present if externalId was passed in
userArgsOptional string passed in by the Nova Credit customer (you) with this application. This key will only be present if userArgs was passed in
eventIdUnique ID for the webhook
eventCreatedTimeWebhook event timestamp
reportTypeThe type of Nova Credit report.
consumerIdUnique identifier of the consumer associated with this status. Only returned if NovaConnect Consumer Endpoints BETA feature is enabled.
consumerExternalIdOptional unique identifier from your system of the consumer associated with this status. Only returned if NovaConnect Consumer Endpoints BETA feature is enabled.

Example:

{
eventType: 'VISIT',
status: 'SUCCESS',
publicToken: '6b986690-458b-11e7-98fb-a71570ea65a6',
externalId: '25ad7063-fe76-437a-b4d8-3662ba4cc9c7',
userArgs: '235234224',
eventId: '028d9354-3991-46c4-97df-bd6c2ff09733',
eventCreatedTime: '2025-09-26T33:15:23.17Z',
reportType: 'Eligibility Compass',
consumerId: 'b281e335-9d19-4aa7-b559-e74d08a05cf4',
consumerExternalId: '472cbdc9-cf31-4117-a095-e27e2db054e5'
}

Webhook Failures

When a webhook fails we retry posting with an exponential increase in the time between each attempt. For example, the first retry happens after 1 second, the second after 2 seconds etc.

Number of AttemptsTime Until Retry if Unsuccessful
11 second
22 seconds
34 seconds
48 seconds
......

This strategy allows for several retries within a few minutes but expands to daily retries in the case of an outage, allowing customers to restore before receiving the callback. However, if a callback is still unsuccessful after one week we do not continue retrying.

For more information, please visit the server integration section in our Quickstart Guide.

Webhook Signature

Nova Credit optionally signs webhook payloads in order to allow for trust verification of inbound webhook requests.

When configured, the webhook request will contain these additional headers:

HeaderValue
X-Timestamptimestamp of request generation
X-Nova-SignatureSHA256 HMAC digest of request timestamp and payload, period-delimited. Your Webhook Signatures Secret Key is found under the Webhooks section on the Developer tab of your Nova Credit Dashboard.

Please contact your Nova Credit account manager to enable this feature.

Example verification of signature:

const crypto = require('crypto');

const signature = req.get('X-Nova-Signature');
const timestamp = req.get('X-Timestamp');

const checkPayload = `${timestamp}.${JSON.stringify(req.body)}`;
const checkDigest = crypto.createHmac('sha256', '< webhook secret key >')
.update(checkPayload)
.digest('base64');

return crypto.timingSafeEquals(signature, checkDigest);

For more information, please visit the server integration section in our Quickstart Guide.

Error Codes & Responses

At Nova Credit, we distinguish between two status message deliveries:

  1. Delivered by Nova Credit to the webhook
  2. If you call a resource endpoint Nova Credit provides a status in the response

Resource Endpoint Errors

When an error occurs while calling the endpoints the Nova Credit servers send back a JSON object with the following format:

{
"error": "UNKNOWN_CUSTOMER",
"terminated": true
}

Error Codes

The Nova Credit endpoints return the following HTTP status codes and error messages:

HTTP Status CodeErrorDescription
200-The request was successful.
400MALFORMED_HEADERSThe request headers are incorrectly formatted.
400MISSING_INPUTAn input is missing that the endpoint expected.
400INVALID_PUBLIC_IDThe public ID is not valid.
401EXPIRED_TOKENThe access_token you're sending in the request headers has expired. Please request a new one.
403UNKNOWN_CUSTOMERThe public_id or client_id Nova Credit received in the request from is not recognized. Check your credentials in the Nova Credit Dashboard.
403UNAUTHORIZEDThe client_id and secret_key combination is not recognized. Check your credentials in the Nova Credit Dashboard.
403ORIGIN_UNAUTHORIZEDThe origin of the request is not whitelisted on the Nova Credit servers for CORS.
404INVALID_EXTERNAL_IDThe external ID is not valid.
404INVALID_TOKENThe public_token or access_token is not valid for reasons other than expiration.
408REQUEST_TIMEOUTThe request timed out.
500INTERNAL_ERRORSomething went wrong. Please send a note to your Nova Credit Representative with additional details so we can investigate.

Changelog

We're always working to improve the Nova Credit platform! Here's a snapshot of API features we're shipping and bugs we're squashing.

2026 January

2025 December

  • Updated descriptions for employment fields: base_pay_period, base_pay_amount, and termination_date
    • Clarified that base_pay_rate and base_pay_period can be null
  • Updated descriptions for income.payroll fields: annual_gross_income and annual_net_income
  • Renamed "pay_period" table to base_pay_period to match the field name
  • Added "available_date" field to documents
  • Add E_BANKING_NOT_SUPPORTED substatus for errors when connected institution doesn't support e-banking features
  • Added direct_deposit_accounts node to employment
    • Updated report samples to also include direct_deposit_accounts node

2025 November

2025 October

  • Fixed examples in employment and identities
  • Added SKIPPED to statuses
  • Added BENEFIT to document_type, which is returned when applicant connects a benefits provider
  • Removed primary_account_detected from assets.account_details
  • Added account_id to assets.inflows node
  • Added consumer_id and consumer_external_id to report meta
  • Added consumerId and consumerExternalId to webhook body
  • Updated the description of the status NOT_AUTHENTICATED
  • Added MFA_REQUIRED_ON_FETCH and INCOMPATIBLE_ACCOUNT_TYPES_SUBMITTED as substatuses under NOT_AUTHENTICATED
  • Removed INCOMPATIBLE_ACCOUNT_TYPES_SUBMITTED as substatuses under ERROR
  • Added gig specific compute fields to income

2025 September

  • Initial documentation created