Mastercard

Mastercard payment and fraud detection APIs

developer.mastercard.com ↗
Version
1.16.2
OpenAPI
3.0.3
Endpoints
104
Schemas
514
Updated
3 days ago
Payments payments fintech fraud
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.finicity.com

Authentication

apiKey apiKey

Endpoints

Clear filters

Accounts 2 endpoints

DELETE /aggregation/v1/customers/{customerId}/accounts/{accountId}

Remove the given account from Finicity aggregation. _Supported regions_: ![πŸ‡ΊπŸ‡Έ](https://flagcdn.com/20x15/us.png)

operationId: Accounts_removeByCustomerIdAndAccountId

Parameters

Name In Required Type Description
optional
optional

Responses

204
400
401
404
DELETE /aggregation/v1/customers/{customerId}/accounts/{accountId}
DELETE /aggregation/v1/customers/{customerId}/institutionLogins/{institutionLoginId}

Remove from Finicity aggregation the set of accounts matching the institution login ID. _Supported regions_: ![πŸ‡ΊπŸ‡Έ](https://flagcdn.com/20x15/us.png)

operationId: Accounts_removeByInstitutionLogin

Parameters

Name In Required Type Description
optional
optional

Responses

204
400
401
404
DELETE /aggregation/v1/customers/{customerId}/institutionLogins/{institutionLoginId}

Customers 1 endpoints

DELETE /aggregation/v1/customers/{customerId}

Completely remove a customer from the system. This will remove the customer and all associated accounts and transactions. ⚠️ Use this service carefully! It will not pause for confirmation before performing the operation! _Supported regions_: ![πŸ‡ΊπŸ‡Έ](https://flagcdn.com/20x15/us.png)

operationId: Customers_removeById

Parameters

Name In Required Type Description
optional

Responses

204
401
404
DELETE /aggregation/v1/customers/{customerId}

Third party access 1 endpoints

DELETE /aggregation/v1/partners/accessKey/{consentReceiptId}

Revoke access of third party partners

operationId: ThirdPartyAccess_revokePartnersAccess

Parameters

Name In Required Type Description
optional

Responses

204
400
401
404
DELETE /aggregation/v1/partners/accessKey/{consentReceiptId}

Txpush 2 endpoints

DELETE /aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush

Delete all TxPush subscriptions with their notifications for the given account. No more notifications will be sent for account or transaction events. For additional details on this process, see [TxPush Listener Service](https://developer.mastercard.com/open-banking-us/documentation/products/manage/tx-push/#setting-up-the-txpush-listener-service). _Supported regions_: ![πŸ‡ΊπŸ‡Έ](https://flagcdn.com/20x15/us.png)

operationId: TxPush_disableNotifications

Parameters

Name In Required Type Description
optional
optional

Responses

204
400
401
404
DELETE /aggregation/v1/customers/{customerId}/accounts/{accountId}/txpush
DELETE /aggregation/v1/customers/{customerId}/subscriptions/{subscriptionId}

Delete a specific subscription to TxPush notifications for the given account. This could be individual deleting the account or transactions events. No more events will be sent for that specific subscription. For additional details on this process, see [TxPush Listener Service](https://developer.mastercard.com/open-banking-us/documentation/products/manage/tx-push/#setting-up-the-txpush-listener-service). _Supported regions_: ![πŸ‡ΊπŸ‡Έ](https://flagcdn.com/20x15/us.png)

operationId: TxPush_deleteSubscription

Parameters

Name In Required Type Description
optional
optional

Responses

204
400
401
404
DELETE /aggregation/v1/customers/{customerId}/subscriptions/{subscriptionId}

Schemas

object ACHDetails
{
  "type": "object",
  "required": [
    "routingNumber",
    "realAccountNumber"
  ],
  "properties": {
    "routingNumber": {
      "type": "string",
      "example": "123456789",
      "description": "The routing number of the financial institution for specific customer account"
    },
    "realAccountNumber": {
      "type": "string",
      "example": "002345678901",
      "description": "The account number for initiating ACH transfers for this account"
    }
  },
  "description": "The routing and account number information to initiate ACH transfers"
}
object AFBalanceAnalyticsReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/AnalyticsReportAck"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "example": 730,
          "description": "Number of days covered by the report"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 365 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records, including information about the individual accounts used in this report"
        },
        "customerAnalytics": {
          "$ref": "#/components/schemas/CustomerAnalytics"
        }
      }
    }
  ],
  "description": "A Balance Analytics Report"
}
object AFBusiness
{
  "type": "object",
  "required": [
    "name",
    "address"
  ],
  "properties": {
    "name": {
      "$ref": "#/components/schemas/BusinessName"
    },
    "address": {
      "type": "object",
      "properties": {
        "city": {
          "$ref": "#/components/schemas/City"
        },
        "state": {
          "$ref": "#/components/schemas/State"
        },
        "country": {
          "$ref": "#/components/schemas/Country"
        },
        "postalCode": {
          "$ref": "#/components/schemas/ZipCode"
        },
        "addressLine1": {
          "$ref": "#/components/schemas/AddressLine1"
        },
        "addressLine2": {
          "$ref": "#/components/schemas/AddressLine2"
        }
      }
    }
  }
}
object AFCashFlowAnalyticsReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/AnalyticsReportAck"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "example": 730,
          "description": "Number of days covered by the report"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 365 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records, including information about the individual accounts used in this report"
        },
        "customerAnalytics": {
          "$ref": "#/components/schemas/CustomerAnalytics"
        }
      }
    }
  ],
  "description": "A Cash Flow Analytics Report"
}
object AccessToken
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "example": "YBh22Sb9Es6e66Q7lWdt",
      "description": "The access token value"
    }
  },
  "description": "A temporary access token to be passed in the `Finicity-App-Token` HTTP header of all subsequent API requests"
}
object AccountAnalytics
{
  "type": "object",
  "required": [
    "transactionalAttributes",
    "stateAttributes",
    "streams"
  ],
  "properties": {
    "streams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StreamModel"
      },
      "description": "List of generated streams"
    },
    "stateAttributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StateAttribute"
      },
      "description": "List of calculated state attributes"
    },
    "transactionalAttributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TransactionalAttribute"
      },
      "description": "List of calculated transactional attributes"
    }
  },
  "description": "Analytics calculated for one account in the report."
}
object AccountDetails
{
  "type": "object",
  "properties": {
    "vestedBalance": {
      "type": "number",
      "example": 300000,
      "description": "Only available for investment accounts. Vested amount in account."
    },
    "currentLoanBalance": {
      "type": "number",
      "example": 0,
      "description": "Only available for investment accounts. Current loan balance."
    },
    "availableCashBalance": {
      "type": "number",
      "example": 1500,
      "description": "Only available for investment accounts. Amount available for cash withdrawal."
    },
    "interestMarginBalance": {
      "type": "number",
      "example": -50000,
      "description": "Only available for investment accounts. Net interest earned after deducting interest paid out."
    },
    "availableBalanceAmount": {
      "type": "number",
      "example": 1000,
      "description": "The available balance for the account"
    }
  }
}
object AccountDetailsTxBased
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/AccountDetails"
    },
    {
      "type": "object",
      "properties": {
        "marginBalance": {
          "type": "number",
          "example": 100,
          "description": "Net interest earned after deducting interest paid out"
        },
        "currentBalance": {
          "type": "number",
          "example": 1000,
          "description": "Current balance"
        }
      }
    }
  ]
}
string AccountId
{
  "type": "string",
  "example": "5011648377",
  "description": "An account ID"
}
string AccountNumberDisplay
{
  "type": "string",
  "description": "The account number from a financial institution in truncated format:\n\n  * Last four digits: \"1234\"\n\n  * Last four digits with suffix: \"1234-9\"\n\n  * Full value for string accounts: \"john@gmail.com\"\nexample: '1234-9'"
}
string AccountNumberLast4
{
  "type": "string",
  "example": "5678",
  "description": "The last 4 digits of the ACH account number"
}
object AccountOwner
{
  "type": "object",
  "required": [
    "ownerName",
    "ownerAddress"
  ],
  "properties": {
    "asOfDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "ownerName": {
      "type": "string",
      "example": "John Smith",
      "description": "The name of the account owner. Can be multiple account owners in one string. This is how the source data is returned from the institution."
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/Address"
    }
  },
  "description": "Owner of a customer account"
}
object AccountOwnerAddress
{
  "type": "object",
  "properties": {
    "city": {
      "$ref": "#/components/schemas/City"
    },
    "type": {
      "$ref": "#/components/schemas/AddressType"
    },
    "line1": {
      "$ref": "#/components/schemas/AddressLine1"
    },
    "line2": {
      "$ref": "#/components/schemas/AddressLine2"
    },
    "line3": {
      "$ref": "#/components/schemas/AddressLine3"
    },
    "state": {
      "$ref": "#/components/schemas/State"
    },
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "postalCode": {
      "$ref": "#/components/schemas/ZipCode"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/Address"
    }
  },
  "description": "Account owner address"
}
array AccountOwnerAddresses
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerAddress"
  },
  "description": "List of addresses"
}
object AccountOwnerDetails
{
  "type": "object",
  "required": [
    "ownerName",
    "addresses"
  ],
  "properties": {
    "emails": {
      "$ref": "#/components/schemas/AccountOwnerEmails"
    },
    "phones": {
      "$ref": "#/components/schemas/AccountOwnerPhones"
    },
    "suffix": {
      "$ref": "#/components/schemas/Suffix"
    },
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "addresses": {
      "$ref": "#/components/schemas/AccountOwnerAddresses"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    },
    "ownerName": {
      "$ref": "#/components/schemas/AccountOwnerName"
    },
    "middleName": {
      "$ref": "#/components/schemas/MiddleName"
    },
    "relationship": {
      "$ref": "#/components/schemas/AccountOwnerRelationshipType"
    },
    "documentations": {
      "$ref": "#/components/schemas/AccountOwnerDocumentations"
    },
    "identityInsights": {
      "$ref": "#/components/schemas/AccountOwnerIdentityInsights"
    },
    "nameClassification": {
      "$ref": "#/components/schemas/NameClassificationType"
    },
    "nameClassificationconfidencescore": {
      "$ref": "#/components/schemas/ClassificationConfidenceScore"
    }
  },
  "description": "Owner of a customer account"
}
object AccountOwnerDocumentation
{
  "type": "object",
  "properties": {
    "taxId": {
      "$ref": "#/components/schemas/TaxId"
    },
    "governmentId": {
      "$ref": "#/components/schemas/GovernmentId"
    },
    "taxIdCountry": {
      "$ref": "#/components/schemas/Country"
    }
  },
  "description": "Account owner documentation"
}
array AccountOwnerDocumentations
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerDocumentation"
  },
  "description": "List of account owner documentation"
}
object AccountOwnerEmail
{
  "type": "object",
  "properties": {
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "emailType": {
      "$ref": "#/components/schemas/AccountOwnerEmailType"
    },
    "isPrimary": {
      "$ref": "#/components/schemas/AccountOwnerEmailPrimary"
    }
  },
  "description": "Account owner email"
}
boolean AccountOwnerEmailPrimary
{
  "type": "boolean",
  "example": true,
  "description": "The email is primary."
}
string AccountOwnerEmailType
{
  "type": "string",
  "example": "Personal",
  "description": "The account owner's email type.\n\n* \"Personal\" \n\n* \"Business\""
}
array AccountOwnerEmails
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerEmail"
  },
  "description": "List of emails"
}
object AccountOwnerHolders
{
  "type": "object",
  "required": [
    "holders"
  ],
  "properties": {
    "holders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AccountOwnerDetails"
      },
      "description": "List of account owners"
    }
  }
}
object AccountOwnerIdentityInsights
{
  "type": "object",
  "properties": {
    "ipRisk": {
      "$ref": "#/components/schemas/IpRisk"
    },
    "warnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Warnings"
      }
    },
    "emailToName": {
      "$ref": "#/components/schemas/EmailToName"
    },
    "ipRiskScore": {
      "$ref": "#/components/schemas/IpRiskScore"
    },
    "phoneToName": {
      "$ref": "#/components/schemas/PhoneToName"
    },
    "isEmailValid": {
      "$ref": "#/components/schemas/EmailValid"
    },
    "isPhoneValid": {
      "$ref": "#/components/schemas/PhoneValid"
    },
    "phoneCarrier": {
      "$ref": "#/components/schemas/PhoneCarrier"
    },
    "addressToName": {
      "$ref": "#/components/schemas/AddressToName"
    },
    "phoneLineType": {
      "$ref": "#/components/schemas/PhoneLineType"
    },
    "ipLastSeenDays": {
      "$ref": "#/components/schemas/IpLastSeenDays"
    },
    "phoneToAddress": {
      "$ref": "#/components/schemas/PhoneToAddress"
    },
    "ipPhoneDistance": {
      "$ref": "#/components/schemas/IpPhoneDistance"
    },
    "phoneCountryCode": {
      "$ref": "#/components/schemas/PhoneCountryCode"
    },
    "identityRiskScore": {
      "$ref": "#/components/schemas/IdentityRiskScore"
    },
    "ipAddressDistance": {
      "$ref": "#/components/schemas/IpAddressDistance"
    },
    "phoneLastSeenDays": {
      "$ref": "#/components/schemas/PhoneLastSeenDays"
    },
    "emailFirstSeenDays": {
      "$ref": "#/components/schemas/EmailFirstSeenDays"
    },
    "addressValidityLevel": {
      "$ref": "#/components/schemas/AddressValidityLevel"
    },
    "identityNetworkScore": {
      "$ref": "#/components/schemas/IdentityNetworkScore"
    },
    "emailDomainCreationDate": {
      "$ref": "#/components/schemas/EmailDomainCreationDate"
    },
    "phoneEmailFirstSeenDays": {
      "$ref": "#/components/schemas/PhoneEmailFirstSeenDays"
    },
    "ipGeolocationCountryCode": {
      "$ref": "#/components/schemas/IpGeolocationCountryCode"
    },
    "ipGeolocationSubdivision": {
      "$ref": "#/components/schemas/IpGeolocationSubdivision"
    }
  },
  "description": "List of account owner Identity Insights"
}
string AccountOwnerName
{
  "type": "string",
  "example": "John Smith, PhD",
  "description": "The full name of the account owner. Multiple account owners are returned in one string per the source data from the institution."
}
object AccountOwnerPhone
{
  "type": "object",
  "properties": {
    "type": {
      "$ref": "#/components/schemas/AccountOwnerPhoneType"
    },
    "phone": {
      "$ref": "#/components/schemas/PhoneNumber"
    },
    "country": {
      "$ref": "#/components/schemas/PhoneCountry"
    }
  },
  "description": "Consumer phone"
}
string AccountOwnerPhoneType
{
  "type": "string",
  "example": "HOME",
  "description": "The account owner's phone type:   \n\n* \"HOME\"\n\n* \"BUSINESS\"\n\n* \"CELL\"\n\n* \"FAX\""
}
array AccountOwnerPhones
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountOwnerPhone"
  },
  "description": "List of phones"
}
string AccountOwnerRelationshipType
{
  "type": "string",
  "example": "AUTHORIZED_USER",
  "description": "The type of relationship to the account:  \n* \"AUTHORIZED_USER\"  \n\n* \"BUSINESS\"   \n\n* \"FOR_BENEFIT_OF_PRIMARY\"  \n\n* \"FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED\"  \n\n* \"FOR_BENEFIT_OF_SECONDARY\"\n\n* \"FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED\"\n\n* \"FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED\"\n\n* \"POWER_OF_ATTORNEY\"\n\n* \"PRIMARY_JOINT_TENANTS\"\n\n* \"PRIMARY\"\n\n* \"PRIMARY_BORROWER\"\n\n* \"PRIMARY_JOINT\"\n\n* \"SECONDARY\"\n\n* \"SECONDARY_JOINT_TENANTS\"\n\n* \"SECONDARY_BORROWER\"\n\n* \"SECONDARY_JOINT\"\n\n* \"SOLE_OWNER\"\n\n* \"TRUSTEE\"\n\n* \"UNIFORM_TRANSFER_TO_MINOR\""
}
string AccountStatus
{
  "type": "string",
  "example": "pending",
  "description": "An account status"
}
string AccountType
{
  "type": "string",
  "example": "checking",
  "description": "The list of supported account types.\n* \"checking\": Standard checking\n* \"savings\": Standard savings\n* \"cd\": Certificates of deposit\n* \"moneyMarket\": Money Market\n* \"creditCard\": Standard credit cards\n* \"lineOfCredit\": Home equity, line of credit\n* \"investment\": Generic investment (no details)\n* \"investmentTaxDeferred\": Generic tax-advantaged investment (no details)\n* \"employeeStockPurchasePlan\": ESPP, Employee Stock Ownership Plans (ESOP), Stock Purchase Plans\n* \"ira\": Individual Retirement Account (not Rollover or Roth)\n* \"401k\": 401K Plan\n* \"roth\": Roth IRA, Roth 401K\n* \"403b\": 403B Plan\n* \"529plan\": 529 Plan (True value is 529)\n* \"rollover\": Rollover IRA\n* \"ugma\": Uniform Gifts to Minors Act\n* \"utma\": Uniform Transfers to Minors Act\n* \"keogh\": Keogh Plan\n* \"457plan\": 457 Plan (True value is 457)\n* \"401a\": 401A Plan\n* \"brokerageAccount\": Brokerage Account\n* \"educationSavings\": Education Savings Account that is not a 529\n* \"healthSavingsAccount\": HSA (Health Savings Accounts)\n* \"pension\": Pension\n* \"profitSharingPlan\": Profit Sharing Plan\n* \"roth401k\": Roth 401K\n* \"sepIRA\": Simplified Employee Pension IRA\n* \"simpleIRA\": Simple IRA\n* \"thriftSavingsPlan\": Thrift Savings Plan\n* \"variableAnnuity\": Variable Annuity\n* \"cryptocurrency\": Cryptocurrency Wallet, Cryptocurrency Account\n* \"mortgage\": Standard Mortgages\n* \"loan\": Auto loans, equity loans, other loans\n* \"studentLoan\": Student Loan\n* \"studentLoanGroup\": Student Loan Group\n* \"studentLoanAccount\": Student Loan Account"
}
string ActiveStatus
{
  "type": "string",
  "example": "ACTIVE",
  "description": "Possible values: \"ACTIVE\", \"INACTIVE\""
}
string Address
{
  "type": "string",
  "example": "434 W Ascension Way",
  "description": "A street address"
}
string AddressLine1
{
  "type": "string",
  "example": "434 W Ascension Way",
  "description": "Address line 1"
}
string AddressLine2
{
  "type": "string",
  "example": "Suite #200",
  "description": "Address line 2"
}
string AddressLine3
{
  "type": "string",
  "example": "UT 84123",
  "description": "Address line 3"
}
string AddressToName
{
  "type": "string",
  "example": "match",
  "description": "The match status between the input name and the queried entity.\n* not-found\n* match\n* no-match"
}
string AddressType
{
  "type": "string",
  "example": "Home",
  "description": "The type of address location:\n* \"Business\"\n* \"Home\"\n* \"Mailing\""
}
number AddressValidityLevel
{
  "type": "number",
  "example": null,
  "description": "The most granular level to which the address could be validated. Ex. If the address was only valid to the city level (but not to the house level), it would return β€œvalid_to_city”.\n  * missing_address - An input address was not provided.\n\n  * invalid - The input address is not valid.\n\n  * valid - The input address is valid.\n\n  * valid_to_country - The input address could only be validated to the\ncountry level. This means the country of the input address is valid, but the other elements of the input address were unable to be confirmed as valid or invalid.\n\n  * valid_to_city - The input address was validated to the city level.\nThis means the country, state, city, and postal code of the input address are valid, but the street, house number, and subpremise of the input address were unable to be confirmed as valid or invalid.\n\n  * valid_to_street - The input address was validated to the street\nlevel. This means the country, state, city, postal code, and street of the input address are valid, but the house number and subpremise of the input address were unable to be confirmed as valid or invalid.\n\n    * valid_to_house_number - The input address was validated to the\nstreet and house number level. This means the country, state, city, postal code, street, and house number of the input address are valid, but the subpremise of the input address was unable to be confirmed as valid or invalid. \n\n    * valid_to_house_number_missing_apt - The input address was\nvalidated to the street and house number level. This means the country, state, city, postal code, street, and house number of the input address are valid, but the subpremise of the input address was missing and thus unable to be confirmed as valid or invalid."
}
string AggregationStatus
{
  "type": "string",
  "example": "active",
  "description": "\"pending\" during account discovery, always \"active\" following\n  successful account activation"
}
integer AggregationStatusCode
{
  "type": "integer",
  "description": "The status of the most recent aggregation attempt (see [Aggregation Status Codes](https://developer.mastercard.com/open-banking-us/documentation/products/manage/account-aggregation/#aggregation-status-codes)). Won't be present until you have run your first aggregation for the account."
}
object AnalyticsReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAck"
    },
    {
      "type": "object",
      "properties": {
        "reportPin": {
          "$ref": "#/components/schemas/ReportPin"
        },
        "constraints": {
          "$ref": "#/components/schemas/AnalyticsReportConstraintsOut"
        },
        "businessDetails": {
          "$ref": "#/components/schemas/BusinessDetails"
        }
      }
    }
  ],
  "required": [
    "id",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "type",
    "status",
    "constraints"
  ]
}
object AnalyticsReportConstraints
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "analyticsReportData": {
      "$ref": "#/components/schemas/AnalyticsReportData"
    }
  }
}
object AnalyticsReportConstraintsOut
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "analyticsReportData": {
      "$ref": "#/components/schemas/AnalyticsReportData"
    }
  }
}
object AnalyticsReportData
{
  "type": "object",
  "required": [
    "forCraPurpose"
  ],
  "properties": {
    "forCraPurpose": {
      "type": "boolean",
      "example": true,
      "description": "Field to indicate if the requested report is for CRA or NONCRA. For small business lending or other similar business use cases, pass the value as β€œtrue” for purposes of this field."
    },
    "timeIntervalTypes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TimeIntervalType"
      },
      "example": [
        "MONTHLY_CALENDAR"
      ],
      "maxItems": 2,
      "description": "Requested time interval for attribute values."
    },
    "applicantIsPersonalGuarantor": {
      "type": "boolean",
      "example": true,
      "description": "Field to indicate if the business owner will personally guarantee the loan. If true, a consumer record will be required."
    }
  },
  "description": "Parameters supplied by the client requesting the analytics."
}
object AnalyticsReportsAccount
{
  "type": "object",
  "required": [
    "id",
    "name",
    "number",
    "type",
    "currency",
    "transactions"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1000023996,
      "description": "The ID of the account"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "One of the values from account types"
    },
    "number": {
      "type": "string",
      "example": "XX1111",
      "description": "The account number from the institution (obfuscated)"
    },
    "details": {
      "$ref": "#/components/schemas/AccountDetails"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "balanceDate": {
      "type": "integer",
      "format": "int64",
      "example": 1614880526,
      "description": "A timestamp showing when the `balance` was captured"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "a list of transaction records"
    },
    "currentBalance": {
      "type": "number",
      "example": 100000,
      "description": "The cleared balance of the account as-of `balanceDate`"
    },
    "accountAnalytics": {
      "$ref": "#/components/schemas/AccountAnalytics"
    },
    "availableBalance": {
      "type": "number",
      "example": 1000,
      "description": "Available balance"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The status of the most recent aggregation attempt"
    }
  }
}
object AnnualIncome
{
  "type": "object",
  "required": [
    "year",
    "grossPayAmountYTD"
  ],
  "properties": {
    "year": {
      "type": "string",
      "example": 2022,
      "description": "The year for the amounts given in YTD totals for an employer"
    },
    "netPayAmountYTD": {
      "type": "number",
      "example": 123.45,
      "description": "Year to date (YTD) net pay amount for the indicated year"
    },
    "basePayAmountYTD": {
      "type": "number",
      "example": 123.45,
      "description": "Year to date (YTD) base pay amount for the year indicated"
    },
    "grossPayAmountYTD": {
      "type": "number",
      "example": 123.45,
      "description": "Year to date (YTD) gross pay amount for the indicated year"
    },
    "otherPayAmountYTD": {
      "type": "number",
      "example": 123.45,
      "description": "Year to date (YTD) other pay amount for the indicated year. Other pay is pay that is not categorized into one of the other categories."
    },
    "commissionPayAmount": {
      "type": "number",
      "example": 123.45,
      "description": "Year to date (YTD) commission pay amount for the indicated year"
    },
    "overtimePayAmountYTD": {
      "type": "number",
      "example": 123.45,
      "description": "Year to date (YTD) overtime pay amount for the year indicated"
    }
  }
}
object AppFinancialInstitutionStatus
{
  "type": "object",
  "required": [
    "id",
    "decryptionKeyActivated",
    "createdDate",
    "lastModifiedDate",
    "status"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    },
    "status": {
      "type": "boolean",
      "example": true,
      "description": "\"false\" indicates registration is still pending"
    },
    "logoUrl": {
      "type": "string",
      "example": "https://prod-direct-integration-client.s3.us-west-2.amazonaws.com/976521f99-7b36-4b3b-a3e0-faff9545836d/102224/90x90.png",
      "description": "An URL to a logo file"
    },
    "abbrvName": {
      "type": "string",
      "example": "VAEJ",
      "description": "The application's abbreviated name"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "lastModifiedDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "decryptionKeyActivated": {
      "type": "boolean",
      "example": false,
      "description": "Status of decryption keys for financial institution app registration"
    }
  },
  "description": "The registration status fields for each specific OAuth financial institution"
}
string AppRegistrationStatus
{
  "type": "string",
  "example": "P",
  "description": "The status of an app registration request. \"A\" means approved. \"P\" means pending which is the status when initially submitted or when the app is modified and awaiting approval. \"R\" means rejected. If it is rejected there will be a note with the rejected reason."
}
object AppStatus
{
  "type": "object",
  "required": [
    "partnerId",
    "preAppId",
    "appName",
    "submittedDate",
    "modifiedDate",
    "status"
  ],
  "properties": {
    "note": {
      "type": "string",
      "example": "Approved",
      "description": "A note on the registration. Typically used to indicate reasons for rejected apps."
    },
    "scopes": {
      "type": "string",
      "example": "Account Info",
      "description": "Indicates scopes of data accessible to the app"
    },
    "status": {
      "$ref": "#/components/schemas/AppRegistrationStatus"
    },
    "appName": {
      "$ref": "#/components/schemas/ApplicationName"
    },
    "preAppId": {
      "$ref": "#/components/schemas/PreAppId"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "modifiedDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "applicationId": {
      "$ref": "#/components/schemas/ApplicationId"
    },
    "submittedDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "institutionDetails": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AppFinancialInstitutionStatus"
      },
      "description": "A list of the registration status for each FI for the application"
    }
  },
  "description": "Registration status details for the application"
}
object AppStatuses
{
  "type": "object",
  "required": [
    "totalRecords",
    "totalPages",
    "pageNumber",
    "numberOfRecordsPerPage",
    "applications"
  ],
  "properties": {
    "pageNumber": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "The current page number"
    },
    "totalPages": {
      "type": "integer",
      "format": "int64",
      "example": 5,
      "description": "The total number of pages"
    },
    "applications": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AppStatus"
      },
      "description": "A list of applications with their statuses"
    },
    "totalRecords": {
      "type": "integer",
      "format": "int64",
      "example": 50,
      "description": "The total number of results"
    },
    "numberOfRecordsPerPage": {
      "type": "integer",
      "format": "int64",
      "example": 10,
      "description": "The number of results per page"
    }
  },
  "description": "The response for the Get App Registration Status API which returns an array of status objects"
}
object Application
{
  "type": "object",
  "required": [
    "appDescription",
    "appName",
    "appUrl",
    "ownerAddressLine1",
    "ownerAddressLine2",
    "ownerCity",
    "ownerCountry",
    "ownerName",
    "ownerPostalCode",
    "ownerState",
    "image"
  ],
  "properties": {
    "image": {
      "type": "string",
      "example": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgICAKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAwIDAiCiAgIGhlaWdodD0iMCIKICAgd2lkdGg9IjAiPgogICAgPGcvPgo8L3N2Zz4K",
      "description": "An app logo passed as a Base64 encoded image (1:1 SVG file, must be less than 50KB)"
    },
    "appUrl": {
      "type": "string",
      "example": "https://www.finicity.com/",
      "description": "An URL for the app. This will be visible to end users in the FI interface."
    },
    "appName": {
      "$ref": "#/components/schemas/ApplicationName"
    },
    "ownerCity": {
      "type": "string",
      "example": "Murray",
      "description": "City for the business entity that owns the app. Information for registration purposes only and not given to the end user."
    },
    "ownerName": {
      "type": "string",
      "example": "Finicity",
      "description": "Business name for the business entity that owns the app. Information for registration purposes only and not given to the end user."
    },
    "ownerState": {
      "type": "string",
      "example": "UT",
      "description": "State for the business entity that owns the app. Information for registration purposes only and not given to the end user."
    },
    "ownerCountry": {
      "type": "string",
      "example": "USA",
      "description": "Country for the  business entity that owns the app. Information for registration purposes only and not given to the end user."
    },
    "appDescription": {
      "type": "string",
      "example": "The app that makes your budgeting experience awesome",
      "description": "A short description of the app. This will be visible to end users in the FI interface."
    },
    "ownerPostalCode": {
      "type": "string",
      "example": "84123",
      "description": "Zip code for the business entity that owns the app. Information for registration purposes only and not given to the end user."
    },
    "ownerAddressLine1": {
      "$ref": "#/components/schemas/AddressLine1"
    },
    "ownerAddressLine2": {
      "$ref": "#/components/schemas/AddressLine2"
    }
  }
}
string ApplicationId
{
  "type": "string",
  "example": "123456789",
  "description": "`applicationId` value returned from the Get App Registration Status API and the partner assign the customers to. This cannot be changed once set. Only applicable in cases of partners with multiple registered applications. If the partner only has one app, this can usually be omitted. This field is populated after the app is in a status approved."
}
string ApplicationName
{
  "type": "string",
  "example": "Awesome Budget App",
  "description": "The name of the application assigned to the customer"
}
integer AsOfDate
{
  "type": "integer",
  "format": "int64",
  "example": 1596175200,
  "description": "The last time the payroll data was updated in the payroll provider's system"
}
object Asset
{
  "type": "object",
  "required": [
    "assetId"
  ],
  "properties": {
    "assetId": {
      "$ref": "#/components/schemas/AssetId"
    }
  },
  "description": "An asset"
}
string AssetId
{
  "type": "string",
  "example": "097545c5-1c2a-4f20-a5ef-77f0820344c9-2018601178",
  "description": "An asset ID. Generated by Connect or by using the Store Customer Pay Statement API."
}
string AssetsGetBinaryFileResponse
{
  "type": "string",
  "format": "binary"
}
object AvailableBalance
{
  "type": "object",
  "required": [
    "id",
    "realAccountNumberLast4",
    "availableBalance",
    "availableBalanceDate",
    "clearedBalance",
    "clearedBalanceDate",
    "aggregationStatusCode",
    "currency"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "clearedBalance": {
      "type": "number",
      "example": 222.25,
      "description": "The cleared balance of the account. Also referred as posted balance, current balance, ledger balance"
    },
    "availableBalance": {
      "type": "number",
      "example": 173.47,
      "description": "The available balance of the account"
    },
    "clearedBalanceDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "availableBalanceDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "aggregationStatusCode": {
      "$ref": "#/components/schemas/AggregationStatusCode"
    },
    "realAccountNumberLast4": {
      "$ref": "#/components/schemas/AccountNumberLast4"
    }
  }
}
object BalanceAnalyticsAccountResult
{
  "type": "object",
  "required": [
    "accountId",
    "accountDetails",
    "historicDataAvailability",
    "currentReportRequest"
  ],
  "properties": {
    "accountId": {
      "$ref": "#/components/schemas/NumericAccountId"
    },
    "accountDetails": {
      "$ref": "#/components/schemas/ObbAccountDetails"
    },
    "currentReportRequest": {
      "$ref": "#/components/schemas/ObbCurrentReportRequestDetails"
    },
    "balanceAnalyticsMetrics": {
      "$ref": "#/components/schemas/BalanceAnalyticsMetrics"
    },
    "historicDataAvailability": {
      "$ref": "#/components/schemas/ObbDataAvailability"
    }
  }
}
object BalanceAnalyticsBusinessSummary
{
  "type": "object",
  "properties": {
    "currentReportRequest": {
      "$ref": "#/components/schemas/ObbCurrentReportRequestDetails"
    },
    "balanceAnalyticsMetrics": {
      "$ref": "#/components/schemas/BalanceAnalyticsMetrics"
    },
    "historicDataAvailability": {
      "$ref": "#/components/schemas/ObbDataAvailability"
    }
  },
  "description": "Balance analytics summarized across all accounts in the report"
}
string BalanceAnalyticsGetReportDataFcraResponse
{
  "type": "string",
  "format": "binary"
}
string BalanceAnalyticsGetReportDataResponse
{
  "type": "string",
  "format": "binary"
}
object BalanceAnalyticsMetrics
{
  "type": "object",
  "properties": {
    "availableBalance": {
      "type": "number",
      "example": 1000.01,
      "description": "Available Balance"
    },
    "availableBalanceDate": {
      "type": "string",
      "example": "2022-02-18T02:34:00-07:00",
      "maxLength": 25,
      "minLength": 25,
      "description": "Available Balance date"
    },
    "currentRunningBalance": {
      "type": "number",
      "example": 1000.01,
      "description": "Current Running Balance Date"
    },
    "currentRunningBalanceDate": {
      "type": "string",
      "example": "2022-02-10T05:00:00-07:00",
      "maxLength": 25,
      "minLength": 25,
      "description": "Current Running Balance date"
    },
    "dailyBalancesForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDailyBalance"
      },
      "default": [],
      "example": [
        {
          "date": "2022-03-22",
          "dayOfWeek": "Sunday",
          "endingBalance": 21527.3
        }
      ],
      "description": "Daily balance of the account over the length of the report"
    },
    "averageDailyBalanceForTheReportTimePeriod": {
      "type": "number",
      "example": -10442.53,
      "description": "Average Daily Balance"
    },
    "averageWeekdayBalanceForTheReportTimePeriod": {
      "type": "number",
      "example": -10442.53,
      "description": "Average Weekday Balance"
    },
    "maximumRunningBalanceForTheReportTimePeriod": {
      "type": "number",
      "example": -28749.44,
      "description": "Maximum Running Balance"
    },
    "minimumRunningBalanceForTheReportTimePeriod": {
      "type": "number",
      "example": -28749.44,
      "description": "Minimum Running Balance"
    },
    "dailyBalancesByWeekdayForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDailyBalance"
      },
      "default": [],
      "example": [
        {
          "date": "2022-03-23",
          "dayOfWeek": "Monday",
          "endingBalance": 21527.3
        }
      ],
      "description": "Daily balance of the account during weekdays over the length of the report"
    },
    "historicNumberOfWeeksAverageBalanceIncreasing": {
      "$ref": "#/components/schemas/ObbNumWeeksAverageBalanceIncreasing"
    },
    "averageDailyBalanceByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Average daily ending balance each month over the report time period"
    },
    "maximumDailyBalanceByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Maximum daily ending balance each month over the report time period"
    },
    "minimumDailyBalanceByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Minimum daily ending balance each month over the report time period"
    },
    "countDailyNegativeBalancesByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndCount"
      },
      "description": "Number of negative daily ending balances each month over the report time period"
    }
  },
  "description": "Balance analytics metrics and calculations"
}
object BalanceAnalyticsReport
{
  "type": "object",
  "required": [
    "customerId",
    "title",
    "reportHeader"
  ],
  "properties": {
    "title": {
      "$ref": "#/components/schemas/ReportTitle"
    },
    "businessId": {
      "type": "integer",
      "example": 4444,
      "description": "Business ID"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "reportHeader": {
      "$ref": "#/components/schemas/ObbReportHeader"
    },
    "requesterName": {
      "type": "string",
      "example": "Mortgage ABC LLC",
      "maxLength": 255,
      "minLength": 0,
      "description": "Name of requester"
    },
    "accountResults": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BalanceAnalyticsAccountResult"
      },
      "description": "Balance results per account"
    },
    "businessSummary": {
      "$ref": "#/components/schemas/BalanceAnalyticsBusinessSummary"
    }
  },
  "description": "Balance analytics report data as JSON"
}
object BalanceAndCashFlowAnalyticsReportConstraints
{
  "type": "object",
  "properties": {
    "accountIds": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NumericAccountId"
      },
      "description": "The list of account IDs to include in the report. If omitted, all accounts on record for the customer will be used."
    },
    "lengthOfReport": {
      "type": "integer",
      "example": 730,
      "description": "Number of days to search for transactions. Must be one of 30, 90, 180, 270, 365, or 730. If omitted, defaults to 2 years from current time at which the request was received (730 days)."
    }
  },
  "description": "Request parameters from the partner to control the customer accounts included in the report, and the length of time to report on."
}
string BankStatementsGetCustomerStatementInPdfResponse
{
  "type": "string",
  "format": "binary"
}
object BaseReportAck
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/ReportId"
    },
    "type": {
      "$ref": "#/components/schemas/ReportType"
    },
    "title": {
      "$ref": "#/components/schemas/ReportTitle"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ErrorMessage"
      },
      "description": "In case errors occurred during the report generation"
    },
    "status": {
      "$ref": "#/components/schemas/ReportStatus"
    },
    "requestId": {
      "$ref": "#/components/schemas/ReportRequestId"
    },
    "consumerId": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "consumerSsn": {
      "$ref": "#/components/schemas/SocialSecurityNumberLastDigits"
    },
    "createdDate": {
      "$ref": "#/components/schemas/ReportCreatedDate"
    },
    "customerType": {
      "$ref": "#/components/schemas/CustomerType"
    },
    "requesterName": {
      "$ref": "#/components/schemas/PartnerName"
    }
  },
  "description": "Properties shared by all generated reports"
}
object BaseReportAckWithPortfolioId
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAck"
    },
    {
      "type": "object",
      "properties": {
        "portfolioId": {
          "$ref": "#/components/schemas/PortfolioId"
        }
      }
    }
  ],
  "description": "Properties shared by all generated reports having a portfolio ID"
}
object Birthday
{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "format": "int32",
      "example": 1989,
      "description": "The birthday 4-digit year"
    },
    "month": {
      "type": "integer",
      "format": "int32",
      "example": 8,
      "description": "The birthday 2-digit month (1 is January)"
    },
    "dayOfMonth": {
      "type": "integer",
      "format": "int32",
      "example": 13,
      "description": "The birthday 2-digit day-of-month"
    }
  },
  "description": "A birth date"
}
object Borrower
{
  "type": "object",
  "required": [
    "customerId",
    "consumerId",
    "type"
  ],
  "properties": {
    "type": {
      "$ref": "#/components/schemas/BorrowerType"
    },
    "consumerId": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "optionalConsumerInfo": {
      "$ref": "#/components/schemas/ConsumerInfo"
    }
  }
}
string BorrowerType
{
  "type": "string",
  "example": "primary",
  "description": "\"primary\" or \"jointBorrower\""
}
array Borrowers
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Borrower"
  },
  "description": "(MVS) Array of borrowers to pass the primary and joint borrower's customer and consumer IDs"
}
object Branding
{
  "type": "object",
  "properties": {
    "icon": {
      "type": "string",
      "example": "https://prod-carpintero-branding.s3.us-west-2.amazonaws.com/5/icon.svg",
      "description": "File path of the institution's icon. For search results designed at 40 x 40."
    },
    "logo": {
      "type": "string",
      "example": "https://prod-carpintero-branding.s3.us-west-2.amazonaws.com/5/logo.svg",
      "description": "File path of the institution's logo. For white backgrounds designed at 375 x 72, has built in spacing around it to normalize brand sizing."
    },
    "tile": {
      "type": "string",
      "example": "https://prod-carpintero-branding.s3.us-west-2.amazonaws.com/5/tile.svg",
      "description": "File path of institution name logo. For popular banks designed at 160 x 72."
    },
    "primaryColor": {
      "type": "string",
      "example": "#0167AE",
      "description": "Hex code for the institution's primary color"
    },
    "alternateLogo": {
      "type": "string",
      "example": "https://prod-carpintero-branding.s3.us-west-2.amazonaws.com/5/alternateLogo.svg",
      "description": "File path of the institution's alternate logo. For colored backgrounds designed at 375 x 72 has built in spacing around it to normalize brand sizing."
    }
  },
  "description": "All assets are SVGs so can be slightly resized without any issues."
}
object BrandingWrapper
{
  "type": "object",
  "required": [
    "branding"
  ],
  "properties": {
    "branding": {
      "$ref": "#/components/schemas/Branding"
    }
  }
}
object Business
{
  "allOf": [
    {
      "$ref": "#/components/schemas/NewBusiness"
    },
    {
      "type": "object",
      "properties": {
        "businessId": {
          "$ref": "#/components/schemas/BusinessId"
        },
        "createdDate": {
          "$ref": "#/components/schemas/NoZoneDateTime"
        },
        "modifiedDate": {
          "$ref": "#/components/schemas/NoZoneDateTime"
        }
      }
    }
  ]
}
object BusinessDetails
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AFBusiness"
    },
    {
      "type": "object",
      "properties": {
        "businessId": {
          "$ref": "#/components/schemas/BusinessId"
        }
      }
    }
  ]
}
string BusinessId
{
  "type": "string",
  "example": "1112",
  "maxLength": 50,
  "minLength": 1,
  "description": "Unique identifier of the business"
}
array BusinessList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Business"
  },
  "maxItems": 1,
  "minItems": 1
}
string BusinessName
{
  "type": "string",
  "example": "ABC Tires Inc",
  "description": "The name of a business"
}
object CadenceDetails
{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer",
      "format": "int32",
      "example": 14,
      "description": "Number of days between the recurring deposits"
    },
    "stopDate": {
      "type": "integer",
      "format": "int64",
      "example": 1587986990,
      "description": "`postedDate` of the final deposit transaction (omitted if status is active)"
    },
    "startDate": {
      "type": "integer",
      "format": "int64",
      "example": 1577986990,
      "description": "`postedDate` of the first deposit transaction"
    }
  }
}
object CashFlowActivityDepositsCredits
{
  "type": "object",
  "required": [
    "date",
    "depositsCredits"
  ],
  "properties": {
    "date": {
      "type": "string",
      "example": "2020-03-25",
      "maxLength": 10,
      "minLength": 10,
      "description": "Date the deposit transaction was posted"
    },
    "depositsCredits": {
      "type": "number",
      "example": 500,
      "description": "Amount of the deposit"
    },
    "transactionDescription": {
      "type": "string",
      "example": "VENMO            CASHOUT",
      "maxLength": 255,
      "minLength": 0,
      "description": "Description of transaction"
    }
  }
}
object CashFlowActivityWithdrawalsDebits
{
  "type": "object",
  "required": [
    "date",
    "withdrawalsDebits"
  ],
  "properties": {
    "date": {
      "type": "string",
      "example": "2020-03-25",
      "maxLength": 10,
      "minLength": 10,
      "description": "Date the withdrawal transaction was posted"
    },
    "withdrawalsDebits": {
      "type": "number",
      "example": 15.69,
      "description": "Amount of the withdrawal"
    },
    "transactionDescription": {
      "type": "string",
      "example": "Payment to Chase card ending in",
      "maxLength": 255,
      "minLength": 0,
      "description": "Description of transaction"
    }
  }
}
object CashFlowAnalyticsAccountResult
{
  "type": "object",
  "required": [
    "accountId",
    "accountDetails",
    "historicDataAvailability",
    "currentReportRequest"
  ],
  "properties": {
    "accountId": {
      "$ref": "#/components/schemas/NumericAccountId"
    },
    "accountDetails": {
      "$ref": "#/components/schemas/ObbAccountDetails"
    },
    "currentReportRequest": {
      "$ref": "#/components/schemas/ObbCurrentReportRequestDetails"
    },
    "cashflowAnalyticsMetrics": {
      "$ref": "#/components/schemas/CashFlowAnalyticsMetrics"
    },
    "historicDataAvailability": {
      "$ref": "#/components/schemas/ObbDataAvailability"
    }
  }
}
object CashFlowAnalyticsBusinessSummary
{
  "type": "object",
  "required": [
    "historicDataAvailability",
    "currentReportRequest"
  ],
  "properties": {
    "currentReportRequest": {
      "$ref": "#/components/schemas/ObbCurrentReportRequestDetails"
    },
    "cashflowAnalyticsMetrics": {
      "$ref": "#/components/schemas/CashFlowAnalyticsMetrics"
    },
    "historicDataAvailability": {
      "$ref": "#/components/schemas/ObbDataAvailability"
    }
  },
  "description": "Cash flow analytics summarized across all accounts in the report"
}
object CashFlowAnalyticsMetrics
{
  "type": "object",
  "properties": {
    "inflow": {
      "$ref": "#/components/schemas/CashFlowInflowAttributes"
    },
    "outflow": {
      "$ref": "#/components/schemas/CashFlowOutflowAttributes"
    },
    "negativeTriggers": {
      "$ref": "#/components/schemas/CashFlowNegativeTriggers"
    },
    "transactionAnalytics": {
      "$ref": "#/components/schemas/CashFlowTransactionAnalyticsAttributes"
    },
    "revenueForTheReportTimePeriod": {
      "type": "number",
      "example": 43893.44,
      "description": "Sum of all transactions categorized as revenue"
    },
    "revenueByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Sum of all transactions categorized as revenue, split by months"
    }
  },
  "description": "Cash flow analytics metrics and calculations"
}
object CashFlowAnalyticsReport
{
  "type": "object",
  "required": [
    "customerId",
    "title",
    "reportHeader"
  ],
  "properties": {
    "title": {
      "$ref": "#/components/schemas/ReportTitle"
    },
    "businessId": {
      "type": "integer",
      "example": 4444,
      "description": "Business ID"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "reportHeader": {
      "$ref": "#/components/schemas/ObbReportHeader"
    },
    "totalRevenue": {
      "type": "number",
      "example": 904909.33,
      "description": "The total revenue"
    },
    "requesterName": {
      "type": "string",
      "example": "Mortgage ABC LLC",
      "maxLength": 255,
      "minLength": 0,
      "description": "Name of requester"
    },
    "accountResults": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowAnalyticsAccountResult"
      },
      "description": "Cash flow results per account"
    },
    "businessSummary": {
      "$ref": "#/components/schemas/CashFlowAnalyticsBusinessSummary"
    }
  },
  "description": "Cash Flow Analytics report data as JSON"
}
object CashFlowCashFlowBalance
{
  "type": "object",
  "required": [
    "monthlyCashFlowBalances",
    "minDailyBalance",
    "maxDailyBalance",
    "twelveMonthAverageDailyBalance",
    "sixMonthAverageDailyBalance",
    "twoMonthAverageDailyBalance",
    "twelveMonthStandardDeviationOfDailyBalance",
    "twoMonthStandardDeviationOfDailyBalance",
    "numberOfDaysPositiveBalance"
  ],
  "properties": {
    "maxDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Max Daily Balance across entire transaction history"
    },
    "minDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Min daily balance across entire transaction history"
    },
    "monthlyCashFlowBalances": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlyCashFlowBalances"
      },
      "description": "List of attributes for each month"
    },
    "numberDaysNegativeBalance": {
      "type": "string",
      "example": "6",
      "description": "Number of Days Negative Balance over entire transaction history"
    },
    "numberOfDaysPositiveBalance": {
      "type": "string",
      "example": "0",
      "description": "Number of Days positive balance over entire transaction history"
    },
    "sixMonthAverageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance across six months for the account"
    },
    "twoMonthAverageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance across two months for the account"
    },
    "twelveMonthAverageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance across twelve months for the account"
    },
    "sixMonthStandardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20",
      "description": "Standard Deviation of Daily Balance across six months for the account"
    },
    "twoMonthStandardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20",
      "description": "Standard Deviation of Daily Balance across two months for the account"
    },
    "twelveMonthStandardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20",
      "description": "Standard Deviation of Daily Balance across twelve months for the account"
    }
  }
}
object CashFlowCashFlowBalanceSummary
{
  "type": "object",
  "required": [
    "monthlyCashFlowBalanceSummaries",
    "minDailyBalance",
    "maxDailyBalance",
    "twelveMonthAverageDailyBalance",
    "sixMonthAverageDailyBalance",
    "twoMonthAverageDailyBalance",
    "twelveMonthStandardDeviationOfDailyBalance",
    "twoMonthStandardDeviationOfDailyBalance",
    "numberOfDaysNegativeBalance",
    "numberOfDaysPositiveBalance"
  ],
  "properties": {
    "maxDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Max Daily Balance across entire transaction history for all accounts"
    },
    "minDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Min Daily Balance across entire transaction history  for all accounts"
    },
    "numberOfDaysNegativeBalance": {
      "type": "string",
      "example": "6",
      "description": "Number of Days Negative Balance over entire transaction history for all accounts"
    },
    "numberOfDaysPositiveBalance": {
      "type": "string",
      "example": "11",
      "description": "Number of Days Positive Balance over entire transaction history for all accounts"
    },
    "sixMonthAverageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance across six months for all accounts"
    },
    "twoMonthAverageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance across two months for all accounts"
    },
    "twelveMonthAverageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance across twelve months for all accounts"
    },
    "monthlyCashFlowBalanceSummaries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlyCashFlowBalanceSummaries"
      },
      "description": "List of attributes for each month"
    },
    "sixMonthStandardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20",
      "description": "Standard Deviation of Daily Balance across six months for all accounts"
    },
    "twoMonthStandardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20",
      "description": "Standard Deviation of Daily Balance across two months for all accounts"
    },
    "twelveMonthStandardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20",
      "description": "Standard Deviation of Daily Balance across twelve months for all accounts"
    }
  }
}
object CashFlowCashFlowCharacteristic
{
  "type": "object",
  "required": [
    "monthlyCashFlowCharacteristics",
    "averageMonthlyNet",
    "averageMonthlyNetLessTransfers"
  ],
  "properties": {
    "averageMonthlyNet": {
      "type": "number",
      "example": 2350,
      "description": "Average (Total Credits - Total Debits) for the account"
    },
    "twelveMonthTotalNet": {
      "type": "number",
      "example": 12500,
      "description": "Sum of all monthly (Total Credits - Total Debits) each month for the account"
    },
    "averageMonthlyNetLessTransfers": {
      "type": "number",
      "example": 1000,
      "description": "Average (Total Credits - Total Debits) without transfers for the account"
    },
    "monthlyCashFlowCharacteristics": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlyCashFlowCharacteristics"
      },
      "description": "List of attributes for each month"
    },
    "twelveMonthTotalNetLessTransfers": {
      "type": "number",
      "example": 12400,
      "description": "Sum of all monthly (Total Credits - Total Debits) without transfers for the account"
    },
    "sixMonthAverageTotalCreditsLessTotalDebits": {
      "type": "number",
      "example": 55555,
      "description": "6 Month Average (Total Credits - Total Debits)"
    },
    "twoMonthAverageTotalCreditsLessTotalDebits": {
      "type": "number",
      "example": 55555,
      "description": "2 Month Average (Total Credits - Total Debits)"
    },
    "sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers": {
      "type": "number",
      "example": 55555,
      "description": "6 Month Average (Total Credits - Total Debits) - (Without Transfers)"
    },
    "twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers": {
      "type": "number",
      "example": 55555,
      "description": "2 Month Average (Total Credits - Total Debits) - (Without Transfers)"
    }
  }
}
object CashFlowCashFlowCharacteristicsSummary
{
  "type": "object",
  "required": [
    "averageMonthlyNet",
    "averageMonthlyNetLessTransfers",
    "twelveMonthTotalNet",
    "twelveMonthTotalNetLessTransfers",
    "sixMonthAverageTotalCreditsLessTotalDebits",
    "sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers",
    "twoMonthAverageTotalCreditsLessTotalDebits"
  ],
  "properties": {
    "averageMonthlyNet": {
      "type": "number",
      "example": 1250,
      "description": "Average monthly net amount"
    },
    "twelveMonthTotalNet": {
      "type": "number",
      "example": 12500,
      "description": "Sum of all monthly (Total Credits - Total Debits) each month by the account"
    },
    "averageMonthlyNetLessTransfers": {
      "type": "number",
      "example": 1000,
      "description": "Average monthly net less transfers"
    },
    "twelveMonthTotalNetLessTransfers": {
      "type": "number",
      "example": 12400,
      "description": "Sum of all monthly (Total Credits - Total Debits) without transfers by the account"
    },
    "monthlyCashFlowCharacteristicsSummaries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlyCashFlowCharacteristicsSummaries"
      },
      "description": "List of attributes for each month"
    },
    "sixMonthAverageTotalCreditsLessTotalDebits": {
      "type": "number",
      "example": 55555,
      "description": "6 Month Average (Total Credits - Total Debits) across all accounts"
    },
    "twoMonthAverageTotalCreditsLessTotalDebits": {
      "type": "number",
      "example": 55555,
      "description": "2 Month Average (Total Credits - Total Debits) across all accounts"
    },
    "sixMonthAverageTotalCreditsLessTotalDebitsLessTransfers": {
      "type": "number",
      "example": 55555,
      "description": "6 Month Average (Total Credits - Total Debits) - (Without Transfers) across all accounts"
    },
    "twoMonthAverageTotalCreditsLessTotalDebitsLessTransfers": {
      "type": "number",
      "example": 55555,
      "description": "2 Month Average (Total Credits - Total Debits) - (Without Transfers) across all accounts"
    }
  }
}
object CashFlowCashFlowCredit
{
  "type": "object",
  "required": [
    "monthlyCashFlowCredits"
  ],
  "properties": {
    "sixMonthCreditTotal": {
      "type": "number",
      "example": 750,
      "description": "Sum of six month credit transactions"
    },
    "twoMonthCreditTotal": {
      "type": "number",
      "example": 150,
      "description": "Sum of two month credit transactions"
    },
    "monthlyCashFlowCredits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlyCashFlowCredits"
      },
      "description": "List of attributes for each month"
    },
    "twelveMonthCreditTotal": {
      "type": "number",
      "example": 1200,
      "description": "Sum of all credit transactions for each month by account"
    },
    "sixMonthCreditTotalLessTransfers": {
      "type": "number",
      "example": 500,
      "description": "Sum of six month credit transactions without transfers"
    },
    "twoMonthCreditTotalLessTransfers": {
      "type": "number",
      "example": 100,
      "description": "Sum of two month credit transactions without transfers"
    },
    "twelveMonthCreditTotalLessTransfers": {
      "type": "number",
      "example": 1000,
      "description": "Sum of all monthly credit transactions without transfers for the account"
    }
  }
}
object CashFlowCashFlowCreditSummary
{
  "type": "object",
  "required": [
    "monthlyCashFlowCreditSummaries",
    "twelveMonthCreditTotal",
    "twelveMonthCreditTotalLessTransfers",
    "sixMonthCreditTotal",
    "sixMonthCreditTotalLessTransfers",
    "twoMonthCreditTotal",
    "twoMonthCreditTotalLessTransfers"
  ],
  "properties": {
    "sixMonthCreditTotal": {
      "type": "number",
      "example": 750,
      "description": "Six month sum of all credit transactions"
    },
    "twoMonthCreditTotal": {
      "type": "number",
      "example": 150,
      "description": "Two month sum of all credit transactions"
    },
    "twelveMonthCreditTotal": {
      "type": "number",
      "example": 1200,
      "description": "Sum of all credit transactions for each month for all accounts"
    },
    "monthlyCashFlowCreditSummaries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlyCashFlowCreditSummaries"
      },
      "description": "List of attributes for each month"
    },
    "sixMonthCreditTotalLessTransfers": {
      "type": "number",
      "example": 500,
      "description": "Six month sum of all monthly credit transactions without transfers for all accounts"
    },
    "twoMonthCreditTotalLessTransfers": {
      "type": "number",
      "example": 100,
      "description": "Two month sum of all monthly credit transactions without transfers for all accounts"
    },
    "twelveMonthCreditTotalLessTransfers": {
      "type": "number",
      "example": 1000,
      "description": "Sum of all monthly credit transactions without transfers for all accounts"
    }
  }
}
object CashFlowCashFlowDebit
{
  "type": "object",
  "required": [
    "monthlyCashFlowDebits"
  ],
  "properties": {
    "sixMonthDebitTotal": {
      "type": "number",
      "example": 750,
      "description": "Six month sum of all debit transactions"
    },
    "twoMonthDebitTotal": {
      "type": "number",
      "example": 150,
      "description": "Two month sum of all debit transactions"
    },
    "monthlyCashFlowDebits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlycashflowDebits"
      },
      "description": "List of attributes for each month"
    },
    "twelveMonthDebitTotal": {
      "type": "number",
      "example": 1200,
      "description": "Sum of all monthly debit transactions for each month by account"
    },
    "sixMonthDebitTotalLessTransfers": {
      "type": "number",
      "example": 500,
      "description": "Six month sum of all debit transactions without transfers for the account"
    },
    "twoMonthDebitTotalLessTransfers": {
      "type": "number",
      "example": 100,
      "description": "Two month sum of all debit transactions without transfers for the account"
    },
    "twelveMonthDebitTotalLessTransfers": {
      "type": "number",
      "example": 1000,
      "description": "Sum of all monthly debit transactions without transfers for the account"
    }
  }
}
object CashFlowCashFlowDebitSummary
{
  "type": "object",
  "required": [
    "monthlyCashFlowDebitSummaries",
    "twelveMonthDebitTotal",
    "twelveMonthDebitTotalLessTransfers",
    "sixMonthDebitTotal",
    "sixMonthDebitTotalLessTransfers",
    "twoMonthDebitTotal",
    "twoMonthDebitTotalLessTransfers"
  ],
  "properties": {
    "sixMonthDebitTotal": {
      "type": "number",
      "example": -750,
      "description": "Six month sum of all debit transactions by account"
    },
    "twoMonthDebitTotal": {
      "type": "number",
      "example": -150,
      "description": "Two month sum of all debit transactions by account"
    },
    "twelveMonthDebitTotal": {
      "type": "number",
      "example": -1200,
      "description": "Sum of all monthly debit transactions for each month by account"
    },
    "monthlyCashFlowDebitSummaries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowMonthlyCashFlowDebitSummaries"
      },
      "description": "List of attributes for each month"
    },
    "sixMonthDebitTotalLessTransfers": {
      "type": "number",
      "example": -500,
      "description": "Six month sum of all debit transactions without transfers for the account"
    },
    "twoMonthDebitTotalLessTransfers": {
      "type": "number",
      "example": -100,
      "description": "Two month sum of all debit transactions without transfers for the account"
    },
    "twelveMonthDebitTotalLessTransfers": {
      "type": "number",
      "example": -1000,
      "description": "Sum of all monthly debit transactions without transfers for the account"
    }
  }
}
object CashFlowInflowAttributes
{
  "type": "object",
  "required": [
    "minimumDepositByMonthForTheReportTimePeriod",
    "maximumDepositByMonthForTheReportTimePeriod",
    "sumDepositsByMonthForTheReportTimePeriod",
    "countDepositsByMonthForTheReportTimePeriod",
    "historicCountOfDepositTransactions"
  ],
  "properties": {
    "historicSumOfDeposits": {
      "type": "number",
      "example": 389.22,
      "description": "Sum of ALL deposits over entire known history of the account (may exceed requested length of report)"
    },
    "historicCountOfDepositTransactions": {
      "type": "integer",
      "example": 20,
      "description": "Count of ALL deposits over entire known history of the account (may exceed requested length of report)"
    },
    "sumDepositsByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Sum of all deposits during periods in the report"
    },
    "countDepositsByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndCount"
      },
      "description": "Count of all deposits during periods in the report"
    },
    "averageDepositByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Average value of deposits during periods in the report"
    },
    "maximumDepositByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Maximum deposit value for different periods in the report"
    },
    "minimumDepositByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Minimum deposit value for different periods in the report"
    }
  },
  "description": "Inflow Attributes"
}
object CashFlowInsufficientFundsFees
{
  "type": "object",
  "properties": {
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/InsufficientFundsTransaction"
      },
      "description": "Transactions categorized as NSF"
    },
    "sumOfTransactionsForTheReportTimePeriod": {
      "type": "number",
      "example": -1.65,
      "description": "Sum of all NSF transactions during the report"
    },
    "countOfTransactionsForTheReportTimePeriod": {
      "type": "integer",
      "example": 1,
      "description": "Count of all NSF transactions during the report"
    }
  },
  "description": "Non-Sufficient Fund Fees"
}
object CashFlowMonthlyCashFlowBalanceSummaries
{
  "type": "object",
  "required": [
    "month",
    "minDailyBalance",
    "maxDailyBalance",
    "averageDailyBalance",
    "numberOfDaysNegativeBalance",
    "numberOfDaysPositiveBalance"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "maxDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Max Daily Balance for each month for all accounts"
    },
    "minDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Min Daily Balance for each month for all accounts"
    },
    "averageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance for each month for all accounts"
    },
    "numberOfDaysNegativeBalance": {
      "type": "string",
      "example": "6",
      "description": "Number of Days Negative Balance for each month for all accounts"
    },
    "numberOfDaysPositiveBalance": {
      "type": "string",
      "example": "0",
      "description": "Number of Days Positive Balance for each month for all accounts"
    },
    "standardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20.45454545",
      "description": "Standard Deviation of Daily Balance for each month for all accounts"
    }
  }
}
object CashFlowMonthlyCashFlowBalances
{
  "type": "object",
  "required": [
    "month",
    "minDailyBalance",
    "maxDailyBalance",
    "averageDailyBalance",
    "numberOfDaysNegativeBalance",
    "numberOfDaysPositiveBalance"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "maxDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Max Daily Balance for each month"
    },
    "minDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Min Daily Balance for each month"
    },
    "averageDailyBalance": {
      "type": "number",
      "example": 3479.39,
      "description": "Average Daily Balance for each month"
    },
    "numberOfDaysNegativeBalance": {
      "type": "string",
      "example": "6",
      "description": "Number of Days Negative Balance for each month"
    },
    "numberOfDaysPositiveBalance": {
      "type": "string",
      "example": "0",
      "description": "Number of Days positive balance for each month"
    },
    "standardDeviationOfDailyBalance": {
      "type": "string",
      "example": "20",
      "description": "Standard Deviation of Daily Balance for each month"
    }
  }
}
object CashFlowMonthlyCashFlowCharacteristics
{
  "type": "object",
  "required": [
    "month",
    "totalCreditsLessTotalDebits",
    "totalCreditsLessTotalDebitsLessTransfers",
    "averageTransactionAmount"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "averageTransactionAmount": {
      "type": "number",
      "example": 10,
      "description": "Average transaction amount by month"
    },
    "totalCreditsLessTotalDebits": {
      "type": "number",
      "example": 15000,
      "description": "Total Credits - Total Debits by month"
    },
    "totalCreditsLessTotalDebitsLessTransfers": {
      "type": "number",
      "example": 11000,
      "description": "Total Credits - Total Debits by month (Without Transfers)"
    }
  }
}
object CashFlowMonthlyCashFlowCharacteristicsSummaries
{
  "type": "object",
  "required": [
    "month",
    "totalCreditsLessTotalDebits",
    "totalCreditsLessTotalDebitsLessTransfers",
    "averageTransactionAmount"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "averageTransactionAmount": {
      "type": "number",
      "example": 10,
      "description": "Average transaction amount across all accounts"
    },
    "totalCreditsLessTotalDebits": {
      "type": "number",
      "example": 15000,
      "description": "Total Credits - Total Debits by month across all accounts"
    },
    "totalCreditsLessTotalDebitsLessTransfers": {
      "type": "number",
      "example": 11000,
      "description": "Total Credits - Total Debits by month (Without Transfers) across all accounts"
    }
  }
}
object CashFlowMonthlyCashFlowCreditSummaries
{
  "type": "object",
  "required": [
    "month",
    "numberOfCredits",
    "totalCreditsAmount",
    "largestCredit",
    "numberOfCreditsLessTransfers",
    "totalCreditsAmountLessTransfers",
    "averageCreditAmount",
    "estimatedNumberOfLoanDeposits",
    "estimatedLoanDepositAmount"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "largestCredit": {
      "type": "number",
      "example": 3000.49,
      "description": "Largest credit by month across all accounts"
    },
    "numberOfCredits": {
      "type": "string",
      "example": "57",
      "description": "Number of credits by month across all accounts"
    },
    "totalCreditsAmount": {
      "type": "number",
      "example": 3479.39,
      "description": "Total amount of credits by month across all accounts"
    },
    "averageCreditAmount": {
      "type": "number",
      "example": 500,
      "description": "The average credit amount"
    },
    "estimatedLoanDepositAmount": {
      "type": "number",
      "example": 0,
      "description": "The estimated loan deposit amount by month"
    },
    "numberOfCreditsLessTransfers": {
      "type": "string",
      "example": "5",
      "description": "Number of credits by month (less transfers) across all accounts"
    },
    "estimatedNumberOfLoanDeposits": {
      "type": "string",
      "example": "0",
      "description": "The estimated number of loan deposits by month"
    },
    "totalCreditsAmountLessTransfers": {
      "type": "number",
      "example": 25.46,
      "description": "Total amount of credits by month (less transfers) across all accounts"
    }
  }
}
object CashFlowMonthlyCashFlowCredits
{
  "type": "object",
  "required": [
    "month",
    "numberOfCredits",
    "totalCreditsAmount",
    "largestCredit",
    "numberOfCreditsLessTransfers",
    "totalCreditsAmountLessTransfers",
    "averageCreditAmount",
    "estimatedNumberOfLoanDeposits",
    "estimatedLoanDepositAmount"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "largestCredit": {
      "type": "number",
      "example": 2000,
      "description": "Largest credit by month"
    },
    "numberOfCredits": {
      "type": "string",
      "example": "3",
      "description": "Number of credits by month"
    },
    "totalCreditsAmount": {
      "type": "number",
      "example": 5000,
      "description": "Total amount of credits by month"
    },
    "averageCreditAmount": {
      "type": "number",
      "example": 500,
      "description": "The average credit amount"
    },
    "estimatedLoanDepositAmount": {
      "type": "number",
      "example": 0,
      "description": "The estimated loan deposit amount"
    },
    "numberOfCreditsLessTransfers": {
      "type": "string",
      "example": "2",
      "description": "Number of credits by month (less transfers)"
    },
    "estimatedNumberOfLoanDeposits": {
      "type": "string",
      "example": "0",
      "description": "The estimated number of loan deposits"
    },
    "totalCreditsAmountLessTransfers": {
      "type": "number",
      "example": 4000,
      "description": "Total amount of credits by month (less transfers)"
    }
  }
}
object CashFlowMonthlyCashFlowDebitSummaries
{
  "type": "object",
  "required": [
    "month",
    "numberOfDebits",
    "totalDebitsAmount",
    "largestDebit",
    "numberOfDebitsLessTransfers",
    "totalDebitsAmountLessTransfers",
    "averageDebitAmount"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "largestDebit": {
      "type": "number",
      "example": -20000,
      "description": "Largest Debit by month"
    },
    "numberOfDebits": {
      "type": "string",
      "example": "1500",
      "description": "Number of Debits by month across all accounts"
    },
    "totalDebitsAmount": {
      "type": "number",
      "example": -12345.46,
      "description": "Total Amount of Debits by month across all accounts"
    },
    "averageDebitAmount": {
      "type": "number",
      "example": 500,
      "description": "The average debit amount"
    },
    "numberOfDebitsLessTransfers": {
      "type": "string",
      "example": "5",
      "description": "Number of Debits by month (less transfers)"
    },
    "totalDebitsAmountLessTransfers": {
      "type": "number",
      "example": -2000,
      "description": "Total amount of debits by month (less transfers)"
    }
  }
}
object CashFlowMonthlycashflowDebits
{
  "type": "object",
  "required": [
    "month",
    "numberOfDebits",
    "totalDebitsAmount",
    "largestDebit",
    "numberOfDebitsLessTransfers",
    "totalDebitsAmountLessTransfers",
    "averageDebitAmount"
  ],
  "properties": {
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1512111600,
      "description": "One instance for each complete calendar month in the report"
    },
    "largestDebit": {
      "type": "number",
      "example": -2000,
      "description": "Largest Debit by month"
    },
    "numberOfDebits": {
      "type": "string",
      "example": "5",
      "description": "Number of Debits by month"
    },
    "totalDebitsAmount": {
      "type": "number",
      "example": -12345,
      "description": "Total Amount of Debits by month"
    },
    "averageDebitAmount": {
      "type": "number",
      "example": 500,
      "description": "The average debit amount"
    },
    "numberOfDebitsLessTransfers": {
      "type": "string",
      "example": "3",
      "description": "Number of Debits by month (less transfers)"
    },
    "totalDebitsAmountLessTransfers": {
      "type": "number",
      "example": -2000,
      "description": "Total amount of debits by month (less transfers)"
    }
  }
}
object CashFlowNegativeTriggers
{
  "type": "object",
  "properties": {
    "insufficientFundFees": {
      "$ref": "#/components/schemas/CashFlowInsufficientFundsFees"
    }
  },
  "description": "Transactions that may be warning signs of bad creditworthiness"
}
object CashFlowNumWeeksZeros
{
  "type": "object",
  "required": [
    "historicNumberOfWeeksZeroTransactions",
    "historicNumberOfWeeksWithDataAvailable",
    "historicWeeksWithZeroTransactions"
  ],
  "properties": {
    "historicWeeksWithZeroTransactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbWeekOfYear"
      },
      "description": "List of weeks with zero reported transactions"
    },
    "historicNumberOfWeeksZeroTransactions": {
      "type": "integer",
      "example": 5,
      "description": "Number of weeks during known history of account where zero transactions were posted"
    },
    "historicNumberOfWeeksWithDataAvailable": {
      "type": "integer",
      "example": 10,
      "description": "Number of weeks during known history of account in which data was available"
    }
  },
  "description": "Weeks with zero transactions during the known history of the account"
}
object CashFlowOutflowAttributes
{
  "type": "object",
  "required": [
    "minimumWithdrawalByMonthForTheReportTimePeriod",
    "maximumWithdrawalByMonthForTheReportTimePeriod",
    "sumWithdrawalsByMonthForTheReportTimePeriod",
    "countWithdrawalsByMonthForTheReportTimePeriod",
    "historicCountOfWithdrawalTransactions"
  ],
  "properties": {
    "historicSumOfWithdrawals": {
      "type": "number",
      "example": 925.66,
      "description": "Sum of ALL withdrawals over entire known history of the account (may exceed requested length of report)"
    },
    "historicCountOfWithdrawalTransactions": {
      "type": "integer",
      "example": 20,
      "description": "Count of ALL withdrawals over entire known history of the account (may exceed requested length of report)"
    },
    "sumWithdrawalsByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Sum of all withdrawals during periods in the report"
    },
    "countWithdrawalsByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndCount"
      },
      "description": "Count of all withdrawals during periods in the report"
    },
    "averageWithdrawalByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Average value of withdrawals during periods in the report"
    },
    "maximumWithdrawalByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Maximum withdrawal value for different periods in the report"
    },
    "minimumWithdrawalByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Minimum withdrawal value for different periods in the report"
    }
  },
  "description": "Outflow attributes"
}
object CashFlowPossibleLoanDeposits
{
  "type": "object",
  "required": [
    "institutions"
  ],
  "properties": {
    "institutions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowPossibleLoanDepositsInstitutions"
      },
      "description": "A list of loan deposit institutions"
    }
  }
}
object CashFlowPossibleLoanDepositsAccount
{
  "type": "object",
  "required": [
    "id",
    "ownerName",
    "ownerAddress",
    "name",
    "number",
    "type",
    "aggregationStatusCode",
    "currentBalance",
    "availableBalance",
    "balanceDate",
    "transactions"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "6681984",
      "description": "Finicity account ID"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "CFR: `ALL` (`checking` / `savings` / `loan` / `mortgage` / `credit card` / `CD` / `MM` / `investment`...)"
    },
    "number": {
      "type": "string",
      "example": "XX1111",
      "description": "The account number from the institution (obfuscated)"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "balanceDate": {
      "type": "integer",
      "format": "int64",
      "example": 1614880526,
      "description": "A timestamp showing when the `balance` was captured"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "a list of transaction records"
    },
    "currentBalance": {
      "type": "number",
      "example": 100000,
      "description": "The cleared balance of the account as-of `balanceDate`"
    },
    "availableBalance": {
      "type": "number",
      "example": 1000,
      "description": "Available balance"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "example": 0,
      "description": "The status of the most recent aggregation attempt for this account (non-zero means the account was not accessed successfully for this report, and additional fields for this account may not be reliable)"
    }
  }
}
object CashFlowPossibleLoanDepositsInstitutions
{
  "type": "object",
  "required": [
    "id",
    "name",
    "urlHomeApp",
    "accounts"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "102105",
      "description": "Finicity institution ID"
    },
    "name": {
      "type": "string",
      "example": "FinBank Profiles",
      "description": "Finicity institution name"
    },
    "accounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowPossibleLoanDepositsAccount"
      },
      "description": "A list of account records"
    },
    "urlHomeApp": {
      "type": "string",
      "example": "http://www.finbank.com",
      "description": "The URL of the Financial Institution"
    }
  }
}
object CashFlowReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "example": 730,
          "description": "Number of days covered by the report"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 365 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records, including information about the individual accounts used in this report"
        },
        "cashFlowDebitSummary": {
          "$ref": "#/components/schemas/CashFlowCashFlowDebitSummary"
        },
        "possibleLoanDeposits": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CashFlowPossibleLoanDeposits"
          },
          "description": "A possible loan deposits record"
        },
        "cashFlowCreditSummary": {
          "$ref": "#/components/schemas/CashFlowCashFlowCreditSummary"
        },
        "cashFlowBalanceSummary": {
          "$ref": "#/components/schemas/CashFlowCashFlowBalanceSummary"
        },
        "cashFlowCharacteristicsSummary": {
          "$ref": "#/components/schemas/CashFlowCashFlowCharacteristicsSummary"
        }
      }
    }
  ],
  "description": "A Cash Flow report"
}
object CashFlowReportAccount
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "example": 6681984,
      "description": "Finicity account ID"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "CFR: `ALL` (`checking` / `savings` / `loan` / `mortgage` / `credit card` / `CD` / `MM` / `investment`...)"
    },
    "number": {
      "type": "string",
      "example": "XX1111",
      "description": "The account number from the institution (obfuscated)"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "balanceDate": {
      "type": "integer",
      "format": "int64",
      "example": 1614880526,
      "description": "A timestamp showing when the `balance` was captured"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "a list of transaction records"
    },
    "cashFlowDebit": {
      "$ref": "#/components/schemas/CashFlowCashFlowDebit"
    },
    "cashFlowCredit": {
      "$ref": "#/components/schemas/CashFlowCashFlowCredit"
    },
    "currentBalance": {
      "type": "number",
      "example": 100000,
      "description": "The cleared balance of the account as-of `balanceDate`"
    },
    "cashFlowBalance": {
      "$ref": "#/components/schemas/CashFlowCashFlowBalance"
    },
    "availableBalance": {
      "type": "number",
      "example": 1000,
      "description": "Available balance"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "example": 0,
      "description": "The status of the most recent aggregation attempt for this account (non-zero means the account was not accessed successfully for this report, and additional fields for this account may not be reliable)"
    },
    "cashFlowCharacteristic": {
      "$ref": "#/components/schemas/CashFlowCashFlowCharacteristic"
    }
  }
}
object CashFlowReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAck"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/CashFlowReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ]
}
object CashFlowReportConstraints
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object CashFlowReportConstraintsOut
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object CashFlowTransactionAnalyticsAttributes
{
  "type": "object",
  "required": [
    "averageTransactionValueByMonthForTheReportTimePeriod",
    "activityWithdrawalsDebitsForTheReportTimePeriod",
    "activityDepositsCreditsForTheReportTimePeriod"
  ],
  "properties": {
    "lastTransactionDate": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "date"
        ],
        "properties": {
          "date": {
            "type": "string",
            "example": "2020-03-25",
            "description": "Date the deposit transaction was posted"
          },
          "depositsCredits": {
            "type": "number",
            "example": 500,
            "description": "Amount of transaction if deposit, otherwise null"
          },
          "withdrawalsDebits": {
            "type": "number",
            "example": 500,
            "description": "Amount of transaction if withdrawal, otherwise null"
          },
          "zeroAmountTransaction": {
            "type": "number",
            "example": 0,
            "description": "Amount of transaction if zero, otherwise null"
          },
          "transactionDescription": {
            "type": "string",
            "example": "VENMO            CASHOUT",
            "description": "Description of transaction"
          }
        }
      },
      "description": "Latest posted transaction(s) to the account. May be more than one if they share the same timestamp"
    },
    "historicWeeksWithZeroTransactions": {
      "$ref": "#/components/schemas/CashFlowNumWeeksZeros"
    },
    "netCashFlowForTheReportTimePeriod": {
      "type": "number",
      "example": 1544.94,
      "description": "Net cash flow during the report period (may be positive or negative)"
    },
    "netCashFlowByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Net cash flow for each month during the report period"
    },
    "activityDepositsCreditsForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowActivityDepositsCredits"
      },
      "description": "List of all deposit transactions posted to the account during the report period"
    },
    "activityWithdrawalsDebitsForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CashFlowActivityWithdrawalsDebits"
      },
      "description": "List of all withdrawal transactions posted to the account during the report period"
    },
    "averageTransactionValueByMonthForTheReportTimePeriod": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbDateRangeAndAmount"
      },
      "description": "Average value of transactions during periods in the report. Values may be positive or negative"
    }
  },
  "description": "Transaction Analytics Attributes"
}
string Categories
{
  "type": "string",
  "example": "ATM Fee",
  "description": "The different categories for transactions.\n* \"ATM Fee\"\n\n* \"Advertising\"\n\n* \"Air Travel\"\n\n* \"Alcohol & Bars\"\n\n* \"Allowance\"\n\n* \"Amusement\"\n\n* \"Arts\"\n\n* \"Auto & Transport\"\n\n* \"Auto Insurance\"\n\n* \"Auto Payment\"\n\n* \"Baby Supplies\"\n\n* \"Babysitter & Daycare\"\n\n* \"Bank Fee\"\n\n* \"Bills & Utilities\"\n\n* \"Bonus\"\n\n* \"Books\"\n\n* \"Books & Supplies\"\n\n* \"Business Services\"\n\n* \"Buy\"\n\n* \"Cash & ATM\"\n\n* \"Charity\"\n\n* \"Check\"\n\n* \"Child Support\"\n\n* \"Clothing\"\n\n* \"Coffee Shops\"\n\n* \"Credit Card Payment\"\n\n* \"Dentist\"\n\n* \"Deposit\"\n\n* \"Dividend & Cap Gains\"\n\n* \"Doctor\"\n\n* \"Education\"\n\n* \"Electronics & Software\"\n\n* \"Entertainment\"\n\n* \"Eyecare\"\n\n* \"Fast Food\"\n\n* \"Federal Tax\"\n\n* \"Fees & Charges\"\n\n* \"Finance Charge\"\n\n* \"Financial\"\n\n* \"Financial Advisor\"\n\n* \"Food & Dining\"\n\n* \"Furnishings\"\n\n* \"Gas & Fuel\"\n\n* \"Gift\"\n\n* \"Gifts & Donations\"\n\n* \"Groceries\"\n\n* \"Gym\"\n\n* \"Hair\"\n\n* \"Health & Fitness\"\n\n* \"Health Insurance\"\n\n* \"Hobbies\"\n\n* \"Home\"\n\n* \"Home Improvement\"\n\n* \"Home Insurance\"\n\n* \"Home Phone\"\n\n* \"Home Services\"\n\n* \"Home Supplies\"\n\n* \"Hotel\"\n\n* \"Income\"\n\n* \"Interest Income\"\n\n* \"Internet\"\n\n* \"Investments\"\n\n* \"Kids\"\n\n* \"Kids Activities\"\n\n* \"Late Fee\"\n\n* \"Laundry\"\n\n* \"Lawn & Garden\"\n\n* \"Legal\"\n\n* \"Life Insurance\"\n\n* \"Loan Fees and Charges\"\n\n* \"Loan Insurance\"\n\n* \"Loan Interest\"\n\n* \"Loan Payment\"\n\n* \"Loan Principal\"\n\n* \"Loans\"\n\n* \"Local Tax\"\n\n* \"Low Balance\"\n\n* \"Mobile Phone\"\n\n* \"Mortgage & Rent\"\n\n* \"Movies & DVDs\"\n\n* \"Music\"\n\n* \"Newspapers & Magazines\"\n\n* \"Office Supplies\"\n\n* \"Parking\"\n\n* \"Paycheck\"\n\n* \"Personal Care\"\n\n* \"Pet Food & Supplies\"\n\n* \"Pet Grooming\"\n\n* \"Pets\"\n\n* \"Pharmacy\"\n\n* \"Printing\"\n\n* \"Property Tax\"\n\n* \"Public Transportation\"\n\n* \"Reimbursement\"\n\n* \"Rental Car & Taxi\"\n\n* \"Restaurants\"\n\n* \"Sales Tax\"\n\n* \"Sell\"\n\n* \"Service & Parts\"\n\n* \"Service Fee\"\n\n* \"Shipping\"\n\n* \"Shopping\"\n\n* \"Spa & Massage\"\n\n* \"Sporting Goods\"\n\n* \"Sports\"\n\n* \"State Tax\"\n\n* \"Streaming Services\"\n\n* \"Student Loan\"\n\n* \"Taxes\"\n\n* \"Television\"\n\n* \"Toys\"\n\n* \"Trade Commissions\"\n\n* \"Transfer\"\n\n* \"Transfer for Cash Spending\"\n\n* \"Travel\"\n\n* \"Tuition\"\n\n* \"Uncategorized\"\n\n* \"Utilities\"\n\n* \"Vacation\"\n\n* \"Veterinary\"\n\n* \"Internet / Broadband Charges\""
}
object Categorization
{
  "type": "object",
  "required": [
    "normalizedPayeeName",
    "category",
    "country"
  ],
  "properties": {
    "city": {
      "$ref": "#/components/schemas/City"
    },
    "state": {
      "$ref": "#/components/schemas/State"
    },
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "category": {
      "$ref": "#/components/schemas/Categories"
    },
    "postalCode": {
      "$ref": "#/components/schemas/ZipCode"
    },
    "bestRepresentation": {
      "type": "string",
      "example": "VERIZON WIRELESS PAYMENTS",
      "description": "Combines the `description` and `memo` data together, removing duplicated information and numbers and special characters"
    },
    "normalizedPayeeName": {
      "type": "string",
      "example": "Mad Science Research",
      "description": "A normalized payee, derived from the transaction's description and memo fields"
    }
  },
  "description": "Categorization Record"
}
object CertifiedInstitution
{
  "type": "object",
  "required": [
    "name",
    "id",
    "transAgg",
    "ach",
    "stateAgg",
    "voi",
    "voa",
    "aha",
    "availBalance",
    "accountOwner",
    "loanPaymentDetails",
    "studentLoanData"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    },
    "ach": {
      "$ref": "#/components/schemas/InstitutionAch"
    },
    "aha": {
      "$ref": "#/components/schemas/InstitutionAha"
    },
    "voa": {
      "$ref": "#/components/schemas/InstitutionVoa"
    },
    "voi": {
      "$ref": "#/components/schemas/InstitutionVoi"
    },
    "name": {
      "$ref": "#/components/schemas/InstitutionName"
    },
    "rssd": {
      "$ref": "#/components/schemas/Rssd"
    },
    "stateAgg": {
      "$ref": "#/components/schemas/InstitutionStateAgg"
    },
    "transAgg": {
      "$ref": "#/components/schemas/InstitutionTransAgg"
    },
    "accountOwner": {
      "$ref": "#/components/schemas/InstitutionAccountOwner"
    },
    "availBalance": {
      "$ref": "#/components/schemas/InstitutionAvailableBalance"
    },
    "studentLoanData": {
      "$ref": "#/components/schemas/StudentLoanDataCertification"
    },
    "childInstitutions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ChildInstitution"
      },
      "minItems": 0,
      "description": "An array of child financial institutions"
    },
    "loanPaymentDetails": {
      "$ref": "#/components/schemas/LoanPaymentDetailCertification"
    }
  }
}
object CertifiedInstitutions
{
  "type": "object",
  "required": [
    "found",
    "displaying",
    "moreAvailable",
    "requestedDate",
    "institutions"
  ],
  "properties": {
    "found": {
      "$ref": "#/components/schemas/FoundResults"
    },
    "displaying": {
      "$ref": "#/components/schemas/DisplayingResults"
    },
    "institutions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CertifiedInstitution"
      },
      "maxItems": 1000,
      "minItems": 0,
      "description": "A list of institutions"
    },
    "moreAvailable": {
      "$ref": "#/components/schemas/MoreResultsAvailable"
    },
    "requestedDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  },
  "description": "A list of financial institutions from the Get Certified Institutions API"
}
object ChildInstitution
{
  "type": "object",
  "required": [
    "rssd",
    "parentRSSD",
    "name",
    "institutionId"
  ],
  "properties": {
    "name": {
      "$ref": "#/components/schemas/InstitutionName"
    },
    "rssd": {
      "$ref": "#/components/schemas/Rssd"
    },
    "parentRSSD": {
      "$ref": "#/components/schemas/Rssd"
    },
    "institutionId": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    }
  }
}
string City
{
  "type": "string",
  "example": "Murray",
  "description": "City"
}
number ClassificationConfidenceScore
{
  "type": "number",
  "example": 100,
  "description": "The confidence score 0-100 of the name classification."
}
object ConnectEmailParameters
{
  "type": "object",
  "required": [
    "partnerId",
    "customerId",
    "consumerId",
    "email"
  ],
  "properties": {
    "email": {
      "$ref": "#/components/schemas/EmailOptions"
    },
    "webhook": {
      "$ref": "#/components/schemas/Webhook"
    },
    "fromDate": {
      "$ref": "#/components/schemas/ConnectFromDate"
    },
    "language": {
      "$ref": "#/components/schemas/ConnectLanguage"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "consumerId": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "experience": {
      "$ref": "#/components/schemas/Experience"
    },
    "redirectUri": {
      "$ref": "#/components/schemas/RedirectUri"
    },
    "webhookData": {
      "$ref": "#/components/schemas/WebhookData"
    },
    "singleUseUrl": {
      "$ref": "#/components/schemas/SingleUseUrl"
    },
    "webhookHeaders": {
      "$ref": "#/components/schemas/WebhookHeaders"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "webhookContentType": {
      "$ref": "#/components/schemas/WebhookContentType"
    },
    "institutionSettings": {
      "$ref": "#/components/schemas/InstitutionSettings"
    },
    "optionalConsumerInfo": {
      "$ref": "#/components/schemas/ConsumerInfo"
    }
  }
}
object ConnectEmailUrl
{
  "type": "object",
  "required": [
    "link",
    "emailConfig"
  ],
  "properties": {
    "link": {
      "$ref": "#/components/schemas/ConnectLink"
    },
    "emailConfig": {
      "$ref": "#/components/schemas/EmailOptions"
    }
  }
}
integer ConnectFromDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "The `fromDate` parameter is used when experiences are associated with a credit decisioning report and any other reports with transaction data. The value is in epoch time and must be 10 digits. Example: 1494449017. If it's greater than 10 digits, then the `fromDate` is set to the credit decisioning report's default `fromDate`.\n\nFor an experience that generates multiple reports, the `fromDate` gets passed to the reports that support it.\n\nHowever, Connect doesn't pass this parameter to the following reports:\n* Pay Statement Extraction Report \n* VOIE - Paystub (with TXVerify) Report \n* Statement Report \n* Verification of Income Report \n* VOIE - Payroll Report \n\nNote: this field isn't used if you're only collecting transaction data without a report."
}
object ConnectJointBorrowerEmailParameters
{
  "type": "object",
  "required": [
    "partnerId",
    "borrowers",
    "email",
    "experience"
  ],
  "properties": {
    "email": {
      "$ref": "#/components/schemas/EmailOptions"
    },
    "webhook": {
      "$ref": "#/components/schemas/Webhook"
    },
    "fromDate": {
      "$ref": "#/components/schemas/ConnectFromDate"
    },
    "language": {
      "$ref": "#/components/schemas/ConnectLanguage"
    },
    "borrowers": {
      "$ref": "#/components/schemas/Borrowers"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "experience": {
      "$ref": "#/components/schemas/Experience"
    },
    "redirectUri": {
      "$ref": "#/components/schemas/RedirectUri"
    },
    "webhookData": {
      "$ref": "#/components/schemas/WebhookData"
    },
    "singleUseUrl": {
      "$ref": "#/components/schemas/SingleUseUrl"
    },
    "webhookHeaders": {
      "$ref": "#/components/schemas/WebhookHeaders"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "webhookContentType": {
      "$ref": "#/components/schemas/WebhookContentType"
    },
    "institutionSettings": {
      "$ref": "#/components/schemas/InstitutionSettings"
    }
  }
}
object ConnectJointBorrowerParameters
{
  "type": "object",
  "required": [
    "partnerId",
    "borrowers"
  ],
  "properties": {
    "webhook": {
      "$ref": "#/components/schemas/Webhook"
    },
    "fromDate": {
      "$ref": "#/components/schemas/ConnectFromDate"
    },
    "language": {
      "$ref": "#/components/schemas/ConnectLanguage"
    },
    "borrowers": {
      "$ref": "#/components/schemas/Borrowers"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "experience": {
      "$ref": "#/components/schemas/Experience"
    },
    "redirectUri": {
      "$ref": "#/components/schemas/RedirectUri"
    },
    "webhookData": {
      "$ref": "#/components/schemas/WebhookData"
    },
    "singleUseUrl": {
      "$ref": "#/components/schemas/SingleUseUrl"
    },
    "webhookHeaders": {
      "$ref": "#/components/schemas/WebhookHeaders"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "webhookContentType": {
      "$ref": "#/components/schemas/WebhookContentType"
    },
    "institutionSettings": {
      "$ref": "#/components/schemas/InstitutionSettings"
    }
  }
}
string ConnectLanguage
{
  "type": "string",
  "example": "es",
  "description": "By default, the Connect application is in English. You don't need to pass this parameter unless\nyou want to translate Connect into one of our supported languages.\n\n* Spanish (United States): `es`\n* French (Canada): `fr`\n"
}
string ConnectLink
{
  "type": "string",
  "example": "https://connect2.finicity.com?customerId=5025024821&institutionId=102105&origin=url&partnerId=2445583925753&signature=b5667164db7a9a0007b59267785c996ca3bc9ce97f2e72c98099cead76edfad9&timestamp=1648050761908&ttl=1648057961908&type=lite&webhookContentType=application%2Fjson",
  "description": "A generated Connect URL"
}
object ConnectParameters
{
  "type": "object",
  "required": [
    "partnerId",
    "customerId"
  ],
  "properties": {
    "webhook": {
      "$ref": "#/components/schemas/Webhook"
    },
    "fromDate": {
      "$ref": "#/components/schemas/ConnectFromDate"
    },
    "language": {
      "$ref": "#/components/schemas/ConnectLanguage"
    },
    "isWebView": {
      "$ref": "#/components/schemas/IsWebView"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "consumerId": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "experience": {
      "$ref": "#/components/schemas/Experience"
    },
    "redirectUri": {
      "$ref": "#/components/schemas/RedirectUri"
    },
    "webhookData": {
      "$ref": "#/components/schemas/WebhookData"
    },
    "singleUseUrl": {
      "$ref": "#/components/schemas/SingleUseUrl"
    },
    "webhookHeaders": {
      "$ref": "#/components/schemas/WebhookHeaders"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "webhookContentType": {
      "$ref": "#/components/schemas/WebhookContentType"
    },
    "institutionSettings": {
      "$ref": "#/components/schemas/InstitutionSettings"
    },
    "optionalConsumerInfo": {
      "$ref": "#/components/schemas/ConsumerInfo"
    }
  }
}
object ConnectUrl
{
  "type": "object",
  "required": [
    "link"
  ],
  "properties": {
    "link": {
      "$ref": "#/components/schemas/ConnectLink"
    }
  },
  "description": "A Connect URL object"
}
string ConsentReceiptId
{
  "type": "string",
  "example": "cr_4pfI3r1X8aOHrDDwrwC01NHFxOXlT1",
  "description": "Third party access key receipt ID. Generated by generate third party access key API."
}
object Consumer
{
  "type": "object",
  "required": [
    "id",
    "firstName",
    "lastName",
    "customerId",
    "address",
    "city",
    "state",
    "zip",
    "phone",
    "ssn",
    "birthday",
    "email",
    "createdDate"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "ssn": {
      "$ref": "#/components/schemas/SocialSecurityNumberLastDigits"
    },
    "zip": {
      "$ref": "#/components/schemas/ZipCode"
    },
    "city": {
      "$ref": "#/components/schemas/City"
    },
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "phone": {
      "$ref": "#/components/schemas/PhoneNumber"
    },
    "state": {
      "$ref": "#/components/schemas/State"
    },
    "suffix": {
      "$ref": "#/components/schemas/Suffix"
    },
    "address": {
      "$ref": "#/components/schemas/Address"
    },
    "birthday": {
      "$ref": "#/components/schemas/Birthday"
    },
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  },
  "description": "A finicity consumer record"
}
integer ConsumerDateOfBirth
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "The consumer's date of birth in Unix epoch time (in seconds). See: Handling Epoch Dates and Times. The timestamp should be set at the start of day of birth."
}
string ConsumerId
{
  "type": "string",
  "example": "0bf46322c167b562e6cbed9d40e19a4c",
  "description": "A consumer ID. See Create Consumer API for how to create a consumer ID."
}
object ConsumerInfo
{
  "type": "object",
  "required": [
    "ssn"
  ],
  "properties": {
    "dob": {
      "$ref": "#/components/schemas/ConsumerDateOfBirth"
    },
    "ssn": {
      "$ref": "#/components/schemas/SocialSecurityNumberNoHyphens"
    }
  },
  "description": "The SSN and date of birth of a consumer"
}
object ConsumerUpdate
{
  "type": "object",
  "properties": {
    "ssn": {
      "$ref": "#/components/schemas/SocialSecurityNumber"
    },
    "zip": {
      "$ref": "#/components/schemas/ZipCode"
    },
    "city": {
      "$ref": "#/components/schemas/City"
    },
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "phone": {
      "$ref": "#/components/schemas/PhoneNumber"
    },
    "state": {
      "$ref": "#/components/schemas/State"
    },
    "suffix": {
      "$ref": "#/components/schemas/Suffix"
    },
    "address": {
      "$ref": "#/components/schemas/Address"
    },
    "birthday": {
      "$ref": "#/components/schemas/Birthday"
    },
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    }
  }
}
integer ConvertToRepayment
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Student Loan) The date the loan enters into repayment. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string Country
{
  "type": "string",
  "example": "USA",
  "description": "Country code is Iso3166-1 Alpha-2 code and Alpha 3 standard (max length 3)."
}
string CountryCode
{
  "type": "string",
  "example": "US",
  "maxLength": 2,
  "minLength": 2,
  "description": "Two-letter ISO 3166-1 alpha-2 country code"
}
string CountryCodeNumber
{
  "type": "string",
  "example": "1",
  "maxLength": 3,
  "minLength": 1,
  "description": "The country code digit representing the phone number for specific country"
}
object CreatedConsumer
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  },
  "description": "A consumer that was just created"
}
object CreatedCustomer
{
  "type": "object",
  "required": [
    "id",
    "username",
    "createdDate"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "username": {
      "$ref": "#/components/schemas/CustomerUsername"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  },
  "description": "A new customer that was just enrolled"
}
object CreatedTestTxPushTransaction
{
  "type": "object",
  "required": [
    "id",
    "createdDate"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/TransactionId"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  },
  "description": "Response for TxPush test transaction"
}
string Currency
{
  "type": "string",
  "example": "USD",
  "description": "A currency code"
}
object Customer
{
  "type": "object",
  "required": [
    "id",
    "username",
    "type",
    "createdDate"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "type": {
      "$ref": "#/components/schemas/CustomerType"
    },
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "username": {
      "$ref": "#/components/schemas/CustomerUsername"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    },
    "createdDate": {
      "$ref": "#/components/schemas/StringUnixDate"
    },
    "lastModifiedDate": {
      "$ref": "#/components/schemas/StringUnixDate"
    }
  },
  "description": "A finicity customer record"
}
object CustomerAccount
{
  "type": "object",
  "required": [
    "id",
    "accountNumberDisplay",
    "name",
    "accountNickname",
    "number",
    "type",
    "status",
    "customerId",
    "institutionId",
    "createdDate",
    "currency",
    "institutionLoginId"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/AccountId"
    },
    "name": {
      "$ref": "#/components/schemas/Name"
    },
    "type": {
      "$ref": "#/components/schemas/AccountType"
    },
    "detail": {
      "$ref": "#/components/schemas/CustomerAccountDetail"
    },
    "number": {
      "type": "string",
      "example": "2000004444",
      "deprecated": true,
      "description": "The account number from the institution"
    },
    "status": {
      "$ref": "#/components/schemas/AggregationStatus"
    },
    "balance": {
      "type": "number",
      "example": 401.26,
      "description": "The cleared balance of the account as of `balanceDate`"
    },
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "position": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomerAccountPosition"
      },
      "description": "Investment holdings"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "balanceDate": {
      "$ref": "#/components/schemas/CustomerAccountBalanceDate"
    },
    "createdDate": {
      "$ref": "#/components/schemas/CustomerAccountCreatedDate"
    },
    "institutionId": {
      "$ref": "#/components/schemas/InstitutionId"
    },
    "marketSegment": {
      "$ref": "#/components/schemas/CustomerAccountMarketSegment"
    },
    "parentAccount": {
      "$ref": "#/components/schemas/CustomerAccountParentAccountId"
    },
    "displayPosition": {
      "$ref": "#/components/schemas/DisplayPosition"
    },
    "lastUpdatedDate": {
      "$ref": "#/components/schemas/CustomerLastUpdatedDate"
    },
    "institutionLoginId": {
      "$ref": "#/components/schemas/NumericInstitutionLoginId"
    },
    "lastTransactionDate": {
      "$ref": "#/components/schemas/CustomerAccountLastTransactionDate"
    },
    "accountNumberDisplay": {
      "$ref": "#/components/schemas/AccountNumberDisplay"
    },
    "aggregationStatusCode": {
      "$ref": "#/components/schemas/AggregationStatusCode"
    },
    "oldestTransactionDate": {
      "$ref": "#/components/schemas/CustomerAccountOldestTransactionDate"
    },
    "aggregationAttemptDate": {
      "$ref": "#/components/schemas/CustomerAccountAggregationAttemptDate"
    },
    "aggregationSuccessDate": {
      "$ref": "#/components/schemas/CustomerAccountAggregationSuccessDate"
    },
    "realAccountNumberLast4": {
      "$ref": "#/components/schemas/AccountNumberLast4"
    }
  },
  "description": "An account represents a bank account such as a checking or savings that the customer has added via the Connect interface."
}
integer CustomerAccountAggregationAttemptDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A timestamp showing the last aggregation attempt, whether successful or not. This will not be present until you have run your first aggregation for the account. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer CustomerAccountAggregationSuccessDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A timestamp showing the last successful aggregation of the account. This will not be present until you have run your first aggregation for the account. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer CustomerAccountBalanceDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A timestamp showing when the balance was captured. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer CustomerAccountCreatedDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A timestamp showing when the account was added to the system. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object CustomerAccountDetail
{
  "type": "object",
  "properties": {
    "owner": {
      "type": "string",
      "example": "FinBank",
      "description": "(Student Loan) Owner of the loan"
    },
    "lender": {
      "type": "string",
      "example": "utah community credit union",
      "description": "(Mortgage/Loan) Owner of loan"
    },
    "buyPower": {
      "type": "number",
      "example": 34567.89,
      "description": "(Investment) Money available to buy securities"
    },
    "dateAsOf": {
      "$ref": "#/components/schemas/DateAsOf"
    },
    "loanRate": {
      "type": "number",
      "example": 3.275,
      "description": "(Investment) Interest rate of loan"
    },
    "openDate": {
      "$ref": "#/components/schemas/OpenDate"
    },
    "termOfMl": {
      "type": "string",
      "example": "36",
      "description": "(Mortgage/Loan) Length of loan in months"
    },
    "guarantor": {
      "type": "string",
      "example": "FinBank",
      "description": "(Student Loan) The financial institution guarantor of the loan (who will pay the loan amount to the owner if the borrower defaults)"
    },
    "collateral": {
      "type": "string",
      "example": "nissan sentra",
      "description": "(Mortgage/Loan) Collateral on loan"
    },
    "loanStatus": {
      "type": "string",
      "example": "Deferment",
      "description": "(Student Loan) The repayment status phase (i.e. In School, Grace, Repayment, Deferment, Forbearance)"
    },
    "ytdTaxPaid": {
      "type": "number",
      "example": 1489,
      "description": "(Mortgage/Loan) Tax paid year-to-date"
    },
    "description": {
      "type": "string",
      "example": "a description",
      "description": "(Mortgage/Loan) Description of loan"
    },
    "feesBalance": {
      "type": "number",
      "example": 150,
      "description": "(Student Loan) The total outstanding fees balance"
    },
    "loanAwardId": {
      "type": "string",
      "example": "1234568",
      "description": "(Student Loan) The federal unique loan identifying number"
    },
    "matchAmount": {
      "type": "number",
      "example": 378,
      "description": "(Investment) Amount matched"
    },
    "nextPayment": {
      "type": "number",
      "example": 1578,
      "description": "(Mortgage/Loan) Minimum payment due"
    },
    "rolloverLtd": {
      "type": "number",
      "example": 23456.78,
      "description": "(Investment) Life to date of money rolled over"
    },
    "interestRate": {
      "type": "string",
      "example": "15.789",
      "description": "(Credit Card/Line Of Credit) and (Mortgage/Loan) The account's current interest rate"
    },
    "loanTermType": {
      "type": "string",
      "example": "fixed",
      "description": "(Mortgage/Loan) Type of loan term"
    },
    "maturityDate": {
      "$ref": "#/components/schemas/MaturityDate"
    },
    "mlHolderName": {
      "type": "string",
      "example": "John Smith",
      "description": "(Mortgage/Loan) Holder of the mortgage or loan"
    },
    "paymentsMade": {
      "type": "integer",
      "format": "int32",
      "example": 14,
      "description": "(Mortgage/Loan) Number of payments made"
    },
    "payoffAmount": {
      "type": "number",
      "example": 45567.98,
      "description": "(Mortgage/Loan) The amount required to payoff the loan"
    },
    "preTaxAmount": {
      "type": "number",
      "example": 78564.99,
      "description": "(Investment) Pre-tax amount of total balance"
    },
    "shortBalance": {
      "type": "number",
      "example": 12456.89,
      "description": "(Investment) Sum of short balance"
    },
    "balloonAmount": {
      "type": "number",
      "example": 1678.56,
      "description": "(Mortgage/Loan) Balloon payment amount"
    },
    "currentSchool": {
      "type": "string",
      "example": "utah valley university",
      "description": "(Mortgage/Loan) Current school"
    },
    "escrowBalance": {
      "type": "number",
      "example": 2345.01,
      "description": "(Mortgage/Loan) The escrow balance"
    },
    "firstMortgage": {
      "type": "boolean",
      "example": true,
      "description": "(Mortgage/Loan) First mortgage (F/Y)"
    },
    "initialMlDate": {
      "$ref": "#/components/schemas/InitialMlDate"
    },
    "lateFeeAmount": {
      "type": "number",
      "example": 35,
      "description": "(Mortgage/Loan) Late fee charged"
    },
    "marginAllowed": {
      "type": "boolean",
      "example": true,
      "description": "Margin trading indicator (true / false)"
    },
    "marginBalance": {
      "type": "number",
      "example": 456,
      "description": "(Investment) Net interest earned after deducting interest paid out"
    },
    "pastDueAmount": {
      "type": "number",
      "example": 3688.99,
      "description": "(Credit Card/Line Of Credit) Balance past due"
    },
    "periodEndDate": {
      "$ref": "#/components/schemas/PeriodEndDate"
    },
    "repaymentPlan": {
      "type": "string",
      "example": "Standard, Graduated, Extended, Pay As You Earn, and more.",
      "description": "(Mortgage/Loan) Type of repayment plan for the student loan"
    },
    "vestedBalance": {
      "type": "number",
      "example": 45000,
      "description": "(Investment) Vested amount in account"
    },
    "afterTaxAmount": {
      "type": "number",
      "example": 68564.99,
      "description": "(Investment) After-tax amount of total balance"
    },
    "currentBalance": {
      "type": "number",
      "example": 5789.34,
      "description": "(Credit Card/Line Of Credit) and (Investment) Current balance"
    },
    "daysDelinquent": {
      "type": "integer",
      "format": "int32",
      "example": 5,
      "description": "(Student Loan) The number of days past a due date that a payment should have been made"
    },
    "empMatchAmount": {
      "type": "number",
      "example": 256.99,
      "description": "(Investment) Employer matched contributions"
    },
    "interestPeriod": {
      "type": "string",
      "example": "monthly",
      "description": "(Mortgage/Loan) Period of interest"
    },
    "originalSchool": {
      "type": "string",
      "example": "Brigham young university",
      "description": "(Mortgage/Loan) Original school"
    },
    "paymentDueDate": {
      "$ref": "#/components/schemas/PaymentDueDate"
    },
    "rolloverAmount": {
      "type": "number",
      "example": 101234.67,
      "description": "(Investment) Amount of balance rolled over from original account (401k, etc.)"
    },
    "autoPayEnrolled": {
      "type": "boolean",
      "example": true,
      "description": "(Mortgage/Loan) Enrolled in autopay (F/Y)"
    },
    "contribTotalYtd": {
      "type": "number",
      "example": 2045,
      "description": "(Investment) Total year to date contributions"
    },
    "creditMaxAmount": {
      "type": "number",
      "example": 7000,
      "description": "(Credit Card/Line Of Credit) The account's credit limit"
    },
    "initialMlAmount": {
      "type": "number",
      "example": 65000,
      "description": "(Mortgage/Loan) Original loan amount"
    },
    "interestBalance": {
      "type": "number",
      "example": 2000,
      "description": "(Student Loan) The total outstanding interest balance"
    },
    "interestPaidLtd": {
      "type": "number",
      "example": 56789.34,
      "description": "(Mortgage/Loan) Interest paid since inception of loan (life to date)"
    },
    "lastPaymentDate": {
      "$ref": "#/components/schemas/LastPaymentDate"
    },
    "loanPaymentFreq": {
      "type": "string",
      "example": "monthly",
      "description": "(Mortgage/Loan) Frequency of payments (monthly, etc.)"
    },
    "loanPaymentType": {
      "type": "string",
      "example": "principle",
      "description": "(Mortgage/Loan) Type of loan payment"
    },
    "loanYtdFeesPaid": {
      "type": "number",
      "example": 5621.23,
      "description": "(Student Loan) Loan fees paid year-to-date"
    },
    "nextPaymentDate": {
      "$ref": "#/components/schemas/NextPaymentDate"
    },
    "otherVestAmount": {
      "type": "number",
      "example": 34000,
      "description": "(Investment) Other vested amount"
    },
    "outOfSchoolDate": {
      "$ref": "#/components/schemas/OutOfSchoolDate"
    },
    "periodStartDate": {
      "$ref": "#/components/schemas/PeriodStartDate"
    },
    "previousBalance": {
      "type": "number",
      "example": 1234.56,
      "description": "(Credit Card/Line Of Credit) Prior balance in last statement"
    },
    "totalAmountPaid": {
      "type": "number",
      "example": 16125,
      "description": "(Student Loan) The total amount paid"
    },
    "ytdInterestPaid": {
      "type": "number",
      "example": 3948.56,
      "description": "(Mortgage/Loan) Interest paid year-to-date"
    },
    "firstPaymentDate": {
      "$ref": "#/components/schemas/FirstPaymentDate"
    },
    "interestRateType": {
      "type": "string",
      "example": "variable",
      "description": "(Mortgage/Loan) Type of interest rate"
    },
    "paymentMinAmount": {
      "type": "number",
      "example": 456.78,
      "description": "(Credit Card/Line Of Credit) and (Mortgage/Loan) Minimum payment due"
    },
    "payoffAmountDate": {
      "$ref": "#/components/schemas/PayoffAmountDate"
    },
    "principalBalance": {
      "type": "number",
      "example": 45056.7,
      "description": "(Mortgage/Loan) The principal balance"
    },
    "statementEndDate": {
      "$ref": "#/components/schemas/StatementEndDate"
    },
    "ytdInsurancePaid": {
      "type": "number",
      "example": 1345.89,
      "description": "(Mortgage/Loan) Insurance paid year-to-date"
    },
    "ytdPrincipalPaid": {
      "type": "number",
      "example": 5432.01,
      "description": "(Mortgage/Loan) Principal paid year-to-date"
    },
    "cashBalanceAmount": {
      "type": "number",
      "example": 2000,
      "description": "(Investment) Cash balance of account"
    },
    "interestYtdAmount": {
      "type": "number",
      "example": 1056.67,
      "description": "(Checking/Savings/CD/MoneyMarket) Interest accrued year-to-date"
    },
    "lastPaymentAmount": {
      "type": "number",
      "example": 567.89,
      "description": "(Credit Card/Line Of Credit) and (Mortgage/Loan) The amount received in the last payment"
    },
    "loanStatusEndDate": {
      "$ref": "#/components/schemas/LoanStatusEndDate"
    },
    "paymentsRemaining": {
      "type": "integer",
      "format": "int32",
      "example": 45,
      "description": "(Mortgage/Loan) Number of payments remaining before loan is paid off"
    },
    "projectedInterest": {
      "type": "number",
      "example": 10456.78,
      "description": "(Mortgage/Loan) Projected interest on the loan"
    },
    "remainingTermOfMl": {
      "type": "number",
      "example": 2,
      "description": "(Student Loan) The number of months still outstanding on a loan"
    },
    "totalInterestPaid": {
      "type": "number",
      "example": 1125,
      "description": "(Student Loan) The total amount paid towards interest"
    },
    "cashAccountAllowed": {
      "type": "boolean",
      "example": true,
      "description": "Cash account allowed indicator (true / false)"
    },
    "cashAdvanceBalance": {
      "type": "number",
      "example": 1000,
      "description": "(Credit Card/Line Of Credit) Balance of current cash advance"
    },
    "convertToRepayment": {
      "$ref": "#/components/schemas/ConvertToRepayment"
    },
    "currentLoanBalance": {
      "type": "number",
      "example": 345789.23,
      "description": "(Investment) Current loan balance"
    },
    "expectedPayoffDate": {
      "$ref": "#/components/schemas/ExpectedPayoffDate"
    },
    "lastPaymentDueDate": {
      "$ref": "#/components/schemas/LastPaymentDueDate"
    },
    "otherNonvestAmount": {
      "type": "number",
      "example": 26000,
      "description": "(Investment) Other nonvested amount"
    },
    "periodInterestRate": {
      "type": "number",
      "example": 13.245,
      "description": "(Checking/Savings/CD/MoneyMarket) The APY for the current period interest rate"
    },
    "statementStartDate": {
      "$ref": "#/components/schemas/StatementStartDate"
    },
    "totalPrincipalPaid": {
      "type": "number",
      "example": 15000,
      "description": "(Student Loan) The total amount paid towards the principal balance"
    },
    "endingBalanceAmount": {
      "type": "number",
      "example": 234789.45,
      "description": "(Mortgage/Loan) Ending balance"
    },
    "initialInterestRate": {
      "type": "number",
      "example": 34567.89,
      "description": "(Student Loan) Initial interest rate of loan"
    },
    "interestSubsidyType": {
      "type": "string",
      "example": "Subsidy type",
      "description": "(Student Loan) The indication of the presence of an interest subsidy (i.e. subsidized)"
    },
    "loanStatusStartDate": {
      "$ref": "#/components/schemas/LoanStatusStartDate"
    },
    "loanYtdInterestPaid": {
      "type": "number",
      "example": 5623.23,
      "description": "(Student Loan) Loan interest paid year-to-date"
    },
    "maturityValueAmount": {
      "type": "number",
      "example": 34067.78,
      "description": "(Investment) amount payable to an investor at maturity"
    },
    "periodDepositAmount": {
      "type": "number",
      "example": 2356.56,
      "description": "(Checking/Savings/CD/MoneyMarket) Amount deposited in period"
    },
    "profitSharingAmount": {
      "type": "number",
      "example": 34678.89,
      "description": "(Investment) Amount of balance for profit sharing"
    },
    "rewardEarnedBalance": {
      "type": "integer",
      "format": "int32",
      "example": 500,
      "description": "(Credit Card/Line Of Credit) Earned reward balance"
    },
    "availableCashBalance": {
      "type": "number",
      "example": 3456.78,
      "description": "(Investment) Amount available for cash withdrawal"
    },
    "cashAdvanceMaxAmount": {
      "type": "number",
      "example": 3000,
      "description": "(Credit Card/Line Of Credit) Maximum cash advance amount"
    },
    "loanYtdPrincipalPaid": {
      "type": "number",
      "example": 5621.23,
      "description": "(Student Loan) Loan principal paid year-to-date"
    },
    "originalInterestRate": {
      "type": "number",
      "example": 12,
      "description": "(Student Loan) The original interest rate to which the loan was disbursed, in APY"
    },
    "originalMaturityDate": {
      "$ref": "#/components/schemas/OriginalMaturityDate"
    },
    "periodInterestAmount": {
      "type": "number",
      "example": 1234.56,
      "description": "(Checking/Savings/CD/MoneyMarket) Interest accrued during the current period"
    },
    "repaymentPlanEndDate": {
      "$ref": "#/components/schemas/RepaymentPlanEndDate"
    },
    "weightedInterestRate": {
      "type": "number",
      "example": 12,
      "description": "(Student Loan) The interest rate of multiple interest rates and balances at the group level, in APY"
    },
    "creditAvailableAmount": {
      "type": "number",
      "example": 3000,
      "description": "(Credit Card/Line Of Credit) The available credit (typically the credit limit minus the current balance)"
    },
    "lastPaymentLateCharge": {
      "type": "number",
      "example": 50,
      "description": "(Mortgage/Loan) Amount of late charge in last payment"
    },
    "statementCloseBalance": {
      "type": "number",
      "example": 2456.69,
      "description": "(Credit Card/Line Of Credit) Balance of statement at close"
    },
    "statementCreditAmount": {
      "type": "number",
      "example": 345,
      "description": "(Credit Card/Line Of Credit) Credit amount applied in statement period"
    },
    "availableBalanceAmount": {
      "type": "number",
      "example": 5678.78,
      "description": "(Checking/Savings/CD/MoneyMarket) and (Mortgage/Loan) The available balance (typically the current balance with adjustments for any pending transactions)"
    },
    "empPretaxContribAmount": {
      "type": "number",
      "example": 450,
      "description": "(Investment) Employer pretax contribution amount"
    },
    "interestPriorYtdAmount": {
      "type": "number",
      "example": 3056.79,
      "description": "(Checking/Savings/CD/MoneyMarket) Interest earned in prior year"
    },
    "lastPaymentReceiveDate": {
      "$ref": "#/components/schemas/LastPaymentReceiveDate"
    },
    "recurringPaymentAmount": {
      "type": "number",
      "example": 456.23,
      "description": "(Mortgage/Loan) Recurring payment amount"
    },
    "repaymentPlanStartDate": {
      "$ref": "#/components/schemas/RepaymentPlanStartDate"
    },
    "statementFinanceAmount": {
      "type": "number",
      "example": 156.78,
      "description": "(Credit Card/Line Of Credit) Finance amount of statement period"
    },
    "cashAdvanceInterestRate": {
      "type": "number",
      "example": 21.5,
      "description": "(Credit Card/Line Of Credit) Interest rate for cash advances"
    },
    "lastPaymentEscrowAmount": {
      "type": "number",
      "example": 456.78,
      "description": "(Mortgage/Loan) Amount towards escrow in last payment"
    },
    "statementPurchaseAmount": {
      "type": "number",
      "example": 2345.9,
      "description": "(Credit Card/Line Of Credit) Purchase amount of statement period"
    },
    "lastPaymentLastFeeAmount": {
      "type": "number",
      "example": 150,
      "description": "(Mortgage/Loan) Amount of last fee in last payment"
    },
    "empPretaxContribAmountYtd": {
      "type": "number",
      "example": 700,
      "description": "(Investment) Employer pretax contribution amount year to date"
    },
    "lastPaymentInterestAmount": {
      "type": "number",
      "example": 234.56,
      "description": "(Mortgage/Loan) Amount of interest in last payment"
    },
    "nextPaymentInterestAmount": {
      "type": "number",
      "example": 234.56,
      "description": "(Mortgage/Loan) Amount of interest in next payment"
    },
    "cashAdvanceAvailableAmount": {
      "type": "number",
      "example": 2000,
      "description": "(Credit Card/Line Of Credit) Currently available cash advance"
    },
    "lastPaymentPrincipalAmount": {
      "type": "number",
      "example": 1256.67,
      "description": "(Mortgage/Loan) Amount towards principal in last payment"
    },
    "nextPaymentPrincipalAmount": {
      "type": "number",
      "example": 1256.67,
      "description": "(Mortgage/Loan) Amount towards principal in next payment"
    }
  },
  "description": "Additional customer account details. Not all data points will return for each account type. You can see the account type that each data point will return for in descriptions. The data point are also subject to availability by the institution."
}
integer CustomerAccountLastTransactionDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "The date of the latest transaction on the account. This will not be present until you have run your first aggregation for the account. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string CustomerAccountMarketSegment
{
  "type": "string",
  "example": "personal",
  "description": "The market segment of the account. Possible values: personal, business"
}
object CustomerAccountMultipleStatement
{
  "type": "object",
  "required": [
    "asOfDate",
    "index"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/AssetId"
    },
    "code": {
      "type": "string",
      "description": "Error code for  the bank statement not generated"
    },
    "index": {
      "$ref": "#/components/schemas/Index"
    },
    "message": {
      "type": "string",
      "description": "Error message for the bank statement not generated"
    },
    "asOfDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "description": {
      "$ref": "#/components/schemas/Description"
    },
    "documentDate": {
      "$ref": "#/components/schemas/DocumentDate"
    }
  },
  "description": "Statement represents the bank statements for a given customer's account"
}
object CustomerAccountMultipleStatements
{
  "type": "object",
  "required": [
    "statements"
  ],
  "properties": {
    "statements": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomerAccountMultipleStatement"
      },
      "example": [
        {
          "id": "a9e96186-2896-4a21-8759-450403dadf47-1063025272",
          "index": "1",
          "asOfDate": 1669036741,
          "description": "08/28/2020 - 09/27/2020",
          "documentDate": "2020-09-27"
        },
        {
          "code": "960",
          "index": "2",
          "message": "statement not found.",
          "asOfDate": 1669036741
        }
      ],
      "description": "List of customer account statements"
    }
  },
  "description": "A list of customer account statements"
}
integer CustomerAccountOldestTransactionDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "The date of the oldest transaction in the transactions for the account. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string CustomerAccountParentAccountId
{
  "type": "string",
  "example": "5011648377",
  "description": "The assigned account ID for the account one level higher in the student loan account hierarchy"
}
object CustomerAccountPosition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 454678080,
      "description": "The ID of the investment position"
    },
    "units": {
      "type": "number",
      "example": 6.537,
      "description": "The number of units of the holding"
    },
    "mfType": {
      "type": "string",
      "example": "OPENEND",
      "description": "Type of mutual fund, such as open ended"
    },
    "status": {
      "type": "string",
      "example": "A",
      "description": "The status of the holding"
    },
    "symbol": {
      "type": "string",
      "example": "DAL",
      "description": "The investment position's market ticker symbol"
    },
    "posType": {
      "type": "string",
      "example": "Long",
      "description": "Fund type assigned by the FI (long or short)"
    },
    "holdType": {
      "type": "string",
      "example": "INVESTMENT",
      "description": "The type of the holding"
    },
    "costBasis": {
      "type": "number",
      "example": 190.01,
      "description": "The total cost of acquiring the security"
    },
    "assetClass": {
      "type": "string",
      "example": "INTLSTOCK",
      "description": "An asset class is a grouping of comparable financial securities. These include equities (stocks), fixed income (bonds), and cash equivalent or money market instruments. (DOMESTICBOND, LARGESTOCK, INTLSTOCK, MONEYMRKT, OTHER)"
    },
    "optionType": {
      "type": "string",
      "example": "PUT",
      "description": "The type of option contract (PUT or CALL)"
    },
    "securityId": {
      "type": "string",
      "example": "25400W102",
      "description": "The security ID of the transaction"
    },
    "dailyChange": {
      "type": "number",
      "example": 180.03,
      "description": "The value amount change since the previous day"
    },
    "description": {
      "type": "string",
      "example": "DELTA AIR LINES INC",
      "description": "The description of the holding"
    },
    "marketValue": {
      "type": "number",
      "example": 271.84,
      "description": "Market value of an investment position at the time of retrieval"
    },
    "currencyRate": {
      "type": "number",
      "example": 1,
      "description": "Currency rate, ratio of currency to original currency"
    },
    "currentPrice": {
      "type": "number",
      "example": 41.585,
      "description": "The current price of the investment holding"
    },
    "fiAssetClass": {
      "type": "string",
      "example": "COMNEQTY",
      "description": "Financial Institution (FI) defined asset class (COMMON STOCK, COMNEQTY, EQUITY/STOCK, CMA-ISA, CONVERTIBLE PREFERREDS, CORPORATE BONDS, OTHER MONEY FUNDS, ALLOCATION FUNDS, CMA-TAXABLE, FOREIGNEQUITYADRS, COMMONSTOCK, PREFERRED STOCKS, STABLE VALUE, FOREIGN EQUITY ADRS)"
    },
    "securityName": {
      "type": "string",
      "example": "DELTA AIR LINES INC",
      "description": "The security name for the investment holding"
    },
    "securityType": {
      "type": "string",
      "example": "Stock",
      "description": "Type of security for the investment position"
    },
    "changePercent": {
      "type": "number",
      "example": 170.02,
      "description": "The percent change in value since the previous day"
    },
    "todayGLDollar": {
      "type": "number",
      "example": 16272.9,
      "description": "The current day's gain and loss of the position at the time of aggregation in dollars"
    },
    "totalGLDollar": {
      "type": "number",
      "example": 162742.9,
      "description": "Total gain and loss of the position at the time of aggregation in dollars"
    },
    "securityIdType": {
      "$ref": "#/components/schemas/SecurityIdType"
    },
    "subAccountType": {
      "type": "string",
      "example": "CASH",
      "description": "The subaccount's type, such as cash"
    },
    "todayGLPercent": {
      "type": "number",
      "example": 18.89,
      "description": "The current day's gain and loss of the position at the time of aggregation in percentage"
    },
    "totalGLPercent": {
      "type": "number",
      "example": 68.89,
      "description": "Total gain and loss of the position at the time of aggregation in percentage"
    },
    "invSecurityType": {
      "type": "string",
      "example": "OTHERINFO",
      "description": "The security type for the investment holding"
    },
    "transactionType": {
      "type": "string",
      "example": "Margin",
      "description": "The transaction type of the holding, such as cash, margin, and more"
    },
    "currentPriceDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "optionExpireDate": {
      "type": "string",
      "format": "date",
      "example": "1644994800",
      "description": "Expiration date of option"
    },
    "securityCurrency": {
      "type": "string",
      "example": "USD",
      "description": "Symbol for the currency that the account is being converted into"
    },
    "costBasisPerShare": {
      "type": "number",
      "example": 13.38,
      "description": "The per share cost of acquiring the security"
    },
    "optionStrikePrice": {
      "type": "number",
      "example": 50,
      "description": "The strike price of the option contract"
    },
    "optionSharesPerContract": {
      "type": "number",
      "example": 100,
      "description": "The number of shares per option contract"
    }
  },
  "description": "Details for investment account holdings"
}
object CustomerAccountSimple
{
  "type": "object",
  "required": [
    "id",
    "accountNumberDisplay",
    "name",
    "type",
    "status",
    "customerId",
    "institutionId",
    "createdDate",
    "currency",
    "institutionLoginId",
    "displayPosition"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/AccountId"
    },
    "name": {
      "$ref": "#/components/schemas/Name"
    },
    "type": {
      "$ref": "#/components/schemas/AccountType"
    },
    "status": {
      "$ref": "#/components/schemas/AggregationStatus"
    },
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "institutionId": {
      "$ref": "#/components/schemas/InstitutionId"
    },
    "parentAccount": {
      "$ref": "#/components/schemas/AccountId"
    },
    "displayPosition": {
      "$ref": "#/components/schemas/DisplayPosition"
    },
    "institutionLoginId": {
      "$ref": "#/components/schemas/NumericInstitutionLoginId"
    },
    "accountNumberDisplay": {
      "$ref": "#/components/schemas/AccountNumberDisplay"
    },
    "aggregationStatusCode": {
      "$ref": "#/components/schemas/AggregationStatusCode"
    },
    "aggregationAttemptDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "aggregationSuccessDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  },
  "description": "An account represents a bank account such as a checking or savings that the customer has added via the Connect interface."
}
object CustomerAccounts
{
  "type": "object",
  "required": [
    "accounts"
  ],
  "properties": {
    "accounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomerAccount"
      },
      "description": "List of customer accounts"
    }
  },
  "description": "A list of customer accounts"
}
object CustomerAccountsSimple
{
  "type": "object",
  "required": [
    "accounts"
  ],
  "properties": {
    "accounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomerAccountSimple"
      },
      "description": "A list of accounts with basic information of a customer"
    }
  },
  "description": "A list of accounts with basic information of a customer"
}
object CustomerAnalytics
{
  "type": "object",
  "required": [
    "transactionalAttributes",
    "stateAttributes",
    "streams"
  ],
  "properties": {
    "streams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StreamModel"
      },
      "description": "List of generated streams"
    },
    "stateAttributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StateAttribute"
      },
      "description": "List of calculated state attributes"
    },
    "transactionalAttributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TransactionalAttribute"
      },
      "description": "List of calculated transactional attributes"
    }
  },
  "description": "Analytics and attributes generated at a customer level"
}
string CustomerId
{
  "type": "string",
  "example": "1005061234",
  "description": "A customer ID. See Add Customer API for how to create a customer ID."
}
integer CustomerLastUpdatedDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A timestamp showing when the account was last modified to the system. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string CustomerType
{
  "type": "string",
  "example": "active",
  "description": "The type of customer (\"active\" or \"testing\" or \"\" for all types)"
}
object CustomerUpdate
{
  "type": "object",
  "properties": {
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    }
  },
  "description": "Represent an update to customer fields"
}
string CustomerUsername
{
  "type": "string",
  "example": "customerusername1",
  "description": "The customer's username, assigned by the partner (a unique identifier), following these rules: minimum 6 characters maximum 255 characters any mix of uppercase, lowercase, numeric, and non-alphabet special characters ! @ . # $ % & * _ - + the use of email in this field is discouraged it is recommended to use a unique non-email identifier. Use of special characters may result in an error (e.g. Γ­, ΓΌ, etc.). Usernames are unique. A username used in Test Drive can't be reused in other plans."
}
object CustomerWithAppData
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Customer"
    },
    {
      "type": "object",
      "properties": {
        "applicationId": {
          "$ref": "#/components/schemas/ApplicationId"
        },
        "applicationName": {
          "$ref": "#/components/schemas/ApplicationName"
        }
      }
    }
  ],
  "required": [
    "id",
    "username",
    "firstName",
    "lastName",
    "type",
    "createdDate",
    "applicationId",
    "applicationName"
  ],
  "description": "A finicity customer record with application info"
}
object Customers
{
  "type": "object",
  "required": [
    "displaying",
    "moreAvailable",
    "customers"
  ],
  "properties": {
    "found": {
      "$ref": "#/components/schemas/FoundResults"
    },
    "customers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Customer"
      },
      "description": "A list of customer records"
    },
    "displaying": {
      "$ref": "#/components/schemas/DisplayingResults"
    },
    "moreAvailable": {
      "$ref": "#/components/schemas/MoreResultsAvailable"
    }
  },
  "description": "A list of customers"
}
integer DateAsOf
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(All Account Types) Most recent date of the following information. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string DateTimeWithZone
{
  "type": "string",
  "format": "date-time",
  "example": "2022-03-10T06:06:20.042584549Z",
  "description": "A date-time with time zone"
}
number DecimalNumber
{
  "type": "number",
  "format": "float",
  "example": 0.12,
  "description": "Decimal number"
}
object Deduction
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "401",
      "description": "The normalized category of the deductions in the format [type][number]. The number is the will be the iterating number of the type's occurrence starting at one."
    },
    "type": {
      "type": "string",
      "example": "401 Deductions",
      "description": "Categorization based on the deduction line's description"
    },
    "amountYTD": {
      "type": "number",
      "example": 1744.6,
      "description": "The amount for the deduction line being deducted from the employee's pay for the current pay year"
    },
    "description": {
      "type": "string",
      "example": "401k",
      "description": "The deduction line's deduction type description"
    },
    "amountCurrent": {
      "type": "number",
      "example": 1744.61,
      "description": "The amount for the deduction line deducted from employee's pay for the specified pay period"
    }
  }
}
object Deductions
{
  "type": "object",
  "required": [
    "type",
    "amount"
  ],
  "properties": {
    "type": {
      "type": "string",
      "example": "State tax",
      "description": "Deduction types:\n\n* `Federal tax`: Federal tax withholdings \n\n* `State tax`: State tax withholdings \n\n* `Local tax`: Local tax withholdings \n\n* `Social security tax`: Social security tax withholdings \n\n* `Medicare tax`: Medicare withholdings \n\n* `SUI SDI VPDI tax`: SUI SDI VPDI tax \n\n* Retirement deductions: Retirement withholdings \n\n* `Benefit deductions`: Medical/Health benefits withholdings (i.e. medical, dental, vision, insurance) \n\n* `Garnishment deductions`: Garnishment withholdings, (i.e. bankruptcy, student loan, state garnishments, tax levy garnishments, child support) \n\n* `Other deductions`: Other withholdings, includes any other uncommon withholdings, pension plan, stock plans, etc.\n"
    },
    "amount": {
      "type": "number",
      "example": 4.28,
      "description": "Amount associated with deduction"
    }
  }
}
string Description
{
  "type": "string",
  "description": "Date range representing the period for when the statement data is generated."
}
object Descriptor
{
  "type": "object",
  "required": [
    "type",
    "value"
  ],
  "properties": {
    "type": {
      "type": "string",
      "example": "routingNumber",
      "description": "Payment Instruction Descriptor Type"
    },
    "value": {
      "type": "string",
      "example": "2434345",
      "description": "Value that the Descriptor Type Holds"
    }
  }
}
object DirectDeposit
{
  "type": "object",
  "properties": {
    "amountCurrent": {
      "type": "number",
      "example": 1744.61,
      "description": "The amount of the deposit"
    },
    "accountLastFour": {
      "type": "string",
      "example": "1234",
      "description": "The last four numbers of the account the deposit went into"
    }
  }
}
object DirectDeposits
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "example": 12.34,
      "description": "Direct deposit amount"
    },
    "routingNumber": {
      "type": "string",
      "example": 30207583,
      "description": "Routing number for the deposit account"
    },
    "accountLastFour": {
      "type": "string",
      "example": 3337,
      "description": "Last four digits of the deposit account number"
    },
    "accountTypeCode": {
      "type": "string",
      "example": "Savings",
      "description": "Bank account type:\n\n* `Checking`\n\n* `Savings`\n\n* `Loan`: Loan account employee choose to direct a portion of their net pay to help pay off a loan\n"
    }
  }
}
object DirectPayStatements
{
  "type": "object",
  "required": [
    "payrollPayHistoryId",
    "lastPayPeriodIndicator",
    "mainPayStatementFields",
    "earnings"
  ],
  "properties": {
    "earnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Earnings"
      },
      "description": "Categorization of pay, for the pay period"
    },
    "deductions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Deductions"
      },
      "description": "Deductions from the pay check"
    },
    "directDeposits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DirectDeposits"
      },
      "description": "Direct deposit information for the paycheck"
    },
    "payrollPayHistoryId": {
      "type": "string",
      "example": "qsrt2hmjnf",
      "description": "An ID for the income and employment details for the given pay period"
    },
    "lastPayPeriodIndicator": {
      "type": "boolean",
      "example": true,
      "description": "Most recent available pay check"
    },
    "mainPayStatementFields": {
      "$ref": "#/components/schemas/MainPayStatementFields"
    }
  }
}
integer DisplayPosition
{
  "type": "integer",
  "format": "int32",
  "example": 2,
  "description": "Display position of the account at the financial institution, \"1\"\n    being the top listed account"
}
integer DisplayingResults
{
  "type": "integer",
  "example": 1,
  "description": "The number of results returned"
}
string DocumentDate
{
  "type": "string",
  "description": "The date when the statement was generated."
}
object Earnings
{
  "type": "object",
  "required": [
    "type",
    "amount"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "bonusPayAmount",
      "description": "Where available, the employer description of earnings on the paycheck"
    },
    "rate": {
      "type": "number",
      "example": 19,
      "description": "Rate of pay"
    },
    "type": {
      "type": "string",
      "example": "bonus",
      "description": "Categorization of the earnings:\n\n* `base`\n\n* `bonus`\n\n* `overtime`\n\n* `commission`\n\n* `tips`\n\n* `other`\n"
    },
    "amount": {
      "type": "number",
      "example": 589,
      "description": "Earnings amount for each earning type"
    },
    "amountYTD": {
      "type": "number",
      "example": 14301.25,
      "description": "Earnings YTD amount if available"
    }
  }
}
string EmailAddress
{
  "type": "string",
  "example": "myname@mycompany.com",
  "description": "An email address"
}
string EmailDomainCreationDate
{
  "type": "string",
  "example": "2011-06-29T00:00:00.000Z",
  "description": "Returns a date that the email domain was created."
}
number EmailFirstSeenDays
{
  "type": "number",
  "example": 453,
  "description": "Count of days since the email was first observed in Ekata's Identity Network. If the email has not been observed before, first_seen_days will be 0."
}
object EmailOptions
{
  "type": "object",
  "required": [
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "example": "bob@example.com",
      "description": "The email address for the customer receiving the Connect email"
    },
    "from": {
      "type": "string",
      "example": "test.lender@test.com",
      "description": "The name of a person or business sending the Connect email"
    },
    "subject": {
      "type": "string",
      "example": "Verify your income",
      "description": "The subject line of the email. The default is \"Verify your Financial Information\"."
    },
    "firstName": {
      "type": "string",
      "example": "Bob",
      "description": "The first name of the customer or both names of the customers for joint borrowers. Example: \"Marvin and Jenny\"."
    },
    "signature": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "Cindy Mayfield",
        "Senior Loan Officer",
        "Direct 123-456-7890"
      ],
      "description": "A signature for the email"
    },
    "supportPhone": {
      "type": "string",
      "example": "800-555-5555",
      "description": "The support phone number listed in the email"
    },
    "institutionName": {
      "type": "string",
      "example": "Acme Lending",
      "description": "The name of your company"
    },
    "institutionAddress": {
      "type": "string",
      "example": "222 Winnipeg Drive SLC UT, 84109",
      "description": "The institution address to appear in the footer of the email"
    }
  },
  "description": "Configuration for the Connect email's sent to customers"
}
string EmailToName
{
  "type": "string",
  "example": "not found",
  "description": "The match status between the input name and the queried entity.\n* not found\n* match\n* no-match"
}
boolean EmailValid
{
  "type": "boolean",
  "example": true,
  "description": "True if the email address is valid."
}
object Employee
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Patrick Purchaser",
      "description": "The name of the employee"
    }
  }
}
object Employer
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Rocket Surgery",
      "description": "The name of the employer"
    }
  }
}
string EmployerName
{
  "type": "string",
  "example": "ACME INC",
  "description": "Name of the employer as stated by the employer in the payroll system"
}
string EmploymentId
{
  "type": "string",
  "example": "123v3bv2s5n",
  "description": "This is a Mastercard assigned ID to the employment record. It remains consistent for that employment record, even if the report is refreshed. It can be used to limit the employment records that are returned in the report."
}
object ErrorMessage
{
  "type": "object",
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "object",
      "example": "10001",
      "description": "An error code (can be returned as a number or a string). Useful links: [Common API Status Codes](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/#common-api-status-codes), [Aggregation Status Codes](https://developer.mastercard.com/open-banking-us/documentation/products/manage/account-aggregation/#aggregation-status-codes)."
    },
    "level": {
      "type": "string",
      "example": "error",
      "description": "An error level"
    },
    "title": {
      "type": "string",
      "example": "Connecting accounts error",
      "description": "A title for the error"
    },
    "status": {
      "type": "string",
      "example": "401",
      "description": "A status code"
    },
    "assetId": {
      "$ref": "#/components/schemas/AssetId"
    },
    "message": {
      "type": "string",
      "example": "Invalid authorization credentials",
      "description": "An error message"
    },
    "accountId": {
      "$ref": "#/components/schemas/AccountId"
    },
    "user_message": {
      "type": "string",
      "example": "The session has expired or is invalid",
      "description": "Some more details about the error"
    }
  }
}
string EstimateInclusion
{
  "type": "string",
  "example": "HIGH",
  "description": "Possible values: \"HIGH\", \"MODERATE\", \"LOW\", \"NO\""
}
boolean ExcludeEmpInfo
{
  "type": "boolean",
  "example": false,
  "description": "Only used on an exception basis for clients that need to exclude EmpInfo data from the VOE-Payroll or VOIE-Payroll report. If true is passed EmpInfo payroll provider's data will not be searched or returned."
}
integer ExpectedPayoffDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Student Loan) The expected date of the payoff date. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string Experience
{
  "type": "string",
  "example": "default",
  "description": "The `experience` field allows you to customize:\n* Brand: color and logo\n* Icon: displayed on the \"Share your data\" page \n* Popular institutions: displayed on the Bank Search page \n* Report: the credit decisioning report to send when Connect completes. \n* MVS modules: financial, payroll, paystub\n\nNote: the Finicity sales engineers (SE) help you set up a default experience for your company when you migrate to Connect 2.0. For each additional experience you create thereafter, they'll give you a unique ID. See [Generate Connect URL](https://developer.mastercard.com/open-banking-us/documentation/connect/generate-2-connect-url-apis/).\n\nExperience values options: \n* \"default\": your default experience (must be defined) \n* GUID: the code for a different experience\n* Not defined: If you don't pass the experience parameter, then Connect's out of the box default experience (add accounts but no branding) is used, and the MVS modules will not run."
}
boolean ExtractDeductions
{
  "type": "boolean",
  "default": false,
  "example": true,
  "description": "Field to indicate whether to extract the deductions on all pay statements"
}
boolean ExtractDirectDeposit
{
  "type": "boolean",
  "default": true,
  "example": true,
  "description": "Field to indicate whether to extract the direct deposits on all pay statements"
}
boolean ExtractEarnings
{
  "type": "boolean",
  "default": true,
  "example": true,
  "description": "Field to indicate whether to extract the earnings on all pay statements"
}
string FirstName
{
  "type": "string",
  "example": "John",
  "description": "The first name of the account holder"
}
integer FirstPaymentDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Mortgage/Loan) First payment due date. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object FixConnectParameters
{
  "type": "object",
  "required": [
    "partnerId",
    "customerId",
    "institutionLoginId"
  ],
  "properties": {
    "webhook": {
      "$ref": "#/components/schemas/Webhook"
    },
    "language": {
      "$ref": "#/components/schemas/ConnectLanguage"
    },
    "isWebView": {
      "$ref": "#/components/schemas/IsWebView"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "experience": {
      "$ref": "#/components/schemas/Experience"
    },
    "redirectUri": {
      "$ref": "#/components/schemas/RedirectUri"
    },
    "webhookData": {
      "$ref": "#/components/schemas/WebhookData"
    },
    "singleUseUrl": {
      "$ref": "#/components/schemas/SingleUseUrl"
    },
    "webhookHeaders": {
      "$ref": "#/components/schemas/WebhookHeaders"
    },
    "institutionLoginId": {
      "$ref": "#/components/schemas/InstitutionLoginId"
    },
    "webhookContentType": {
      "$ref": "#/components/schemas/WebhookContentType"
    }
  }
}
integer FoundResults
{
  "type": "integer",
  "example": 200,
  "description": "The total number of results matching search criteria"
}
string GovernmentId
{
  "type": "string",
  "example": "123456789",
  "description": "A federal or state issued identification number in alphanumeric characters.\n* **United States**:\n\n  * Passport: 6-9 digits.\n\n  * US Visa: 8 digits.\n\n  * Driver's license: 1-19 digits\n* **Canada**:\n\n  * Passport: 8 digits \n\n  * Driver: 6-9 digits"
}
boolean GseEnabled
{
  "type": "boolean",
  "example": true,
  "description": "Mastercard Open Banking internal use only to flag reports that should not be retrieved by the GSE's (Government-Sponsored Enterprise).\n\nThis is a mandatory field for VOE-payroll and VOIE-payroll report types."
}
number IdentityNetworkScore
{
  "type": "number",
  "example": 0.574,
  "description": "Comprehensive network score built on behavioral insights such as velocity, popularity, volatility, and age of an attribute, with a higher score indicating a riskier account sign-up. A number between 0 and 1 rounded to three decimal places."
}
number IdentityRiskScore
{
  "type": "number",
  "example": 275,
  "description": "Comprehensive identity risk score with a higher score indicating a riskier account sign-up."
}
boolean IncludePending
{
  "type": "boolean",
  "default": false,
  "example": true,
  "description": "If pending transactions must be included"
}
integer IncomeStreamConfidenceMinimum
{
  "type": "integer",
  "format": "int32",
  "example": 50,
  "description": "Include income streams in the report, based on the income stream's confidence score. For example, Use the value 50 to include only income streams with a confidence score of 50 or higher."
}
string Index
{
  "type": "string",
  "description": "The index for the statement. This can range from 1 to 24 statement indexes."
}
integer InitialMlDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Mortgage/Loan) Original date of loan. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object InitiatedMicroDeposit
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "example": "Pending",
      "description": "Micro entries successful initiation status"
    },
    "accountId": {
      "$ref": "#/components/schemas/AccountId"
    },
    "depositCount": {
      "$ref": "#/components/schemas/MicroDepositCount"
    },
    "statusDescription": {
      "type": "string",
      "example": "Micro entries successfully initiated",
      "description": "Micro entries successful initiation description"
    }
  }
}
object Institution
{
  "type": "object",
  "required": [
    "id",
    "transAgg",
    "ach",
    "stateAgg",
    "voi",
    "voa",
    "aha",
    "availBalance",
    "accountOwner",
    "oauthEnabled",
    "currency",
    "status"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    },
    "ach": {
      "$ref": "#/components/schemas/InstitutionAch"
    },
    "aha": {
      "$ref": "#/components/schemas/InstitutionAha"
    },
    "voa": {
      "$ref": "#/components/schemas/InstitutionVoa"
    },
    "voi": {
      "$ref": "#/components/schemas/InstitutionVoi"
    },
    "name": {
      "$ref": "#/components/schemas/InstitutionName"
    },
    "class": {
      "type": "string",
      "example": "retirement",
      "description": "Institution's class"
    },
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "phone": {
      "$ref": "#/components/schemas/PhoneNumber"
    },
    "status": {
      "type": "string",
      "example": "online",
      "description": "Status for the institution: \"online\", \"offline\", \"maintenance\", \"testing\""
    },
    "address": {
      "$ref": "#/components/schemas/InstitutionAddress"
    },
    "branding": {
      "$ref": "#/components/schemas/Branding"
    },
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "stateAgg": {
      "$ref": "#/components/schemas/InstitutionStateAgg"
    },
    "timeZone": {
      "type": "string",
      "example": "America/Denver",
      "description": "The time zone of the institution."
    },
    "transAgg": {
      "$ref": "#/components/schemas/InstitutionTransAgg"
    },
    "urlHomeApp": {
      "type": "string",
      "example": "https://www.example.com/home",
      "description": "The URL of the institution's primary home page"
    },
    "specialText": {
      "type": "string",
      "example": "Please enter your Principal Financial - Retirement (Personal) Username and Password.",
      "description": "Special instructions given to customers for login"
    },
    "urlLogonApp": {
      "type": "string",
      "example": "https://www.example.com/login",
      "description": "The URL of the institution's login page"
    },
    "accountOwner": {
      "$ref": "#/components/schemas/InstitutionAccountOwner"
    },
    "availBalance": {
      "$ref": "#/components/schemas/InstitutionAvailableBalance"
    },
    "oauthEnabled": {
      "type": "boolean",
      "example": true,
      "description": "\"true\": The institution is an OAuth connection\n\n\"false\": The institution isn't an OAuth connection"
    },
    "studentLoanData": {
      "$ref": "#/components/schemas/StudentLoanDataCertification"
    },
    "newInstitutionId": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    },
    "urlForgotPassword": {
      "type": "string",
      "example": "https://www.example.com/forgotPassword.do",
      "description": "Institution's forgot password page"
    },
    "loanPaymentDetails": {
      "$ref": "#/components/schemas/LoanPaymentDetailCertification"
    },
    "oauthInstitutionId": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    },
    "specialInstructions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "Account details",
        "Balances and transactions",
        "Personal and account ownership info"
      ],
      "description": "Instructions given to the customer before they are sent to the institution website to login for OAuth institutions.\n\nNote: this helps the customer to provide the proper permission for data needed for the application."
    },
    "urlOnlineRegistration": {
      "type": "string",
      "example": "https://www.example.com/signup",
      "description": "Institution's signup page"
    },
    "accountTypeDescription": {
      "type": "string",
      "example": "Workplace Retirement",
      "description": "Values: Banking, Investments, Credit Cards/Accounts, Workplace Retirement, Mortgages and Loans, Insurance"
    },
    "specialInstutionsTitle": {
      "type": "string",
      "example": "Special OAuth Login Instructions",
      "description": "The title of the special instructions, if one exists or is required."
    }
  },
  "description": "A financial institution"
}
boolean InstitutionAccountOwner
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The institution is certified for the Account Owner product\n\"false\": The institution is decertified for the Account Owner product"
}
boolean InstitutionAch
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The institution is certified for the ACH product\n\"false\": The institution is decertified for the ACH product"
}
object InstitutionAddress
{
  "type": "object",
  "properties": {
    "city": {
      "$ref": "#/components/schemas/City"
    },
    "state": {
      "$ref": "#/components/schemas/State"
    },
    "country": {
      "$ref": "#/components/schemas/Country"
    },
    "postalCode": {
      "$ref": "#/components/schemas/ZipCode"
    },
    "addressLine1": {
      "$ref": "#/components/schemas/AddressLine1"
    },
    "addressLine2": {
      "$ref": "#/components/schemas/AddressLine2"
    }
  },
  "description": "The address of a financial institution"
}
boolean InstitutionAha
{
  "type": "boolean",
  "example": false,
  "description": "\"true\": The institution is certified for the Account History Aggregation product\n\"false\": The institution is decertified for the Account History Aggregation product"
}
boolean InstitutionAvailableBalance
{
  "type": "boolean",
  "example": false,
  "description": "\"true\": The institution is certified for the Account Balance Check (ABC) product\n\"false\": The institution is decertified for the Account Balance Check (ABC) product"
}
string InstitutionId
{
  "type": "string",
  "example": "4222",
  "description": "The ID of a financial institution"
}
string InstitutionLoginId
{
  "type": "string",
  "example": "1007302745",
  "description": "An institution login ID (from the account record)"
}
string InstitutionName
{
  "type": "string",
  "example": "FinBank",
  "description": "The name of the institution"
}
object InstitutionSettings
{
  "type": "object",
  "description": "Advanced options for configuration of which institutions to display in. See [Institution Settings](https://developer.mastercard.com/open-banking-us/documentation/connect/connect-institutions-settings/)."
}
boolean InstitutionStateAgg
{
  "type": "boolean",
  "example": false,
  "description": "\"true\": The institution is certified for the Statement Aggregation product\n\"false\": The institution is decertified for the Statement Aggregation product"
}
boolean InstitutionTransAgg
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The institution is certified for the Transaction Aggregation product\n\"false\": The institution is decertified for the Transaction Aggregation product"
}
boolean InstitutionVoa
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The institution is certified for the VOA product\n\"false\": The institution is decertified for the VOA product"
}
boolean InstitutionVoi
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The institution is certified for the VOI product\n\"false\": The institution is decertified for the VOI product"
}
object InstitutionWrapper
{
  "type": "object",
  "required": [
    "institution"
  ],
  "properties": {
    "institution": {
      "$ref": "#/components/schemas/Institution"
    }
  }
}
object Institutions
{
  "type": "object",
  "required": [
    "found",
    "displaying",
    "moreAvailable",
    "createdDate",
    "institutions"
  ],
  "properties": {
    "found": {
      "$ref": "#/components/schemas/FoundResults"
    },
    "displaying": {
      "$ref": "#/components/schemas/DisplayingResults"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "institutions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Institution"
      },
      "maxItems": 1000,
      "minItems": 0,
      "description": "A list of institutions"
    },
    "moreAvailable": {
      "$ref": "#/components/schemas/MoreResultsAvailable"
    }
  },
  "description": "A list of financial institutions from the Get Institutions API"
}
object InsufficientFundsTransaction
{
  "type": "object",
  "required": [
    "postedDate",
    "amount",
    "transactionId"
  ],
  "properties": {
    "memo": {
      "type": "string",
      "example": "NSF",
      "maxLength": 255,
      "minLength": 0,
      "description": "Transaction memo"
    },
    "amount": {
      "type": "number",
      "example": -1.65,
      "description": "Amount of the NSF transaction"
    },
    "postedDate": {
      "type": "string",
      "example": "2022-12-19",
      "maxLength": 10,
      "minLength": 10,
      "description": "Posted date of the NSF transaction"
    },
    "description": {
      "type": "string",
      "example": "OVERDRAFT FEE",
      "maxLength": 255,
      "minLength": 0,
      "description": "Description of the transaction"
    },
    "transactionId": {
      "type": "integer",
      "example": 23092384290,
      "description": "Finicity transaction ID"
    }
  }
}
string InvestmentTransactionTypes
{
  "type": "string",
  "example": "transfer",
  "description": "Keywords in the `description` and `memo` fields were used to translate investment transactions into these types.\n\nPossible values: \n* \"cancel\"\n\n* \"purchaseToClose\"\n\n* \"purchaseToCover\"\n\n* \"contribution\"\n\n* \"optionExercise\"\n\n* \"optionExpiration\"\n\n* \"fee\"\n\n* \"soldToClose\"\n\n* \"soldToOpen\"\n\n* \"split\"\n\n* \"transfer\"\n\n* \"returnOfCapital\"\n\n* \"income\"\n\n* \"purchased\"\n\n* \"sold\"\n\n* \"dividendReinvest\"\n\n* \"tax\"\n\n* \"dividend\"\n\n* \"reinvestOfIncome\"\n\n* \"interest\"\n\n* \"deposit\"\n\n* \"otherInfo\""
}
number IpAddressDistance
{
  "type": "number",
  "example": 210,
  "description": "The distance (in miles) between the IP address and the physical address."
}
string IpGeolocationCountryCode
{
  "type": "string",
  "example": "US",
  "description": "The ISO-3166 alpha-2 country code associated with the geolocation of the IP address."
}
string IpGeolocationSubdivision
{
  "type": "string",
  "example": "Oregon",
  "description": "More granular detail about the IP address location."
}
number IpLastSeenDays
{
  "type": "number",
  "example": 15,
  "description": "Count of days since the IP address was last observed in Ekata's Identity Network. If the IP address has not been observed before, IpLastSeenDays will be 0."
}
number IpPhoneDistance
{
  "type": "number",
  "example": 200,
  "description": "The distance (in miles) between the IP address and the closest physical address associated with the phone number."
}
number IpRisk
{
  "type": "number",
  "example": null,
  "description": "True if the IP address is considered risky, based on multiple IP data points and velocity calculations."
}
number IpRiskScore
{
  "type": "number",
  "example": 0.123,
  "description": "Comprehensive risk score associated with an IP address, with a higher score indicating a riskier IP address. A number between 0 and 1 rounded to three decimal places."
}
boolean IsWebView
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": Indicates that the Connect Session will be displayed within a WebView.\nNote: when the `isWebView` parameter is `true` the `redirectUri` parameter is required."
}
string LastName
{
  "type": "string",
  "example": "Smith",
  "description": "The last name of the account holder"
}
integer LastPaymentDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Credit Card/Line Of Credit) The date of the last payment. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer LastPaymentDueDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Mortgage/Loan) Due date of last payment. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer LastPaymentReceiveDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Mortgage/Loan) The date of the last payment. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object LiteConnectParameters
{
  "type": "object",
  "required": [
    "partnerId",
    "customerId",
    "institutionId"
  ],
  "properties": {
    "webhook": {
      "$ref": "#/components/schemas/Webhook"
    },
    "language": {
      "$ref": "#/components/schemas/ConnectLanguage"
    },
    "isWebView": {
      "$ref": "#/components/schemas/IsWebView"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "experience": {
      "$ref": "#/components/schemas/Experience"
    },
    "redirectUri": {
      "$ref": "#/components/schemas/RedirectUri"
    },
    "webhookData": {
      "$ref": "#/components/schemas/WebhookData"
    },
    "singleUseUrl": {
      "$ref": "#/components/schemas/SingleUseUrl"
    },
    "institutionId": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    },
    "webhookHeaders": {
      "$ref": "#/components/schemas/WebhookHeaders"
    },
    "webhookContentType": {
      "$ref": "#/components/schemas/WebhookContentType"
    }
  }
}
boolean LoanPaymentDetailCertification
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The institution is certified for the Loan Payment Detail product\n\n\"false\": The institution is decertified for the Loan Payment Detail product"
}
object LoanPaymentDetails
{
  "type": "object",
  "required": [
    "loanNumber",
    "loanPaymentNumber",
    "loanPaymentAddress"
  ],
  "properties": {
    "loanNumber": {
      "type": "string",
      "example": "123456789",
      "description": "The number of the specific loan under the account."
    },
    "accountDetail": {
      "$ref": "#/components/schemas/LoanPaymentDetailsAccount"
    },
    "loanPaymentNumber": {
      "type": "string",
      "example": "5231123456789",
      "description": "The payment number given by the institution. This number is typically for manual payments. This is not an ACH payment number."
    },
    "loanPaymentAddress": {
      "type": "string",
      "example": "Heartland ECSI       PO Box 718       Wexford PA 15090",
      "description": "The payment address to send manual payments to"
    }
  },
  "description": "Loan payment details for a customer account"
}
object LoanPaymentDetailsAccount
{
  "type": "object",
  "required": [
    "accountId",
    "accountNumber",
    "accountPaymentNumber",
    "accountPaymentAddress"
  ],
  "properties": {
    "accountId": {
      "$ref": "#/components/schemas/AccountId"
    },
    "loanDetail": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LoanPaymentDetailsLoan"
      },
      "description": "Loan details"
    },
    "groupDetail": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LoanPaymentDetailsGroup"
      },
      "description": "Group details"
    },
    "accountNumber": {
      "type": "string",
      "example": "9876543210",
      "description": "Institution's ID of the Student Loan Account"
    },
    "accountPaymentNumber": {
      "type": "string",
      "example": 1234895413,
      "description": "The payment number given by the institution. This number is typically for manual payments. This is not an ACH payment number."
    },
    "accountPaymentAddress": {
      "type": "string",
      "example": "P.O. Box 123 Sioux Falls, IA 51054",
      "description": "The payment address to which send manual payments should be sent"
    },
    "accountFuturePayoffDate": {
      "type": "string",
      "format": "date-time",
      "example": "2022-01-01T00:00:00.000Z",
      "description": "The date to which the \"Future Payoff Amount\" applies"
    },
    "accountFuturePayoffAmount": {
      "type": "number",
      "example": 10000,
      "description": "The payoff amount for the account"
    }
  }
}
object LoanPaymentDetailsGroup
{
  "type": "object",
  "required": [
    "accountId",
    "groupNumber",
    "groupPaymentNumber",
    "groupPaymentAddress",
    "groupLoanDetail"
  ],
  "properties": {
    "accountId": {
      "$ref": "#/components/schemas/AccountId"
    },
    "groupNumber": {
      "type": "string",
      "example": "3210-Group A",
      "description": "Institution's ID of the Student Loan Group"
    },
    "groupLoanDetail": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LoanPaymentDetailsLoan"
      }
    },
    "groupPaymentNumber": {
      "type": "string",
      "example": "00001234895413-A",
      "description": "The payment number given by the institution. This number is typically for manual payments. This is not an ACH payment number."
    },
    "groupPaymentAddress": {
      "type": "string",
      "example": "P.O. Box 123 Sioux Falls, IA 51054",
      "description": "The payment address to which send manual payments should be sent"
    },
    "groupFuturePayoffDate": {
      "type": "string",
      "format": "date-time",
      "example": "2022-01-01T00:00:00.000Z",
      "description": "The date to which the \"Future Payoff Amount\" applies"
    },
    "groupFuturePayoffAmount": {
      "type": "number",
      "example": 7500,
      "description": "The payoff amount for the group"
    }
  },
  "description": "Group details"
}
object LoanPaymentDetailsLoan
{
  "type": "object",
  "required": [
    "accountId",
    "loanNumber",
    "loanPaymentNumber",
    "loanPaymentAddress"
  ],
  "properties": {
    "accountId": {
      "$ref": "#/components/schemas/AccountId"
    },
    "loanNumber": {
      "type": "string",
      "example": "3210-Group A-1",
      "description": "Institution's ID of the Student Loan"
    },
    "loanPaymentNumber": {
      "type": "string",
      "example": "00001234895413-A-1",
      "description": "The payment number given by the institution. This number is typically for manual payments. This is not an ACH payment number."
    },
    "loanPaymentAddress": {
      "type": "string",
      "example": "P.O. Box 123 Sioux Falls, IA 51054",
      "description": "The payment address to which send manual payments should be sent"
    },
    "loanFuturePayoffDate": {
      "type": "string",
      "format": "date-time",
      "example": "2022-01-01T00:00:00.000Z",
      "description": "The date to which the \"Future Payoff Amount\" applies"
    },
    "loanFuturePayoffAmount": {
      "type": "number",
      "example": 5000,
      "description": "The payoff amount for the loan"
    }
  },
  "description": "Loan details"
}
integer LoanStatusEndDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Student Loan) The end date of the current status. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer LoanStatusStartDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Student Loan) The start date of the current status. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object MainPayStatementFields
{
  "type": "object",
  "required": [
    "payDate",
    "grossPayAmount"
  ],
  "properties": {
    "endDate": {
      "type": "integer",
      "format": "int64",
      "example": 1607450357,
      "description": "End date for the pay period"
    },
    "payDate": {
      "type": "integer",
      "format": "int64",
      "example": 1607450357,
      "description": "Pay date for the pay period"
    },
    "payType": {
      "type": "string",
      "example": "Hourly",
      "description": "Current pay type:\n\n* `Salary`\n\n* `Hourly`\n\n* `Daily`\n"
    },
    "startDate": {
      "type": "integer",
      "format": "int64",
      "example": 1607450357,
      "description": "Start date for the pay period"
    },
    "netPayAmount": {
      "type": "number",
      "example": 608.77,
      "description": "Net pay amount for a pay period"
    },
    "payFrequency": {
      "type": "string",
      "example": "Weekly",
      "description": "The current pay frequency, or how often a regular pay check is  \ndistributed:\n\n* `Daily`\n\n* `Weekly`\n\n* `Bi-Weekly`\n\n* `Semi-Monthly`\n\n* `Monthly`\n\n* `Quarterly`\n\n* `Semi-Annual`\n\n* `Annual`\n\n* `Every 2.6 wks`\n\n* `Every 4 wks`\n\n* `Every 5.2 wks`\n\n* `Other`\n"
    },
    "grossPayAmount": {
      "type": "number",
      "example": 755.25,
      "description": "Gross pay amount for the pay period"
    },
    "payPeriodHours": {
      "type": "number",
      "example": 39.75,
      "description": "Sum of all hours worked each week for the pay period"
    },
    "netPayAmountYTD": {
      "type": "number",
      "example": 2345.99,
      "description": "Year to date (YTD) net pay amount at the time of payment"
    },
    "grossPayAmountYTD": {
      "type": "number",
      "example": 4256,
      "description": "Year to date (YTD) gross pay amount at the time of payment"
    }
  }
}
string MarketSegment
{
  "type": "string",
  "example": "Mortgage",
  "description": "Use case for requesting the consumer's data. Current supported enumerations are \"Mortgage\" and \"KYC\". If your use case doesn't match one of these please reach out to your technical point of contact."
}
integer MaturityDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Checking/Savings/CD/MoneyMarket) Maturity date of account type. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string MicroDepositCallbackUrl
{
  "type": "string",
  "format": "uri",
  "example": "https://www.mydomain.com/listener",
  "description": "A callback URL where to receive micro deposit notifications"
}
integer MicroDepositCount
{
  "type": "integer",
  "format": "int32",
  "example": 2,
  "description": "Count of micro entries"
}
object MicroDepositDetails
{
  "type": "object",
  "properties": {
    "status": {
      "$ref": "#/components/schemas/MicroDepositStatus"
    },
    "creationDate": {
      "$ref": "#/components/schemas/NoZoneDateTime"
    },
    "routingNumber": {
      "$ref": "#/components/schemas/RoutingNumber"
    },
    "statusDescription": {
      "$ref": "#/components/schemas/MicroDepositStatusDescription"
    },
    "accountNumberLast4": {
      "$ref": "#/components/schemas/AccountNumberLast4"
    }
  }
}
object MicroDepositInitiation
{
  "type": "object",
  "required": [
    "receiver"
  ],
  "properties": {
    "receiver": {
      "$ref": "#/components/schemas/Receiver"
    },
    "callbackUrl": {
      "$ref": "#/components/schemas/MicroDepositCallbackUrl"
    },
    "institutionLoginId": {
      "$ref": "#/components/schemas/InstitutionLoginId"
    }
  }
}
string MicroDepositStatus
{
  "type": "string",
  "example": "Pending",
  "description": "The following values may be returned in the field of a status:\n\n* \"Pending\" : Micro entries not yet deposited to customer's account\n* \"Completed\": Micro entries deposited to customer's account\n* \"Verified\": Micro entries got successfully verified\n* \"Rejected\": Micro entries got rejected due to some reason\n* \"Returned\": Micro entries got returned back\n* \"Failed\": Micro entries got failed due to some reason\n* \"Expired\": Micro entries got expired as they remains unverified for\ncertain defined days"
}
string MicroDepositStatusDescription
{
  "type": "string",
  "example": "Micro entries are in pending status",
  "description": "Micro entries status description"
}
object MicroDepositVerification
{
  "type": "object",
  "required": [
    "amounts"
  ],
  "properties": {
    "amounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DecimalNumber"
      },
      "example": [
        0.12,
        0.15
      ],
      "description": "The list of amounts to be verified"
    }
  },
  "description": "A list of amounts"
}
object MicroDepositVerificationError
{
  "type": "object",
  "properties": {
    "status": {
      "$ref": "#/components/schemas/MicroDepositStatus"
    },
    "statusDescription": {
      "$ref": "#/components/schemas/MicroDepositStatusDescription"
    }
  }
}
object MicroEntryVerifyRequestParameter
{
  "type": "object",
  "properties": {
    "webhook": {
      "$ref": "#/components/schemas/Webhook"
    },
    "accountId": {
      "$ref": "#/components/schemas/AccountId"
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "experience": {
      "$ref": "#/components/schemas/Experience"
    },
    "redirectUri": {
      "$ref": "#/components/schemas/RedirectUri"
    },
    "webhookData": {
      "$ref": "#/components/schemas/WebhookData"
    },
    "webhookHeaders": {
      "$ref": "#/components/schemas/WebhookHeaders"
    },
    "webhookContentType": {
      "$ref": "#/components/schemas/WebhookContentType"
    }
  }
}
string MiddleName
{
  "type": "string",
  "example": "L",
  "description": "The middle name of the account holder"
}
object MonthlyIncome
{
  "type": "object",
  "required": [
    "estimatedMonthlyTotalPay"
  ],
  "properties": {
    "estimatedMonthlyBasePay": {
      "type": "number",
      "example": 123.45,
      "description": "Mastercard Open Banking estimated monthly base pay amount for the employment"
    },
    "estimatedMonthlyBonusPay": {
      "type": "number",
      "example": 123.45,
      "description": "Mastercard Open Banking estimated monthly bonus pay amount for the employment"
    },
    "estimatedMonthlyOtherPay": {
      "type": "number",
      "example": 123.45,
      "description": "Mastercard Open Banking estimated monthly other pay amount for the employment"
    },
    "estimatedMonthlyTotalPay": {
      "type": "number",
      "example": 123.45,
      "description": "Sum of all Mastercard Open Banking estimated monthly pay amounts"
    },
    "estimatedMonthlyOvertimePay": {
      "type": "number",
      "example": 123.45,
      "description": "Mastercard Open Banking estimated monthly overtime pay amount for the employment"
    },
    "estimatedMonthlyCommissionPay": {
      "type": "number",
      "example": 123.45,
      "description": "Mastercard Open Banking estimated monthly commission pay amount for the employment"
    }
  },
  "description": "Current estimated monthly pay for the employment.\n\nThis is a mandatory field only for VOIE-payroll report type."
}
boolean MoreResultsAvailable
{
  "type": "boolean",
  "example": true,
  "description": "If the value of `moreAvailable` is \"true\", you can retrieve the next page of results by increasing the value of the start parameter in your next request:\"...&start=6&limit=5\""
}
string Name
{
  "type": "string",
  "example": "Super Checking",
  "description": "The account name from the institution"
}
string NameClassificationType
{
  "type": "string",
  "example": "person",
  "description": "The classification of the account holder:\n* \"person / personal / home\"\n* \"business\"\n* \"other\""
}
object NetMonthly
{
  "type": "object",
  "required": [
    "month",
    "net"
  ],
  "properties": {
    "net": {
      "type": "number",
      "example": 2004.77,
      "description": "Total income during the given month, across all income streams"
    },
    "month": {
      "type": "integer",
      "format": "int64",
      "example": 1522562400,
      "description": "Timestamp for the first day of this month"
    }
  }
}
object NewAddress
{
  "type": "object",
  "properties": {
    "city": {
      "$ref": "#/components/schemas/City"
    },
    "state": {
      "$ref": "#/components/schemas/State"
    },
    "country": {
      "$ref": "#/components/schemas/CountryCode"
    },
    "postalCode": {
      "$ref": "#/components/schemas/ZipCode"
    },
    "addressLine1": {
      "$ref": "#/components/schemas/AddressLine1"
    },
    "addressLine2": {
      "$ref": "#/components/schemas/AddressLine2"
    }
  }
}
object NewBusiness
{
  "type": "object",
  "required": [
    "name",
    "personallyLiable",
    "address",
    "phoneNumber"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "example": "https://www.finicity.com/",
      "maxLength": 2000,
      "minLength": 0,
      "description": "A URL for the business website"
    },
    "name": {
      "type": "string",
      "example": "ABC Tires Inc",
      "maxLength": 150,
      "minLength": 1,
      "description": "The legal name of the business"
    },
    "type": {
      "type": "string",
      "example": "Nonprofit",
      "maxLength": 150,
      "minLength": 0,
      "description": "The business type eg LLC, Corp, S Corp, C Corp, B Corp, Sole Propriertorship, Nonprofit, etc."
    },
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "taxId": {
      "type": "string",
      "example": "A1234561Z",
      "maxLength": 15,
      "minLength": 9,
      "description": "Provide details of the tax id for the business"
    },
    "address": {
      "$ref": "#/components/schemas/NewAddress"
    },
    "phoneNumber": {
      "$ref": "#/components/schemas/PhoneNumberFormat"
    },
    "personallyLiable": {
      "type": "boolean",
      "example": true,
      "description": "Indicates whether a business owner is personally liable for a loan"
    }
  }
}
object NewConsumer
{
  "type": "object",
  "required": [
    "firstName",
    "lastName",
    "address",
    "city",
    "state",
    "zip",
    "phone",
    "ssn",
    "birthday"
  ],
  "properties": {
    "ssn": {
      "$ref": "#/components/schemas/SocialSecurityNumber"
    },
    "zip": {
      "$ref": "#/components/schemas/ZipCode"
    },
    "city": {
      "$ref": "#/components/schemas/City"
    },
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "phone": {
      "$ref": "#/components/schemas/PhoneNumber"
    },
    "state": {
      "$ref": "#/components/schemas/State"
    },
    "suffix": {
      "$ref": "#/components/schemas/Suffix"
    },
    "address": {
      "$ref": "#/components/schemas/Address"
    },
    "birthday": {
      "$ref": "#/components/schemas/Birthday"
    },
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    }
  },
  "description": "A new consumer to be created"
}
object NewCustomer
{
  "type": "object",
  "required": [
    "username"
  ],
  "properties": {
    "email": {
      "$ref": "#/components/schemas/EmailAddress"
    },
    "phone": {
      "$ref": "#/components/schemas/PhoneNumber"
    },
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "username": {
      "$ref": "#/components/schemas/CustomerUsername"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    },
    "applicationId": {
      "$ref": "#/components/schemas/ApplicationId"
    }
  },
  "description": "A new customer to be enrolled"
}
string NewPhoneNumber
{
  "type": "string",
  "example": "8042221111",
  "maxLength": 12,
  "description": "A phone number ([E.164](https://en.wikipedia.org/wiki/E.164) format) minLength: 7"
}
integer NextPaymentDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Mortgage/Loan) Due date for the next payment. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string NoZoneDateTime
{
  "type": "string",
  "example": "2022-04-12T11:51:23",
  "description": "A date-time without time zone"
}
integer NumericAccountId
{
  "type": "integer",
  "format": "int64",
  "example": 5011648377,
  "description": "An account ID represented as a number"
}
integer NumericCustomerId
{
  "type": "integer",
  "format": "int64",
  "example": 1005061234,
  "description": "A customer ID represented as a number. See Add Customer API for how to create a customer ID."
}
integer NumericInstitutionId
{
  "type": "integer",
  "format": "int64",
  "example": 4222,
  "description": "The ID of a financial institution, represented as a number"
}
integer NumericInstitutionLoginId
{
  "type": "integer",
  "format": "int64",
  "example": 1007302745,
  "description": "An institution login ID (from the account record), represented as a number"
}
integer NumericPreAppId
{
  "type": "integer",
  "format": "int64",
  "example": 2581,
  "description": "Identifier to track the application registration from the App Registration and Get App Registration Status APIs, represented as a number"
}
object ObbAccountDetails
{
  "type": "object",
  "required": [
    "id",
    "institution",
    "accountOwner"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/NumericAccountId"
    },
    "name": {
      "type": "string",
      "example": "Super Checking",
      "maxLength": 50,
      "minLength": 0,
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "maxLength": 50,
      "minLength": 0,
      "description": "Account type, e.g. checking/saving"
    },
    "status": {
      "type": "string",
      "example": "active",
      "maxLength": 50,
      "minLength": 0,
      "description": "pending during account discovery, always active following successful account activation"
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "maxLength": 5,
      "minLength": 0,
      "description": "The currency of the account"
    },
    "institution": {
      "$ref": "#/components/schemas/ObbInstitution"
    },
    "accountOwner": {
      "$ref": "#/components/schemas/ObbAccountOwner"
    },
    "currentBalance": {
      "type": "number",
      "example": 2239.22,
      "description": "Current reported balance of the account"
    },
    "institutionLoginId": {
      "$ref": "#/components/schemas/NumericInstitutionLoginId"
    },
    "accountNumberDisplay": {
      "type": "string",
      "example": "8888",
      "maxLength": 50,
      "minLength": 0,
      "description": "The account number from a financial institution in truncated format"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "example": 0,
      "description": "The status of the most recent aggregation attempt. This will not be present until you have run your first aggregation for the account"
    },
    "aggregationAttemptDate": {
      "type": "string",
      "example": "2022-03-30T14:47:19-07:00",
      "maxLength": 25,
      "minLength": 25,
      "description": "A timestamp showing the last aggregation attempt. This will not be present until you have run your first aggregation for the account."
    },
    "aggregationSuccessDate": {
      "type": "string",
      "example": "2022-03-30T14:47:19-07:00",
      "maxLength": 25,
      "minLength": 25,
      "description": "A timestamp showing the last successful aggregation of the account. This will not be present until you have run your first aggregation for the account."
    },
    "realAccountNumberLast4": {
      "type": "integer",
      "example": 5678,
      "description": "The last 4 digits of the ACH account number"
    }
  },
  "description": "Details of the account and financial institution"
}
object ObbAccountOwner
{
  "type": "object",
  "required": [
    "name",
    "address"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Johnny Appleseed",
      "maxLength": 255,
      "minLength": 0,
      "description": "Name of the owner on record for the account"
    },
    "address": {
      "type": "string",
      "example": "123 Main St, Portland, OR 12345",
      "maxLength": 255,
      "minLength": 0,
      "description": "Address of the owner on record for the account"
    }
  },
  "description": "Who is on record as the owner of the account. May be the business name, the business owner name, or otherwise."
}
object ObbAnalyticsReport
{
  "allOf": [
    {
      "$ref": "#/components/schemas/CashFlowAnalyticsReport"
    },
    {
      "$ref": "#/components/schemas/BalanceAnalyticsReport"
    },
    {
      "$ref": "#/components/schemas/PaymentHistoryReport"
    }
  ],
  "description": "Cash Flow Analytics, Balance Analytics, and Payment History report data as JSON"
}
object ObbAnalyticsReportAck
{
  "type": "object",
  "required": [
    "reportId",
    "reportPin",
    "customerId",
    "accountIds",
    "title",
    "createdDate"
  ],
  "properties": {
    "title": {
      "$ref": "#/components/schemas/ReportTitle"
    },
    "reportId": {
      "$ref": "#/components/schemas/ReportId"
    },
    "reportPin": {
      "type": "string",
      "example": "qert",
      "maxLength": 50,
      "minLength": 0,
      "description": "PIN that may be used to access the report"
    },
    "accountIds": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NumericAccountId"
      },
      "description": "List of account IDs included in the report"
    },
    "businessId": {
      "type": "integer",
      "example": 1005061234,
      "description": "Business ID associated with the requested customer"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "createdDate": {
      "type": "string",
      "example": "2023-05-17T06:48:22-07:00",
      "maxLength": 25,
      "minLength": 25,
      "description": "Created date of balance analytics request"
    },
    "requesterName": {
      "type": "string",
      "example": "Mortgage ABC LLC",
      "maxLength": 255,
      "minLength": 0,
      "description": "Name of requester"
    }
  },
  "description": "Response given when analytics were generated successfully, providing the caller with a report ID which can be used to retrieve the report as JSON or a PDF."
}
object ObbAverageWeeklyBalance
{
  "type": "object",
  "required": [
    "week",
    "fromDate",
    "toDate",
    "amount"
  ],
  "properties": {
    "week": {
      "type": "integer",
      "example": 1,
      "description": "Week number, where the first week of each year begins on January 1st and ends on January 7th. May be in the range [1, 53]"
    },
    "amount": {
      "type": "number",
      "example": 679.07,
      "description": "Average daily ending balance during the week"
    },
    "toDate": {
      "type": "string",
      "example": "2020-01-07",
      "maxLength": 10,
      "minLength": 10,
      "description": "End date of the week"
    },
    "fromDate": {
      "type": "string",
      "example": "2020-01-01",
      "maxLength": 10,
      "minLength": 10,
      "description": "Begin date of the week"
    }
  }
}
object ObbCurrentReportRequestDetails
{
  "type": "object",
  "required": [
    "reportRequestDate",
    "requestedDaysForReport",
    "requestedReportBeginDate"
  ],
  "properties": {
    "reportEndDate": {
      "type": "string",
      "example": "2022-03-30",
      "maxLength": 10,
      "minLength": 10,
      "description": "Date to which the requested data is available"
    },
    "reportBeginDate": {
      "type": "string",
      "example": "2022-03-01",
      "maxLength": 10,
      "minLength": 10,
      "description": "Date from when the requested data is available"
    },
    "reportRequestDate": {
      "type": "string",
      "example": "2022-03-30T14:47:19-07:00",
      "maxLength": 25,
      "minLength": 25,
      "description": "The date and time the report was requested"
    },
    "requestedDaysForReport": {
      "type": "integer",
      "example": 90,
      "description": "Number of days requested for the report"
    },
    "requestedReportBeginDate": {
      "type": "string",
      "example": "2022-01-01",
      "maxLength": 10,
      "minLength": 10,
      "description": "Date the report would have begun on if enough data was available for which the partner requested"
    }
  },
  "description": "Requested attributes of the report"
}
object ObbDailyBalance
{
  "type": "object",
  "required": [
    "date",
    "endingBalance",
    "dayOfWeek"
  ],
  "properties": {
    "date": {
      "type": "string",
      "example": "2021-10-11",
      "maxLength": 10,
      "minLength": 10,
      "description": "Date of balance information"
    },
    "dayOfWeek": {
      "type": "string",
      "example": "Monday",
      "maxLength": 9,
      "minLength": 6,
      "description": "Day of the week for which balance information available"
    },
    "endingBalance": {
      "type": "number",
      "example": 21527.3,
      "description": "End of day balance"
    }
  }
}
object ObbDataAvailability
{
  "type": "object",
  "required": [
    "historicAvailableDays",
    "historicDataAvailability"
  ],
  "properties": {
    "historicAvailableDays": {
      "type": "integer",
      "example": 30,
      "description": "Days for which transaction details are available"
    },
    "historicDataAvailability": {
      "type": "string",
      "example": "Data is available from 2022-03-01 to 2022-03-30",
      "maxLength": 255,
      "minLength": 0,
      "description": "Description of historic data availability"
    },
    "historicAvailabilityEndDate": {
      "type": "string",
      "example": "2022-03-30",
      "maxLength": 10,
      "minLength": 10,
      "description": "End date for data availability"
    },
    "historicAvailabilityBeginDate": {
      "type": "string",
      "example": "2022-03-01",
      "maxLength": 10,
      "minLength": 10,
      "description": "Begin date for data availability"
    }
  },
  "description": "Availability of historical data at the time the report was requested"
}
object ObbDateRangeAndAmount
{
  "type": "object",
  "required": [
    "period",
    "periodBeginDate",
    "periodEndDate"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 890.99,
      "description": "Metric value for the given period"
    },
    "period": {
      "type": "string",
      "example": "last30to1",
      "maxLength": 12,
      "minLength": 8,
      "description": "Period represented by this metric"
    },
    "periodEndDate": {
      "type": "string",
      "example": "2022-03-30",
      "maxLength": 10,
      "minLength": 10,
      "description": "End date of the period being reported"
    },
    "periodBeginDate": {
      "type": "string",
      "example": "2022-03-01",
      "maxLength": 10,
      "minLength": 10,
      "description": "Begin date of the period being reported"
    }
  }
}
object ObbDateRangeAndCount
{
  "type": "object",
  "required": [
    "period",
    "periodBeginDate",
    "periodEndDate",
    "count"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 5,
      "description": "Count of occurrences for the given period"
    },
    "period": {
      "type": "string",
      "example": "last30to1",
      "maxLength": 12,
      "minLength": 8,
      "description": "Period represented by this metric"
    },
    "periodEndDate": {
      "type": "string",
      "example": "2022-03-30",
      "maxLength": 10,
      "minLength": 10,
      "description": "End date of the period being reported"
    },
    "periodBeginDate": {
      "type": "string",
      "example": "2022-03-01",
      "maxLength": 10,
      "minLength": 10,
      "description": "Begin date of the period being reported"
    }
  }
}
object ObbErrorMessage
{
  "type": "object",
  "required": [
    "errorCode",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "example": "Customer Id does not exist",
      "maxLength": 255,
      "minLength": 0,
      "description": "Detailed reason about the source of the error"
    },
    "errorCode": {
      "type": "integer",
      "example": 404,
      "description": "Error code"
    }
  },
  "description": "OBB Error response message"
}
object ObbInstitution
{
  "type": "object",
  "required": [
    "institutionId"
  ],
  "properties": {
    "institutionId": {
      "type": "integer",
      "example": 12345,
      "description": "ID of the financial institution"
    },
    "institutionName": {
      "type": "string",
      "example": "Wells Fargo",
      "maxLength": 255,
      "minLength": 0,
      "description": "Name of the financial institution"
    },
    "institutionIconUrl": {
      "type": "string",
      "example": "https://prod-carpintero-branding.s3.us-west-2.amazonaws.com/101732/icon.svg",
      "maxLength": 255,
      "minLength": 0,
      "description": "URL of the institution logo icon for reporting"
    },
    "institutionPrimaryColor": {
      "type": "string",
      "example": "#1B3E4A",
      "maxLength": 7,
      "minLength": 7,
      "description": "Primary branding color of the institution, in hex color format"
    }
  },
  "description": "Details of the financial institution this account is home to"
}
object ObbNumWeeksAverageBalanceIncreasing
{
  "type": "object",
  "required": [
    "historicNumberOfWeeksAverageBalanceIncreasing",
    "historicNumberOfWeeksWithDataAvailable",
    "historicAverageWeeklyBalances"
  ],
  "properties": {
    "historicAverageWeeklyBalances": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ObbAverageWeeklyBalance"
      },
      "description": "Average weekly balances over the known history"
    },
    "historicNumberOfWeeksWithDataAvailable": {
      "type": "integer",
      "example": 4,
      "description": "Number of weeks during the history in which data was available"
    },
    "historicNumberOfWeeksAverageBalanceIncreasing": {
      "type": "integer",
      "example": 3,
      "description": "Number of weeks during the known history where the average balance of the account increased week over week"
    }
  },
  "description": "Report of average account balance week over week and count of weeks where the average balance increased"
}
object ObbReportHeader
{
  "type": "object",
  "required": [
    "reportId",
    "reportDate"
  ],
  "properties": {
    "reportId": {
      "type": "string",
      "example": "8ff8b4b2-706f-45c3-8d66-857bdb516214",
      "maxLength": 255,
      "minLength": 0,
      "description": "Generated unique report ID"
    },
    "reportDate": {
      "type": "string",
      "example": "2022-03-16T21:28:38-07:00",
      "maxLength": 25,
      "minLength": 25,
      "description": "Date the report was requested"
    },
    "businessZip": {
      "type": "string",
      "example": "12345",
      "maxLength": 255,
      "minLength": 0,
      "description": "Business address zip"
    },
    "businessCity": {
      "type": "string",
      "example": "Portland",
      "maxLength": 255,
      "minLength": 0,
      "description": "Business address city"
    },
    "businessName": {
      "type": "string",
      "example": "B&G Construction",
      "maxLength": 255,
      "minLength": 0,
      "description": "Name of the business"
    },
    "businessState": {
      "type": "string",
      "example": "OR",
      "maxLength": 255,
      "minLength": 0,
      "description": "Business address state"
    },
    "businessAddress": {
      "type": "string",
      "example": "123 Main St",
      "maxLength": 255,
      "minLength": 0,
      "description": "Business address line 1"
    },
    "referenceNumber": {
      "type": "string",
      "example": "32asdfaasd0823",
      "maxLength": 255,
      "minLength": 0,
      "description": "Partner-provided reference number"
    }
  },
  "description": "Details about the business the report is generated for and metadata about the report"
}
object ObbWeekOfYear
{
  "type": "object",
  "required": [
    "week",
    "fromDate",
    "toDate"
  ],
  "properties": {
    "week": {
      "type": "integer",
      "example": 1,
      "description": "Week number, where the first week of each year begins on January 1st and ends on January 7th. May be in the range [1, 53]"
    },
    "toDate": {
      "type": "string",
      "example": "2020-01-07",
      "maxLength": 10,
      "minLength": 10,
      "description": "End date of the week"
    },
    "fromDate": {
      "type": "string",
      "example": "2020-01-01",
      "maxLength": 10,
      "minLength": 10,
      "description": "Begin date of the week"
    }
  }
}
integer OpenDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Checking/Savings/CD/MoneyMarket) Date when account was opened. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer OriginalMaturityDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Mortgage/Loan) Original date of loan maturity. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string OriginalPayrollReportId
{
  "type": "string",
  "example": "u4hstnnak45g-voiepayroll",
  "description": "The report ID of the original payroll report for refresh use cases. If used, only the employment records from the original report will be included in the refreshed report response."
}
integer OutOfSchoolDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Student Loan) The date the borrower graduated or dropped below half-time enrollment in school. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object PartnerCredentials
{
  "type": "object",
  "required": [
    "partnerId",
    "partnerSecret"
  ],
  "properties": {
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "partnerSecret": {
      "type": "string",
      "example": "aqJ5Ic4SEVx2IgDQ6oR4",
      "description": "Your Partner Secret displayed in the [Developer Dashboard](https://developer.mastercard.com/account/log-in)"
    }
  }
}
object PartnerCredentialsWithNewSecret
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/PartnerCredentials"
    },
    {
      "type": "object",
      "properties": {
        "newPartnerSecret": {
          "type": "string",
          "example": "OrU7tjiA3tIspCgb85xV",
          "description": "A new value for the Partner Secret"
        }
      }
    }
  ],
  "required": [
    "partnerId",
    "partnerSecret",
    "newPartnerSecret"
  ]
}
string PartnerId
{
  "type": "string",
  "example": "1234583871234",
  "description": "Your Partner ID displayed in the [Developer Dashboard](https://developer.mastercard.com/account/log-in)"
}
string PartnerName
{
  "type": "string",
  "example": "Finicity Test API",
  "description": "Name of a Finicity partner"
}
string PayFrequency
{
  "type": "string",
  "example": "Weekly",
  "description": "The current pay frequency or how often a regular pay check is:\n\n* `Daily` \n\n* `Weekly` \n\n* `Bi-Weekly` \n\n* `Semi-Monthly` \n\n* `Monthly` \n\n* `Quarterly` \n\n* `Semi-Annual` \n\n* `Annual` \n\n* `Every 2.6 wks` \n\n* `Every 4 wks` \n\n* `Every 5.2 wks` \n\n* `Other`\n"
}
object PayStat
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "regular 1",
      "description": "The normalized category of the earnings with a number appended. The number is the will be the iterating number of the type's occurrence starting at one."
    },
    "type": {
      "$ref": "#/components/schemas/PayStatEarningsCategorizationType"
    },
    "amountYTD": {
      "type": "number",
      "example": 18000,
      "description": "The amount for the earning line being paid out to the employee for the current pay year."
    },
    "description": {
      "type": "string",
      "example": "regular income",
      "description": "The earnings line's pay type description"
    },
    "amountCurrent": {
      "type": "number",
      "example": 6000,
      "description": "The amount for the earning line paid out to the employee for the specified pay period."
    }
  }
}
string PayStatEarningsCategorizationType
{
  "type": "string",
  "description": "The categorization based on the earning line's description. Possible values:\n* \"bereavement\"\n\n* \"bonus\"\n\n* \"commission\"\n\n* \"holiday\"\n\n* \"jury duty\"\n\n* \"overtime\"\n\n* \"pension\"\n\n* \"pto\"\n\n* \"regular\"\n\n* \"sick\"\n\n* \"tips\"\n\n* \"unknown\"\n\n* \"vacation\"\n\n* \"reimbursement\"\n\n* \"stock\"\n\n* \"benefit\""
}
object PayStatement
{
  "type": "object",
  "required": [
    "label",
    "statement"
  ],
  "properties": {
    "label": {
      "type": "string",
      "example": "lastPayPeriod",
      "description": "The label to be associated with the pay statement. This label will allow the paystub to go through data extraction.\n* `lastPayPeriod`: default label that should be used for the VOIE - Paystub products\n* `lastPayPeriodMinusOne`: the second most recent pay statement\n* `lastPayPeriodMinusTwo`: the third most recent pay statement\n* `previousYearLastPayPeriod` Last pay statement of the previous calendar year\n* `previousYear2LastPayPeriod`: last pay statement of the calendar year 2 years prior\n* `earliestPayPeriod`: the earliest pay statement"
    },
    "statement": {
      "type": "string",
      "example": "VGhpcyBtdXN0IGJlIGFuIGltYWdl",
      "description": "A Base64 encoded pay statement file. Finicity supports PDF, JPG, or PNG files."
    }
  },
  "description": "A pay statement document and pay statement label"
}
object PayStatementData
{
  "type": "object",
  "required": [
    "assetIds"
  ],
  "properties": {
    "assetIds": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AssetId"
      },
      "description": "A list of pay statement asset IDs"
    },
    "extractEarnings": {
      "$ref": "#/components/schemas/ExtractEarnings"
    },
    "extractDeductions": {
      "$ref": "#/components/schemas/ExtractDeductions"
    },
    "extractDirectDeposit": {
      "$ref": "#/components/schemas/ExtractDirectDeposit"
    }
  },
  "description": "Data to be included within the pay statement report"
}
object PayStatementForVoie
{
  "type": "object",
  "required": [
    "billable",
    "assetId",
    "employer",
    "employee",
    "payStat",
    "monthlyIncome",
    "institutions"
  ],
  "properties": {
    "assetId": {
      "type": "string",
      "example": "6f8fb0a0-e882-4f57-b672-cf53f1397581",
      "description": "The asset ID of the stored pay statement"
    },
    "endDate": {
      "type": "integer",
      "format": "int64",
      "example": 1558722600,
      "description": "The end of the pay period"
    },
    "payDate": {
      "type": "integer",
      "format": "int64",
      "example": 1559241000,
      "description": "The listed pay date for the pay statement"
    },
    "payStat": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PayStat"
      },
      "description": "Information pertaining to the earnings on the pay statement"
    },
    "billable": {
      "type": "boolean",
      "example": true,
      "description": "This will display true if the pay statement is billable. If a pay statement has been digitized previously, this will display as false as it will not be billable."
    },
    "employee": {
      "$ref": "#/components/schemas/Employee"
    },
    "employer": {
      "$ref": "#/components/schemas/Employer"
    },
    "errorCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "Error code for the asset"
    },
    "netPayYTD": {
      "type": "number",
      "example": 36000,
      "description": "The total accumulation of pay after deductions for the employee for the current pay year"
    },
    "payPeriod": {
      "type": "string",
      "example": "LastPayPeriod",
      "description": "The pay period of the pay statement"
    },
    "startDate": {
      "type": "integer",
      "format": "int64",
      "example": 1557513000,
      "description": "The beginning of the pay period"
    },
    "grossPayYTD": {
      "type": "number",
      "example": 72600,
      "description": "The total accumulation of pay before deductions for the employee for the current pay year"
    },
    "errorMessage": {
      "type": "string",
      "example": "Some error message",
      "description": "Error message for the asset"
    },
    "institutions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [],
      "description": "Not populated for the voieWithStatement style of paystub report. For the VOIE - Paystub (with TXVerify) reports this would include details of the financial institution accounts and income streams with matching transactions to the pay statement."
    },
    "netPayCurrent": {
      "type": "number",
      "example": 1802.22,
      "description": "The total pay after deductions for the employee for the current pay period"
    },
    "directDeposits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DirectDeposit"
      },
      "description": "Information pertaining to the direct deposits on the pay statement"
    },
    "grossPayCurrent": {
      "type": "number",
      "example": 24200,
      "description": "The total pay before deductions for the employee for the current pay period"
    },
    "payrollProvider": {
      "type": "string",
      "example": "Finicity",
      "description": "The payroll provider extracted from the pay statement"
    }
  }
}
object PayStatementReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "assetIds": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/AssetId"
          }
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "reportStyle": {
          "$ref": "#/components/schemas/ReportStyle"
        },
        "payStatements": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/VOIEPayStatement"
          },
          "description": "Extracted pay statement details"
        },
        "numberOfBillableAssets": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "Total number of billable pay statements included in the report"
        }
      }
    }
  ],
  "description": "A Pay Statement report"
}
object PayStatementReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/PayStatementReportConstraints"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A Pay Statement report being generated"
}
object PayStatementReportConstraints
{
  "type": "object",
  "required": [
    "paystatementReport"
  ],
  "properties": {
    "paystatementReport": {
      "$ref": "#/components/schemas/PayStatementData"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    }
  }
}
integer PayStatementsFromDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "Limits the pay statement history in the VOIE - Payroll report income record. Pay statements are only included if the payDate of the statement is equal to or greater than the start date requested. Date should be in Unix epoch time (in seconds). See: Handling Epoch Dates and Times."
}
integer PaymentDueDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Credit Card/Line Of Credit) Due date for the next payment. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object PaymentHistoryAccountSummary
{
  "type": "object",
  "required": [
    "accountNumberDisplay",
    "financialInstitution",
    "institutionIcon",
    "currency",
    "status",
    "accountName",
    "accountOwner",
    "accountType",
    "beginningBalance",
    "averageMonthlyBalance",
    "currentBalance",
    "beginDate",
    "endDate",
    "totalNonSufficientFunds",
    "daysSinceNonsufficientFunds"
  ],
  "properties": {
    "status": {
      "$ref": "#/components/schemas/AccountStatus"
    },
    "endDate": {
      "type": "string",
      "example": "2023-06-01",
      "description": "End date of account"
    },
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "beginDate": {
      "type": "string",
      "example": "2023-06-01",
      "description": "Begin date of account"
    },
    "accountName": {
      "type": "string",
      "example": "My 401k",
      "description": "The account name from the institution"
    },
    "accountType": {
      "$ref": "#/components/schemas/AccountType"
    },
    "accountOwner": {
      "type": "object",
      "required": [
        "name",
        "address"
      ],
      "properties": {
        "zip": {
          "$ref": "#/components/schemas/ZipCode"
        },
        "city": {
          "$ref": "#/components/schemas/City"
        },
        "name": {
          "$ref": "#/components/schemas/AccountOwnerName"
        },
        "state": {
          "$ref": "#/components/schemas/State"
        },
        "address": {
          "$ref": "#/components/schemas/Address"
        }
      },
      "description": "The account owner information"
    },
    "currentBalance": {
      "type": "number",
      "example": 123.45,
      "description": "Current balance of account"
    },
    "institutionIcon": {
      "type": "string",
      "example": "https://my-sample-app.com/12345/some-icon.jpg",
      "description": "URL of institution icon"
    },
    "beginningBalance": {
      "type": "number",
      "example": 123.45,
      "description": "Beginning balance of account"
    },
    "accountNumberDisplay": {
      "type": "string",
      "example": "2222",
      "description": "Last four digits of the account"
    },
    "financialInstitution": {
      "type": "string",
      "example": "FinBank",
      "description": "Name of the account's institution"
    },
    "averageMonthlyBalance": {
      "type": "number",
      "example": 123.45,
      "description": "Monthly average balance of account"
    },
    "totalNonsufficientFunds": {
      "type": "number",
      "example": 123.45,
      "description": "Total of NSF transactions in this account"
    },
    "daysSinceNonsufficientFunds": {
      "type": "integer",
      "example": 3,
      "description": "Days since the latest NSF transaction for this account"
    }
  },
  "description": "Account-level summary of transactions"
}
object PaymentHistoryAnalytics
{
  "properties": {
    "status": {
      "type": "string",
      "example": "success",
      "description": "Report status"
    },
    "riskScore": {
      "type": "number",
      "example": 82.45,
      "description": "Calculated risk score"
    },
    "accountSummaries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentHistoryAccountSummary"
      },
      "description": "Account-level summary of transactions"
    },
    "transactionHistory": {
      "type": "integer",
      "example": 12,
      "description": "Months of transactions"
    },
    "transactionsSummary": {
      "$ref": "#/components/schemas/PaymentHistoryTransactionsSummary"
    },
    "customerSummaryByMonths": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentHistoryCustomerMonthlySummary"
      },
      "description": "Customer-level summary of transactions per month"
    }
  },
  "description": "Payment History computed analytics"
}
object PaymentHistoryCustomerMonthlySummary
{
  "type": "object",
  "required": [
    "month",
    "averageBalance",
    "closingBalance",
    "openingBalance",
    "totalDeposits",
    "totalWithdrawals",
    "nonSufficientFunds",
    "insurancePayments",
    "taxPayments",
    "recurringExpensePayments",
    "missedRecurringExpensePayments",
    "recurringLoanPayments",
    "missedRecurringLoanPayments"
  ],
  "properties": {
    "month": {
      "type": "string",
      "example": "2023-06-01",
      "description": "Date of the month"
    },
    "taxPayments": {
      "type": "number",
      "example": 123.45,
      "description": "Total of tax payment transactions for the month"
    },
    "totalDeposits": {
      "type": "number",
      "example": 123.45,
      "description": "Total of deposit transactions for the month"
    },
    "averageBalance": {
      "type": "number",
      "example": 123.45,
      "description": "Average balance for the month"
    },
    "closingBalance": {
      "type": "number",
      "example": 123.45,
      "description": "Closing balance for the month"
    },
    "openingBalance": {
      "type": "number",
      "example": 123.45,
      "description": "Opening balance for the month"
    },
    "totalWithdrawals": {
      "type": "number",
      "example": 123.45,
      "description": "Total of withdrawal transactions for the month"
    },
    "insurancePayments": {
      "type": "number",
      "example": 123.45,
      "description": "Total of insurance payment transactions for the month"
    },
    "nonSufficientFunds": {
      "type": "number",
      "example": 3,
      "description": "Total of NSF transactions for the month"
    },
    "recurringLoanPayments": {
      "type": "number",
      "example": 543.21,
      "description": "Total of recurring loan payment transactions for the month"
    },
    "recurringExpensePayments": {
      "type": "number",
      "example": 543.21,
      "description": "Total of recurring expense payment transactions for the month"
    },
    "missedRecurringLoanPayments": {
      "type": "number",
      "example": 123.45,
      "description": "Total of missed recurring loan payment transactions for the month"
    },
    "missedRecurringExpensePayments": {
      "type": "number",
      "example": 123.45,
      "description": "Total of missed recurring expense payment transactions for the month"
    }
  },
  "description": "Customer-level summary of transactions in a month"
}
object PaymentHistoryReport
{
  "type": "object",
  "required": [
    "customerId",
    "title",
    "reportHeader"
  ],
  "properties": {
    "title": {
      "$ref": "#/components/schemas/ReportTitle"
    },
    "analytics": {
      "$ref": "#/components/schemas/PaymentHistoryAnalytics"
    },
    "accountIds": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NumericAccountId"
      },
      "description": "List of account IDs included in the report"
    },
    "businessId": {
      "type": "integer",
      "example": 4444,
      "description": "Business ID"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "reportHeader": {
      "$ref": "#/components/schemas/ObbReportHeader"
    },
    "requesterName": {
      "type": "string",
      "example": "Mortgage ABC LLC",
      "maxLength": 255,
      "minLength": 0,
      "description": "Name of requester"
    }
  },
  "description": "Payment history report data as JSON",
  "x-konfig-properties": {
    "reportHeader": {
      "description": "Customer and report metadata"
    }
  }
}
object PaymentHistoryTransactionsSummary
{
  "type": "object",
  "required": [
    "totalNonSufficientFunds",
    "averageMonthlyNonSufficientFunds",
    "totalDeposits",
    "averageMonthlyDeposits",
    "totalWithdrawals",
    "averageMonthlyWithdrawals",
    "beginDate",
    "endDate"
  ],
  "properties": {
    "endDate": {
      "type": "string",
      "description": "ISO-8601 date of latest transaction"
    },
    "beginDate": {
      "type": "string",
      "description": "ISO-8601 date of earliest transaction"
    },
    "totalDeposits": {
      "type": "number",
      "description": "Total of deposit transactions"
    },
    "totalWithdrawals": {
      "type": "number",
      "description": "Total of withdrawals transactions"
    },
    "averageMonthlyDeposits": {
      "type": "number",
      "description": "Monthly average of deposit transactions"
    },
    "totalNonSufficientFunds": {
      "type": "number",
      "description": "Total of NSF transactions"
    },
    "averageMonthlyWithdrawals": {
      "type": "number",
      "description": "Monthly average of withdrawal transactions"
    },
    "averageMonthlyNonSufficientFunds": {
      "type": "number",
      "description": "Monthly average of NSF transactions"
    }
  },
  "description": "Top-level summary of transactions"
}
object PaymentInstruction
{
  "type": "object",
  "required": [
    "accountNumber",
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "example": "ach",
      "description": "The type of payment instruction:\n1. ACH: when payment instruction type is ACH (Automated Clearing House)\n2. RTP: when payment instruction type is RTP (Real-Time Payments)"
    },
    "descriptors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Descriptor"
      },
      "description": "List of descriptors"
    },
    "accountNumber": {
      "type": "string",
      "example": "124344454",
      "description": "The account number from the institution"
    },
    "transferInEnabled": {
      "type": "boolean",
      "example": true,
      "description": "Indicates whether transfer to this account is enabled or not. Applicable for \"RTP\" type only."
    },
    "transferOutEnabled": {
      "type": "boolean",
      "example": true,
      "description": "Indicates whether transfer from this account is enabled or not. Applicable for \"RTP\" type only."
    }
  }
}
object PaymentInstructions
{
  "type": "object",
  "properties": {
    "paymentInstruction": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentInstruction"
      },
      "description": "List of payment instructions"
    }
  },
  "description": "A list of payment instructions"
}
integer PayoffAmountDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Mortgage/Loan) Date of final payment. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string PayrollAccountId
{
  "type": "string",
  "example": "018b8f10-fdf8-0ef7-ded5-34a17c34d86f",
  "description": "The payroll accountId associated with the payroll account (employer or payroll provider)."
}
object PayrollData
{
  "type": "object",
  "required": [
    "ssn",
    "dob"
  ],
  "properties": {
    "dob": {
      "$ref": "#/components/schemas/ConsumerDateOfBirth"
    },
    "ssn": {
      "$ref": "#/components/schemas/SocialSecurityNumberNoHyphens"
    },
    "reportId": {
      "$ref": "#/components/schemas/OriginalPayrollReportId"
    }
  }
}
object PayrollDataOut
{
  "type": "object",
  "properties": {
    "reportId": {
      "$ref": "#/components/schemas/ReportId"
    },
    "employmentIds": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmploymentId"
      },
      "description": "An array of employmentIds"
    },
    "payrollAccountIds": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PayrollAccountId"
      },
      "description": "An array of payrollAccountIds"
    },
    "payrollDataRetrievalId": {
      "type": "string",
      "example": "hahvhe2k0000",
      "description": "An ID to identify the data retrieved from the payroll providers for the report."
    }
  }
}
object PayrollEmployeeAddress
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "example": "99999",
      "description": "Employee zip code as stated by the employer in the payroll system"
    },
    "city": {
      "type": "string",
      "example": "City",
      "description": "Employee city as stated by the employer in the payroll system"
    },
    "state": {
      "type": "string",
      "example": "TX",
      "description": "Employee state as stated by the employer in the payroll system"
    },
    "address1": {
      "type": "string",
      "example": "Address 1",
      "description": "Employee address as stated by the employer in the payroll system"
    }
  }
}
object PayrollEmployeeRecord
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "John Doe Smith",
      "description": "Full name of the employee: first, middle (if stated), and last name"
    },
    "address": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PayrollEmployeeAddress"
      },
      "description": "Array of addresses"
    },
    "givenName": {
      "type": "string",
      "example": "John",
      "description": "First name of employee"
    },
    "familyName": {
      "type": "string",
      "example": "Smith",
      "description": "Last name of employee"
    },
    "middleName": {
      "type": "string",
      "example": "Doe",
      "description": "Middle name of employee, if stated"
    }
  }
}
object PayrollEmployerAddress
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "example": "99999",
      "description": "Employer zip code as stated by the employer in the payroll system"
    },
    "city": {
      "type": "string",
      "example": "City",
      "description": "Employer city as stated by the employer in the payroll system"
    },
    "state": {
      "type": "string",
      "example": "TX",
      "description": "Employer state as stated by the employer in the payroll system"
    },
    "address1": {
      "type": "string",
      "example": "Address 1",
      "description": "Employer address as stated by the employer in the payroll system"
    }
  }
}
object PayrollEmploymentHistoryVOE
{
  "type": "object",
  "required": [
    "asOfDate",
    "employerName",
    "payrollSource",
    "employee",
    "employment",
    "income"
  ],
  "properties": {
    "income": {
      "$ref": "#/components/schemas/PayrollVOEIncomeRecord"
    },
    "asOfDate": {
      "$ref": "#/components/schemas/AsOfDate"
    },
    "employee": {
      "$ref": "#/components/schemas/PayrollEmployeeRecord"
    },
    "employment": {
      "$ref": "#/components/schemas/PayrollEmploymentRecord"
    },
    "employerName": {
      "$ref": "#/components/schemas/EmployerName"
    },
    "payrollSource": {
      "type": "string",
      "example": "finPayroll",
      "description": "The name of the payroll source where the data was retrieved"
    }
  }
}
object PayrollEmploymentHistoryVOIE
{
  "type": "object",
  "required": [
    "asOfDate",
    "employerName",
    "payrollSource",
    "employee",
    "employment",
    "income"
  ],
  "properties": {
    "income": {
      "$ref": "#/components/schemas/PayrollVOIEIncomeRecord"
    },
    "asOfDate": {
      "$ref": "#/components/schemas/AsOfDate"
    },
    "employee": {
      "$ref": "#/components/schemas/PayrollEmployeeRecord"
    },
    "employment": {
      "$ref": "#/components/schemas/PayrollEmploymentRecord"
    },
    "employerName": {
      "$ref": "#/components/schemas/EmployerName"
    },
    "employmentId": {
      "$ref": "#/components/schemas/EmploymentId"
    },
    "payrollSource": {
      "type": "string",
      "example": "finPayroll",
      "description": "The name of the payroll source where the data was retrieved"
    }
  }
}
object PayrollEmploymentRecord
{
  "type": "object",
  "required": [
    "employerName",
    "employmentStatusCode",
    "employmentStatusName",
    "workLevelStatus"
  ],
  "properties": {
    "employerName": {
      "$ref": "#/components/schemas/EmployerName"
    },
    "latestPayDate": {
      "type": "integer",
      "format": "int64",
      "example": 1596175200,
      "description": "The most recent pay date from an employer"
    },
    "legalEntityId": {
      "type": "string",
      "example": "752760000",
      "description": "Employer identification number (EIN)"
    },
    "positionTitle": {
      "type": "string",
      "example": "Shift Supervisor",
      "description": "Employee job title"
    },
    "workLevelCode": {
      "type": "string",
      "example": "FT",
      "description": "The abbreviate code for the employment level names (workLevelName) that we receive from the employer"
    },
    "workLevelName": {
      "type": "string",
      "example": "Full Time-Regular",
      "description": "The employment level name is whatever we receive from the employer, such as full time, part time, temp, contractor, and more"
    },
    "latestHireDate": {
      "type": "integer",
      "format": "int64",
      "example": 1527832800,
      "description": "If an employee leaves the company and returns later, then the employer states the latest hire date at the company"
    },
    "employerAddress": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PayrollEmployerAddress"
      },
      "description": "Array of addresses"
    },
    "workLevelStatus": {
      "type": "string",
      "example": "Full Time",
      "description": "The categorized work level status. Enumerations are:\n\n* `Temporary`\n\n* `Seasonal`\n\n* `Retired`\n\n* `Student`\n\n* `Full Time`\n\n* `Part Time`\n\n* `Unspecified`\n\nThis is a new field, currently enabled only for testing reports. It will be added for all reports in August 2021.\n"
    },
    "daysSinceLastPay": {
      "type": "integer",
      "format": "int32",
      "example": 10,
      "description": "The number of days since an employee was last paid"
    },
    "originalHireDate": {
      "type": "integer",
      "format": "int64",
      "example": 1527832800,
      "description": "The original hired date of an employee at the company"
    },
    "positionDuration": {
      "type": "string",
      "example": "P1Y6M0D",
      "description": "The length of time an employee has been employed at their current or latest position for this employment in ISO 8601 format (eg P1Y6M0D)"
    },
    "employmentEndDate": {
      "type": "integer",
      "format": "int64",
      "example": 1527832800,
      "description": "The date an employee ended their employment at the company"
    },
    "employmentDuration": {
      "type": "string",
      "example": "P1Y6M0D",
      "description": "The length of time an employee has been employed with that employer in ISO 8601 format (e.g. P1Y6M0D)"
    },
    "employmentStatusCode": {
      "type": "string",
      "example": "A",
      "description": "'Status codes: `A` - Active, `NLE` - No Longer Employed, `L` - Leave, `O` - Other', `I` - Inactive, `U` - Unknown'"
    },
    "employmentStatusName": {
      "type": "string",
      "example": "Active",
      "description": "'Status name: `Active`, `No Longer Employed`, `Leave` or `Other`, `Inactive`, or `Unknown`'"
    },
    "latestPayPeriodEndDate": {
      "type": "integer",
      "format": "int64",
      "example": 1596175201,
      "description": "The most recent pay period’s end date."
    },
    "derivedEmploymentStatus": {
      "type": "boolean",
      "example": true,
      "description": "Describes the employment status - it will be true if it is not directly stated by the employer, and false otherwise"
    },
    "numberPayCadenceWithoutPay": {
      "type": "integer",
      "format": "int32",
      "example": 1,
      "description": "The number of pay cadences an employee has not been paid; determined by the pay frequency"
    }
  }
}
object PayrollReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/PayrollReportConstraintsOut"
        },
        "reportStyle": {
          "$ref": "#/components/schemas/ReportStyle"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A Payroll report being generated"
}
object PayrollReportConstraints
{
  "type": "object",
  "required": [
    "payrollData"
  ],
  "properties": {
    "purpose": {
      "$ref": "#/components/schemas/PurposeCode"
    },
    "payrollData": {
      "$ref": "#/components/schemas/PayrollData"
    },
    "marketSegment": {
      "$ref": "#/components/schemas/MarketSegment"
    },
    "excludeEmpInfo": {
      "$ref": "#/components/schemas/ExcludeEmpInfo"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "payStatementsFromDate": {
      "$ref": "#/components/schemas/PayStatementsFromDate"
    }
  }
}
object PayrollReportConstraintsOut
{
  "type": "object",
  "required": [
    "payrollData"
  ],
  "properties": {
    "payrollData": {
      "$ref": "#/components/schemas/PayrollDataOut"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "payStatementsFromDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  }
}
object PayrollVOEIncomeRecord
{
  "type": "object",
  "properties": {
    "payFrequency": {
      "$ref": "#/components/schemas/PayFrequency"
    }
  }
}
object PayrollVOIEIncomeRecord
{
  "type": "object",
  "properties": {
    "payType": {
      "type": "string",
      "example": "Daily",
      "description": "The current pay type:\n\n* `Salary`\n\n* `Hourly`\n\n* `Daily`\n"
    },
    "basePayRate": {
      "type": "number",
      "example": 1234.56,
      "description": "The current base or regular pay rate. Please use in conjunction with the `basePayRateUnit` field."
    },
    "annualIncome": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AnnualIncome"
      },
      "description": "The annual pay for the current year, through prior year 2 (as available)\n\nThis is a mandatory field only for VOIE-payroll report type."
    },
    "payFrequency": {
      "$ref": "#/components/schemas/PayFrequency"
    },
    "monthlyIncome": {
      "$ref": "#/components/schemas/MonthlyIncome"
    },
    "basePayRateUnit": {
      "type": "string",
      "example": "Annual",
      "description": "Unit for the base pay rate:\n\n* `Hourly`\n\n* `Daily`\n\n* `Weekly`\n\n* `Bi-Weekly`\n\n* `Semi-Monthly`\n\n* `Monthly`\n\n* `Quarterly`\n\n* `Semi-Annual`\n\n* `Annual`\n\n* `Every 2.6 wks`\n\n* `Every 5.2 wks`\n\n* `Other`\n"
    },
    "directPayStatements": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DirectPayStatements"
      },
      "description": "An array of payment histories for each available paycheck"
    },
    "oldestPayStatementAvailable": {
      "type": "string",
      "example": 1527832900,
      "description": "The date of the oldest direct pay statement available from the payroll source, as measured by the oldest `payDate` from all the pay statements delivered."
    }
  }
}
object PaystubMonthlyIncomeRecord
{
  "type": "object",
  "properties": {
    "estimatedMonthlyBasePay": {
      "type": "number",
      "example": 2000,
      "description": "The estimated monthly base pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyBonusPay": {
      "type": "number",
      "example": 20,
      "description": "The estimated monthly bonus pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyOvertimePay": {
      "type": "number",
      "example": 50,
      "description": "The estimated monthly overtime pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyCommissionPay": {
      "type": "number",
      "example": 50,
      "description": "The estimated commission bonus pay amount for the employment from the paystub, calculated by Finicity"
    }
  }
}
object PaystubTxVerifyMonthlyIncomeRecord
{
  "type": "object",
  "properties": {
    "estimatedMonthlyBasePay": {
      "type": "number",
      "example": 2000,
      "description": "The estimated monthly base pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyBonusPay": {
      "type": "number",
      "example": 20,
      "description": "The estimated monthly bonus pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyOtherPay": {
      "type": "number",
      "example": 150,
      "description": "The estimated monthly other pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyTotalPay": {
      "type": "number",
      "example": 2120,
      "description": "The estimated monthly total pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyOvertimePay": {
      "type": "number",
      "example": 50,
      "description": "The estimated monthly overtime pay amount for the employment from the paystub, calculated by Finicity"
    },
    "estimatedMonthlyCommissionPay": {
      "type": "number",
      "example": 50,
      "description": "The estimated commission bonus pay amount for the employment from the paystub, calculated by Finicity"
    }
  }
}
integer PeriodEndDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "End date of period. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer PeriodStartDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Checking/Savings/CD/MoneyMarket) Start date of period. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string PhoneCarrier
{
  "type": "string",
  "example": "Vodafone UK ltd.",
  "description": "The company that provides voice and/or data services for the phone number. Carriers are returned at the MVNO level."
}
string PhoneCountry
{
  "type": "string",
  "example": "61",
  "description": "Country calling code of the phone number as defined by ITU-T E.123 and E.164 international standards (max length 3)\"."
}
string PhoneCountryCode
{
  "type": "string",
  "example": "UK",
  "description": "The ISO-3166 alpha-2 country code associated with the phone number."
}
number PhoneEmailFirstSeenDays
{
  "type": "number",
  "example": 54,
  "description": "Count of days since the combination of phone and email was first observed in Ekata's Identity Network. If that combination has not been observed before, `phoneEmailFirstSeenDays` will be 0."
}
number PhoneLastSeenDays
{
  "type": "number",
  "example": 42,
  "description": "Count of days since the phone was last observed in Ekata's Identity Network. If the phone has not been observed before, `phoneLastSeenDays` will be 0."
}
string PhoneLineType
{
  "type": "string",
  "example": "mobile",
  "description": "The line type of the phone number.\n* landline - traditional wired phone line.\n* fixed-voip - VoIP-based fixed line phones.\n* mobile - wireless phone line.\n* voicemail - voicemail-only service.\n* toll-free - callee pays for call.\n* premium - caller pays a premium for the call-e.g., 976 area code.\n* non-fixed-voip - Skype, for example * other - anything that does not match the previous categories."
}
string PhoneNumber
{
  "type": "string",
  "example": "1-801-984-4200",
  "description": "A phone number (max length 15)."
}
object PhoneNumberFormat
{
  "type": "object",
  "properties": {
    "phoneNo": {
      "$ref": "#/components/schemas/NewPhoneNumber"
    },
    "countryCode": {
      "$ref": "#/components/schemas/CountryCodeNumber"
    }
  }
}
string PhoneToAddress
{
  "type": "string",
  "example": "match",
  "description": "The match status between the input phone and the queried entity.\n* match - Phone location matches input address line 1, address line 2, city, state, and postal code. \n\n* postal-match - Phone location postal code matches input address postal code. \n\n* zip4-match - Phone location postal code zip+4 matches input address postal code zip+4. \n\n* city-state-match - Phone location city and state matches input address city and state. \n* metro-match - Phone location is in the same metro area as input address. \n\n* country-match - Phone location country matches input address country. \n\n* no-match - Phone location does not match input address."
}
string PhoneToName
{
  "type": "string",
  "example": "match",
  "description": "The match status between the input name and the queried entity.\n\n* not-found\n\n* match\n\n* no-match"
}
boolean PhoneValid
{
  "type": "boolean",
  "example": true,
  "description": "True if the phone number is valid."
}
object PortfolioConsumer
{
  "type": "object",
  "required": [
    "id",
    "firstName",
    "lastName",
    "customerId",
    "ssn",
    "birthday"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "ssn": {
      "$ref": "#/components/schemas/SocialSecurityNumber"
    },
    "suffix": {
      "$ref": "#/components/schemas/Suffix"
    },
    "birthday": {
      "$ref": "#/components/schemas/Birthday"
    },
    "lastName": {
      "$ref": "#/components/schemas/LastName"
    },
    "firstName": {
      "$ref": "#/components/schemas/FirstName"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    }
  }
}
string PortfolioId
{
  "type": "string",
  "example": "y4zsgccj4xpw-6-port",
  "description": "A unique identifier that will be consistent across all reports created for the same customer"
}
object PortfolioReport
{
  "type": "object",
  "required": [
    "id",
    "portfolioId",
    "type",
    "status",
    "createdDate"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/ReportId"
    },
    "type": {
      "$ref": "#/components/schemas/ReportType"
    },
    "status": {
      "$ref": "#/components/schemas/ReportStatus"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "portfolioId": {
      "$ref": "#/components/schemas/PortfolioId"
    }
  }
}
object PortfolioSummary
{
  "type": "object",
  "required": [
    "portfolioId",
    "reports"
  ],
  "properties": {
    "reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PortfolioReport"
      },
      "description": "A list of reports in the portfolio"
    },
    "portfolioId": {
      "$ref": "#/components/schemas/PortfolioId"
    }
  }
}
object PortfolioWithConsumerSummary
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PortfolioSummary"
    },
    {
      "type": "object",
      "properties": {
        "consumer": {
          "$ref": "#/components/schemas/PortfolioConsumer"
        }
      }
    }
  ],
  "required": [
    "portfolioId",
    "consumer",
    "reports"
  ]
}
string PreAppId
{
  "type": "string",
  "example": "2581",
  "description": "Identifier to track the application registration from the App Registration and Get App Registration Status APIs"
}
object PrequalificationReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "example": 230,
          "description": "The number of days covered by the report"
        },
        "assets": {
          "$ref": "#/components/schemas/PrequalificationReportAssetSummary"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 180 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records, including information about the individual accounts in this report"
        },
        "consolidatedAvailableBalance": {
          "type": "number",
          "example": 1929.57,
          "description": "The sum of available balance for all of the accounts included in the report"
        }
      }
    }
  ],
  "description": "A Prequalification report"
}
object PrequalificationReportAccount
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1000023996,
      "description": "The ID of the account"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "One of the values from account types"
    },
    "asset": {
      "$ref": "#/components/schemas/PrequalificationReportAssetSummary"
    },
    "number": {
      "type": "string",
      "example": "1111",
      "description": "The account number from the institution (all digits except the last four are obfuscated)"
    },
    "balance": {
      "type": "number",
      "example": 501.24,
      "description": "The cleared balance of the account as-of `balanceDate`"
    },
    "details": {
      "$ref": "#/components/schemas/AccountDetails"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "balanceDate": {
      "type": "integer",
      "format": "int64",
      "example": 1588350276,
      "description": "A timestamp of the balance"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "a list of transaction records"
    },
    "availableBalance": {
      "type": "number",
      "example": 1000,
      "description": "Available balance"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The status of the most recent aggregation attempt"
    },
    "averageMonthlyBalance": {
      "type": "number",
      "example": 501.02,
      "description": "The average monthly balance of the account"
    },
    "totNumberInsufficientFundsFeeDebitTxAccount": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The count for the total number of insufficient funds transactions, based on the `fromDate` of the report"
    },
    "totNumberInsufficientFundsFeeDebitTxOver6MonthsAccount": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The total number of  insufficient funds fees for the account over six months"
    },
    "totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount": {
      "type": "integer",
      "format": "int64",
      "example": 120,
      "description": "The total number of days since the most recent insufficient funds fee for the account"
    }
  }
}
object PrequalificationReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/PrequalificationReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A Prequalification report being generated"
}
object PrequalificationReportAssetSummary
{
  "type": "object",
  "required": [
    "currentBalance",
    "twoMonthAverage",
    "beginningBalance"
  ],
  "properties": {
    "type": {
      "type": "string",
      "example": "checking",
      "description": "The asset type: \"checking\", \"savings\", \"moneyMarket\", \"cd\", \"investment\""
    },
    "currentBalance": {
      "type": "number",
      "example": 1000,
      "description": "The current balance of the account"
    },
    "sixMonthAverage": {
      "type": "number",
      "example": -7616.01,
      "description": "The six month average daily balance of the account"
    },
    "twoMonthAverage": {
      "type": "number",
      "example": -1865.96,
      "description": "The two month average daily balance of the account"
    },
    "availableBalance": {
      "type": "number",
      "example": 1000,
      "description": "The available balance for the account"
    },
    "beginningBalance": {
      "type": "number",
      "example": -17795.6,
      "description": "The beginning balance of the account per the time period of the report"
    }
  }
}
object PrequalificationReportConstraints
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    }
  }
}
object PrequalificationReportConstraintsOut
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    }
  }
}
string PurposeCode
{
  "type": "string",
  "example": "31",
  "description": "FCRA required 2-digit Permissible Purpose Code, specifying the reason for retrieving this report."
}
object Receiver
{
  "type": "object",
  "required": [
    "routingNumber",
    "accountNumber",
    "accountType",
    "name"
  ],
  "properties": {
    "memo": {
      "type": "string",
      "example": "micro deposit transfer",
      "description": "Transaction memo to be displayed for transactions"
    },
    "name": {
      "type": "string",
      "example": "Bob Smith",
      "description": "Name of the customer"
    },
    "accountType": {
      "type": "string",
      "example": "checking",
      "description": "The list of supported account types.\n* \"checking\": Standard checking\n* \"savings\": Standard savings"
    },
    "accountNumber": {
      "type": "string",
      "example": "123456",
      "description": "Micro entries receiving account number of bank"
    },
    "routingNumber": {
      "$ref": "#/components/schemas/RoutingNumber"
    }
  }
}
string RedirectUri
{
  "type": "string",
  "example": "https://www.finicity.com/connect/",
  "description": "The URL that customers will be redirected to after completing Finicity Connect. Required unless Connect is embedded inside our application (iframe)."
}
object RegisteredApplication
{
  "type": "object",
  "required": [
    "preAppId",
    "status"
  ],
  "properties": {
    "status": {
      "$ref": "#/components/schemas/AppRegistrationStatus"
    },
    "preAppId": {
      "$ref": "#/components/schemas/NumericPreAppId"
    }
  }
}
integer RepaymentPlanEndDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Student Loan) The end date of the current repayment plan. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer RepaymentPlanStartDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Student Loan) The start date of the current repayment plan. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object Report
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/AFBalanceAnalyticsReport"
    },
    {
      "$ref": "#/components/schemas/AFCashFlowAnalyticsReport"
    },
    {
      "$ref": "#/components/schemas/CashFlowReport"
    },
    {
      "$ref": "#/components/schemas/PrequalificationReport"
    },
    {
      "$ref": "#/components/schemas/PayStatementReport"
    },
    {
      "$ref": "#/components/schemas/StatementReport"
    },
    {
      "$ref": "#/components/schemas/TransactionsReport"
    },
    {
      "$ref": "#/components/schemas/VOAReport"
    },
    {
      "$ref": "#/components/schemas/VOAWithIncomeReport"
    },
    {
      "$ref": "#/components/schemas/VOEPayrollReport"
    },
    {
      "$ref": "#/components/schemas/VOETransactionsReport"
    },
    {
      "$ref": "#/components/schemas/VOIReport"
    },
    {
      "$ref": "#/components/schemas/VOIEPayrollReport"
    },
    {
      "$ref": "#/components/schemas/VOIEPaystubReport"
    },
    {
      "$ref": "#/components/schemas/VOIEPaystubWithTXVerifyReport"
    }
  ],
  "required": [
    "id",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "type",
    "status"
  ],
  "description": "A report"
}
array ReportAccountIds
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AccountId"
  },
  "example": [
    "5011648377",
    "5011648378",
    "5011648379"
  ],
  "description": "An array of account IDs to be included in the report (all accounts will be included if not set)"
}
string ReportAccountIdsString
{
  "type": "string",
  "example": "5011648377 5011648378 5011648379",
  "description": "A whitespace-separated list of account IDs to be included in the report (all accounts will be included if not set)"
}
string ReportAccountOwnerAddress
{
  "type": "string",
  "example": "7195 BELMONT ST. PARLIN, NJ 08859",
  "description": "The mailing address of the account owner(s). If the owner information is not available, this field will not appear in the report. If the account has multiple owners then the address of the primary owner will be listed."
}
string ReportAccountOwnerName
{
  "type": "string",
  "example": "PATRICK PURCHASER|LORRAINE PURCHASER",
  "description": "The name(s) of the account owner(s). If the owner information is not available, this field will not appear in the report. If the account has multiple owners then all owners will be listed separated by |."
}
object ReportAccountPosition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "number",
      "example": 637054,
      "description": "The id of the investment position"
    },
    "units": {
      "type": "number",
      "example": 5,
      "description": "The number of units of the holding"
    },
    "symbol": {
      "type": "string",
      "example": "MCD",
      "description": "The investment position’s market ticker symbol"
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "What currency the account operates in"
    },
    "marketValue": {
      "type": "number",
      "example": 1403.55,
      "description": "Market value of an investment position at the time of retrieval"
    },
    "currentPrice": {
      "type": "number",
      "example": 280.71,
      "description": "The current price of the investment holding"
    },
    "securityName": {
      "type": "string",
      "example": "Common Stock",
      "description": "The security name for the investment holding"
    },
    "securityType": {
      "type": "number",
      "example": null,
      "description": "Type of security of the investment position"
    }
  }
}
integer ReportCreatedDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/). Note: If the report is retrieved on a day other than the day it was generated, on the header of the PDF version of the report there will be a \"Retrieved Date\" populated."
}
object ReportCustomField
{
  "type": "object",
  "properties": {
    "label": {
      "type": "string",
      "example": "loanID",
      "description": "The name of the custom field"
    },
    "shown": {
      "type": "boolean",
      "example": true,
      "description": "If the custom field will show on the PDF or not"
    },
    "value": {
      "type": "string",
      "example": "123456",
      "description": "The value of the custom field"
    }
  }
}
array ReportCustomFields
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ReportCustomField"
  },
  "description": "The `reportCustomFields` parameter is used when experiences are associated with a credit decisioning report.\n\nDesignate up to 5 custom fields that you'd like associated with the report when it's generated. Every custom field consists of three variables: `label`, `value`, and `shown`. The `shown` variable is \"true\" or \"false\".\n* \"true\": (default) display the custom field in the PDF report\n* \"false\": don't display the custom field in the PDF report\n\nFor an experience that generates multiple reports, the `reportCustomFields` parameter gets passed to all reports.\n\nAll custom fields display in the Reseller Billing API."
}
integer ReportEndDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "The `postedDate` of the latest transaction analyzed for the report. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string ReportId
{
  "type": "string",
  "example": "u4hstnnak45g",
  "description": "A report ID"
}
object ReportIncomeEstimate
{
  "type": "object",
  "required": [
    "netAnnual",
    "projectedNetAnnual",
    "estimatedGrossAnnual",
    "projectedGrossAnnual"
  ],
  "properties": {
    "netAnnual": {
      "type": "number",
      "example": 1000.12,
      "description": "Sum of all values in `netMonthlyIncome` over the previous 12 months"
    },
    "projectedNetAnnual": {
      "type": "number",
      "example": 1500.23,
      "description": "Projected net income over the next 12 months, across all income streams, based on `netAnnualIncome`"
    },
    "estimatedGrossAnnual": {
      "type": "number",
      "example": 2000.12,
      "description": "Before-tax gross annual income (estimated from `netAnnual`) across all income stream in the past 12 months"
    },
    "projectedGrossAnnual": {
      "type": "number",
      "example": 2500.23,
      "description": "Projected gross income over the next 12 months, across all active income streams, based on `projectedNetAnnual`"
    }
  }
}
object ReportIncomeStreamSummary
{
  "type": "object",
  "required": [
    "confidenceType",
    "netMonthly",
    "incomeEstimate"
  ],
  "properties": {
    "netMonthly": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NetMonthly"
      },
      "description": "A list of net monthly records. One instance for each complete calendar month in the report."
    },
    "confidenceType": {
      "$ref": "#/components/schemas/EstimateInclusion"
    },
    "incomeEstimate": {
      "$ref": "#/components/schemas/ReportIncomeEstimate"
    }
  }
}
object ReportInstitution
{
  "type": "object",
  "required": [
    "id",
    "name",
    "urlHomeApp"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/NumericInstitutionId"
    },
    "name": {
      "type": "string",
      "example": "FinBank Profiles",
      "description": "Finicity institution name"
    },
    "accounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportInstitutionAccount"
      },
      "description": "A list of account records"
    },
    "urlHomeApp": {
      "type": "string",
      "example": "http://www.finbank.com",
      "description": "The URL of the Financial Institution"
    }
  }
}
object ReportInstitutionAccount
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/AnalyticsReportsAccount"
    },
    {
      "$ref": "#/components/schemas/CashFlowReportAccount"
    },
    {
      "$ref": "#/components/schemas/PrequalificationReportAccount"
    },
    {
      "$ref": "#/components/schemas/TransactionsReportAccount"
    },
    {
      "$ref": "#/components/schemas/VOAReportAccount"
    },
    {
      "$ref": "#/components/schemas/VOAWithIncomeReportAccount"
    },
    {
      "$ref": "#/components/schemas/VOETransactionsReportAccount"
    },
    {
      "$ref": "#/components/schemas/VOIReportAccount"
    },
    {
      "$ref": "#/components/schemas/VOIETXVerifyReportAccount"
    }
  ],
  "description": "An account record"
}
string ReportPin
{
  "type": "string",
  "example": "2398jk",
  "description": "A unique key returned per report for consumer Portal"
}
string ReportRequestId
{
  "type": "string",
  "example": "cjqm4wtdcn",
  "description": "Finicity indicator to track all activity associated with this report"
}
integer ReportStartDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "The `postedDate` of the earliest transaction analyzed for the report. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string ReportStatus
{
  "type": "string",
  "example": "inProgress",
  "description": "A report generation status. Possible values:\n\n* `inProgress`\n\n* `success`\n\n* `failure`\n"
}
string ReportStyle
{
  "type": "string",
  "example": "credentialedPayroll",
  "description": "A report style. Possible values are directAPIPayroll, credentialedPayroll, paystatement, voieWithInterview, voieWithStatement, voieWithReport"
}
object ReportSummaries
{
  "type": "object",
  "required": [
    "reports"
  ],
  "properties": {
    "reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportSummary"
      },
      "description": "Data pertaining to each report"
    }
  }
}
object ReportSummary
{
  "required": [
    "id",
    "requestId",
    "requesterName",
    "createdDate",
    "type",
    "status"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/ReportId"
    },
    "type": {
      "$ref": "#/components/schemas/ReportType"
    },
    "status": {
      "$ref": "#/components/schemas/ReportStatus"
    },
    "requestId": {
      "$ref": "#/components/schemas/ReportRequestId"
    },
    "consumerId": {
      "$ref": "#/components/schemas/ConsumerId"
    },
    "consumerSsn": {
      "$ref": "#/components/schemas/SocialSecurityNumberLastDigits"
    },
    "createdDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "requesterName": {
      "$ref": "#/components/schemas/PartnerName"
    }
  }
}
string ReportTitle
{
  "type": "string",
  "example": "Finicity Asset Ready Report (CRA)",
  "description": "Title of the report"
}
object ReportTransaction
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ReportTransactionBase1"
    },
    {
      "$ref": "#/components/schemas/ReportTransactionBase2"
    }
  ]
}
object ReportTransactionBase1
{
  "type": "object",
  "required": [
    "id",
    "postedDate",
    "description"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/TransactionId"
    },
    "memo": {
      "type": "string",
      "example": "Some St Somewhere City State",
      "description": "The memo field of the transaction, as provided by the institution. The institution must provide either a description, a memo, or both. It is recommended to concatenate the two fields into a single value."
    },
    "amount": {
      "type": "number",
      "example": 100,
      "description": "The total amount of the transaction. Transactions for deposits are positive values, withdrawals and debits are negative values."
    },
    "postedDate": {
      "type": "integer",
      "format": "int64",
      "example": 1571313600,
      "description": "A timestamp showing when the transaction was posted or cleared by the institution"
    },
    "description": {
      "type": "string",
      "example": "ATM CHECK DEPOSIT mm/dd",
      "description": "The description of the transaction, as provided by the institution (often known as `payee`). In the event that this field is left blank by the institution, Finicity will pass a value of \"No description provided by institution\". All other values are provided by the institution."
    }
  }
}
object ReportTransactionBase2
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "example": "debit",
      "description": "One of the values from transaction types"
    },
    "symbol": {
      "type": "string",
      "example": "DAL",
      "description": "Investment symbol (VOA only)"
    },
    "category": {
      "type": "string",
      "example": "Income",
      "description": "One of the values from Categories (assigned based on the payee name)"
    },
    "commission": {
      "type": "number",
      "example": 0,
      "description": "A commission amount"
    },
    "securityType": {
      "type": "string",
      "example": "Stock",
      "description": "The type of investment security (VOA only)"
    },
    "normalizedPayee": {
      "type": "string",
      "example": "T-Mobile",
      "description": "A normalized payee, derived from the transaction's `description` and `memo` fields"
    },
    "institutionTransactionId": {
      "type": "string",
      "example": "0000000000",
      "description": "The unique identifier given by the FI for each transaction"
    }
  }
}
object ReportTransactionNewTxBased
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ReportTransactionBase1"
    },
    {
      "type": "object",
      "properties": {
        "investmentTransactionType": {
          "type": "string",
          "example": "dividend",
          "description": "Keywords in the description and memo fields were used to translate investment transactions into these types\n\n* `cancel`\n\n* `purchaseToClose`\n\n* `purchaseToCover`\n\n* `contribution`\n\n* `optionExercise`\n\n* `optionExpiration`\n\n* `fee`\n\n* `soldToClose`\n\n* `soldToOpen`\n\n* `split`\n\n* `transfer`\n\n* `returnOfCapital`\n\n* `income`\n\n* `purchased`\n\n* `sold`\n\n* `dividendReinvest`\n\n* `dividend`\n\n* `reinvestOfIncome`\n\n* `interest`\n\n* `deposit`\n\n* `otherInfo`\n"
        }
      }
    },
    {
      "$ref": "#/components/schemas/ReportTransactionBase2"
    }
  ]
}
string ReportType
{
  "type": "string",
  "example": "voi",
  "description": "A report type. Possible values:\n\n* `voi` \n\n* `voa` \n\n* `voaHistory` \n\n* `history` \n\n* `voieTxVerify` \n\n* `voieWithReport` \n\n* `voieWithInterview` \n\n* `paystatement` \n\n* `preQualVoa` \n\n* `assetSummary` \n\n* `voie` \n\n* `transactions` \n\n* `statement` \n\n* `voiePayroll` \n\n* `voeTransactions` \n\n* `voePayroll` \n\n* `cfrp` \n\n* `cfrb`\n\n* `barpcra`\n\n* `barpnoncra`\n\n* `barbcra`\n\n* `barbftc`\n\n* `barbnoncra`\n"
}
string RoutingNumber
{
  "type": "string",
  "example": "123456789",
  "description": "Routing number of receiving bank"
}
integer Rssd
{
  "type": "integer",
  "format": "int64",
  "example": 490535,
  "description": "The RSSD ID is a unique identifier assigned to financial institutions by the Federal Reserve. While the length of the RSSD ID varies by institution, it cannot exceed 10 numerical digits."
}
string SecurityIdType
{
  "type": "string",
  "example": "CUSIP",
  "description": "The security type. This field is related to the `securityId` field. Possible values:\n* \"CUSIP\"\n\n* \"ISIN\"\n\n* \"SEDOL\"\n\n* \"SICC\"\n\n* \"VALOR\"\n\n* \"WKN\""
}
boolean ShowNsf
{
  "type": "boolean",
  "example": false,
  "description": "Include the non-sufficient funds (NSF) summary JSON and the NSF summary PDF section in the report. Data included:\n* Account\n\n* Total number of NSF funds\n\n* Days since the most recent NFS funds fee"
}
boolean SingleUseUrl
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The URL link expires after a Connect session successfully completes.\n\nNote: when the `singleUseUrl` and the `experience` parameters are passed in the same call, the `singleUseUrl` value overrides the `singleUseUrl` value configured in the `experience` parameter."
}
string SocialSecurityNumber
{
  "type": "string",
  "example": "999-99-9999",
  "description": "A full SSN with or without hyphens"
}
string SocialSecurityNumberLastDigits
{
  "type": "string",
  "example": "9999",
  "description": "Last 4 digits of a SSN"
}
string SocialSecurityNumberNoHyphens
{
  "type": "string",
  "example": "999999999",
  "description": "The consumer's full SSN without hyphens"
}
string State
{
  "type": "string",
  "example": "UT",
  "description": "State"
}
object StateAttribute
{
  "type": "object",
  "required": [
    "attributeName",
    "reportedByTimePeriods"
  ],
  "properties": {
    "attributeName": {
      "type": "string",
      "example": "NET_CASH_FLOW",
      "description": "Name of Attribute as mentioned in Data Dictionary"
    },
    "reportedByTimePeriods": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StateTimeInterval"
      },
      "description": "List of state values grouped by specified Time Interval"
    }
  },
  "description": "An attribute which represents some state over time, such as a balance or a\ncalculation, including derivatives, ratios, or projections. Reports the\nstate over the requested time interval(s)."
}
object StatePeriod
{
  "type": "object",
  "required": [
    "startDate",
    "endDate",
    "count",
    "beginningValue",
    "endingValue"
  ],
  "properties": {
    "max": {
      "type": "number",
      "example": 60.21,
      "description": "Maximum amount during the period"
    },
    "min": {
      "type": "number",
      "example": 30.22,
      "description": "Minimum amount during the period"
    },
    "sum": {
      "type": "number",
      "example": 90.43,
      "description": "Sum of amounts during the period"
    },
    "mean": {
      "type": "number",
      "example": 42.22,
      "description": "Mean of amounts during the period"
    },
    "count": {
      "type": "integer",
      "example": 2,
      "description": "Count of data points during the period"
    },
    "median": {
      "type": "number",
      "example": 42.22,
      "description": "Median of amounts during the period"
    },
    "endDate": {
      "type": "string",
      "format": "date",
      "example": "2023-01-01",
      "description": "End date for the period being reported"
    },
    "startDate": {
      "type": "string",
      "format": "date",
      "example": "2022-12-01",
      "description": "Start date for the period being reported"
    },
    "endingValue": {
      "type": "number",
      "example": 60.21,
      "description": "Value on the last date in the period"
    },
    "beginningValue": {
      "type": "number",
      "example": 60.21,
      "description": "Value on the first date in the period"
    },
    "standardDeviation": {
      "type": "number",
      "example": 14.995,
      "description": "Standard deviation of amounts during the period"
    }
  },
  "description": "Statistics for one period in the report of a StateAttribute."
}
object StateTimeInterval
{
  "type": "object",
  "required": [
    "timeIntervalType",
    "periods"
  ],
  "properties": {
    "periods": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StatePeriod"
      },
      "description": "Periods of the specified time interval type, describing the attribute calculations"
    },
    "timeIntervalType": {
      "$ref": "#/components/schemas/TimeIntervalTypeEnum"
    }
  },
  "description": "For a StateAttribute, describes a time interval type being reported\nand a list of periods generated according to that type."
}
object StatementData
{
  "type": "object",
  "required": [
    "accountId"
  ],
  "properties": {
    "accountId": {
      "$ref": "#/components/schemas/NumericAccountId"
    },
    "statementIndex": {
      "type": "integer",
      "format": "int32",
      "default": 1,
      "example": 1,
      "maximum": 24,
      "description": "Index of the statement to include in the report. Request statements from 1-24. By default, 1 is the most recent statement. Increase the index value to count back (by month) and retrieve its most recent statement."
    }
  }
}
integer StatementEndDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Credit Card/Line Of Credit) End date of statement period. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
object StatementReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAck"
    },
    {
      "type": "object",
      "properties": {
        "assetId": {
          "$ref": "#/components/schemas/AssetId"
        }
      }
    }
  ],
  "description": "A Statement report"
}
object StatementReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/StatementReportConstraints"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A Statement report being generated"
}
object StatementReportConstraints
{
  "type": "object",
  "required": [
    "statementReportData"
  ],
  "properties": {
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "statementReportData": {
      "$ref": "#/components/schemas/StatementData"
    }
  }
}
integer StatementStartDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "(Credit Card/Line Of Credit) Start date of statement period. A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string StatementType
{
  "type": "string",
  "example": "taxStatement",
  "description": "Account statement types"
}
object StreamModel
{
  "type": "object",
  "required": [
    "id",
    "payor",
    "payee",
    "cadence",
    "recency",
    "transactionIds"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "1",
      "description": "Stream Id assigned to identified Stream"
    },
    "payee": {
      "type": "string",
      "example": "Walmart",
      "description": "The party in the transaction that is receiving the funds"
    },
    "payor": {
      "type": "string",
      "example": "Elizabeth Johnson",
      "description": "The party in the transaction that is sending the funds"
    },
    "cadence": {
      "type": "integer",
      "example": 30,
      "description": "Number of days that occur between each transaction in the stream"
    },
    "recency": {
      "type": "integer",
      "example": 2,
      "description": "Number of days since the last transaction occurred in the stream"
    },
    "transactionIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "6010290887",
        "6010290914"
      ],
      "description": "List of Transaction IDs that comprise the stream"
    }
  },
  "description": "Describes a history of repeated transactions between the same parties."
}
string StringUnixDate
{
  "type": "string",
  "format": "int64",
  "example": "1607450357",
  "description": "A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
boolean StudentLoanDataCertification
{
  "type": "boolean",
  "example": true,
  "description": "\"true\": The institution is certified for the Student Loan Data product\n\n\"false\": The institution is decertified for the Student Loan Data product"
}
integer SubscriptionId
{
  "type": "integer",
  "format": "int64",
  "example": 17554874,
  "description": "ID of a TxPush subscription"
}
object SubscriptionRecord
{
  "type": "object",
  "required": [
    "id",
    "accountId",
    "type",
    "callbackUrl",
    "signingKey"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/SubscriptionId"
    },
    "type": {
      "$ref": "#/components/schemas/SubscriptionType"
    },
    "accountId": {
      "$ref": "#/components/schemas/NumericAccountId"
    },
    "signingKey": {
      "type": "string",
      "example": "zg4U0v1IvTzFEHIXzJMxPHnfUwWZAMVpXrUuNuL9IvZI0QzkDdwp39IAKuNOFxOVqCOgHLMS1Zpe4ZL40NX83aJkqI6v0Ez5B7BLBtvr7Ag11kPH3uG1taTeOV0CTyI4LOg7ohSHn0DqaRu2aBq26KI90nYe0CecTCzzhu4yMXL43JV8YfydAexNdkzfg8tY44MlhBPUh2neHW2EFTT2ja4s4Ul10JgID03un8WBSrIm2adHw3QYJB4jk4k1e",
      "description": "Signing key for events"
    },
    "callbackUrl": {
      "$ref": "#/components/schemas/TxPushCallbackUrl"
    }
  },
  "description": "TxPush subscription details"
}
string SubscriptionType
{
  "type": "string",
  "example": "account",
  "description": "A TxPush subscription type (\"account\" or \"transaction\")"
}
string Suffix
{
  "type": "string",
  "example": "PhD",
  "description": "A generational or academic suffix"
}
string TaxId
{
  "type": "string",
  "example": "123-45-7890",
  "description": "Country specific tax ID associated with the customer. \n* **United Stated**: Social Security number (SSN) or Taxpayer Identification Number (TIN)\n\n  * Format: 123-45-7890\n\n* **Canada**: Social Insurance Number (SIM) or Numero d'assurance sociale (NAS)\n\n  * Format: 123-456-789"
}
object TestTxPushTransaction
{
  "type": "object",
  "required": [
    "amount",
    "description",
    "transactionDate"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": -4.25,
      "description": "The amount of the transaction"
    },
    "status": {
      "type": "string",
      "default": "active",
      "example": "pending",
      "description": "\"active\" or \"pending\" (optional)"
    },
    "postedDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "description": {
      "type": "string",
      "example": "a testing transaction description",
      "description": "The description of the transaction"
    },
    "transactionDate": {
      "$ref": "#/components/schemas/UnixDate"
    }
  },
  "description": "A fake transaction for TxPush testing"
}
object ThirdPartyAccessKeyData
{
  "type": "object",
  "required": [
    "customerId",
    "partnerId",
    "thirdPartyPartnerId",
    "products"
  ],
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ThirdPartyAccessProduct"
      }
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId"
    },
    "provenance": {
      "$ref": "#/components/schemas/ThirdPartyAccessProvenance"
    },
    "thirdPartyPartnerId": {
      "$ref": "#/components/schemas/PartnerId"
    }
  },
  "description": "An object representing the third party access key request\n\n* `customerId`: This is recipient's customer identifier\n* `partnerId`: This is recipient partner identifier\n* `thirdPartyPartnerId`: This is requester's partner identifier\n* `products`: Array of values representing the Mastercard Open Banking APIs for\nwhich access needs to be generated."
}
object ThirdPartyAccessKeyReceiptData
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ThirdPartyAccessReceiptData"
      }
    }
  },
  "description": "An object representing the third party access key receipt\n\n  * `customerId`: This is recipient's customerId represented as a\n  pseudo identifier. \n  * `accountId`: This is the value provided to recipient\n  represented as a pseudo identifier for the accountId."
}
object ThirdPartyAccessPeriod
{
  "type": "object",
  "required": [
    "type",
    "startTime",
    "endTime"
  ],
  "properties": {
    "type": {
      "$ref": "#/components/schemas/ThirdPartyAccessPeriodTypes"
    },
    "endTime": {
      "$ref": "#/components/schemas/DateTimeWithZone"
    },
    "startTime": {
      "$ref": "#/components/schemas/DateTimeWithZone"
    }
  },
  "description": "Object which describes access validity"
}
string ThirdPartyAccessPeriodTypes
{
  "type": "string",
  "example": "timeframe",
  "description": "Multiple types will be supported. Presently below types are supported.\n* \"timeframe\": Specifies a timeframe bounded by a startTime and endTime.  \n  The startTime is the time at which the access was granted and the\naccess key generated, \n  and the endTime is the time at which the access was revoked. Times\nare represented in ISO 8601 format(\"2022-03-10T06:06:20Z\")"
}
object ThirdPartyAccessProduct
{
  "type": "object",
  "required": [
    "product",
    "accountId",
    "accessPeriod"
  ],
  "properties": {
    "payorId": {
      "type": "string",
      "example": "2445581559892",
      "description": "The Finicity Partner ID who should be billed when the Requester requests data from Finicity. If no value specified, then the Recipient will be billed."
    },
    "product": {
      "$ref": "#/components/schemas/ThirdPartyAccessProductTypes"
    },
    "maxCalls": {
      "type": "integer",
      "example": 200,
      "description": "Max number of calls to the consented product (consented API)"
    },
    "accountId": {
      "$ref": "#/components/schemas/AccountId"
    },
    "accessPeriod": {
      "$ref": "#/components/schemas/ThirdPartyAccessPeriod"
    }
  },
  "description": "Product for which access token to be generated"
}
string ThirdPartyAccessProductTypes
{
  "type": "string",
  "example": "moneyTransferDetails",
  "description": "Third party access token can be generated for the following product types:\n\n\n* \"moneyTransferDetails\": Retrieve account details for money transfer \n* \"availableBalance\": Retrieves the latest cached available and cleared\n    account balances for an account. \n* \"availableBalanceLive\": Retrieves the available and cleared account\nbalances live from the financial institution \n* \"accountOwner\": Retrieves names and addresses of the account owner\nfrom a financial institution. \n* \"paymentIndicator\": Get the Payment Success Indicator response,\nscoring the likelihood of payment settlement \n* \"paymentFeedback\": Create feedback loop for Payment Success Indicator\n(PSI) and/or Payment Routing Optimizer (PRO) \n* \"paymentRouting\": Product recommends the best rail to use as well as\nthe best time to initiate the payment"
}
object ThirdPartyAccessProof
{
  "type": "object",
  "properties": {
    "keyId": {
      "type": "string",
      "example": "867-530-900",
      "description": "The Finicity key identifier is used to sign the access key"
    },
    "signature": {
      "type": "string",
      "example": "JTdCyTIyY3VzdG9tZXJJZCUyMiUzQSUyMjU0NTQ1MTQwMDI5NTU2MjkzNDMlMjIlMkMlMjJwYXJ0bmVySWQlMjIlM0ElMjIyNDQ1NTgzOTIyNTM2JTIyJTJDJTIycHJvZHVjdHMlMjIlM0ElNUIlN0IlMjJhY2Nlc3NQZXJpb2QlMjIlM0ElN0IlMjJlbmRUaW1lJTIyJTNBJTIyMjAyMy0xMS0yOVQwNiUzQTA2JTNBMjBaJTIyJTJDJTIyc3RhcnRUaW1lJTIyJTNBJTIyMjAyMi0xMS0yOVQwNiUzQTA2JTNBMjBaJTIyJTJDJTIydHlwZSUyMiUzQSUyMnRpbWVmcmFtZSUyMiU3RCUyQyUyMmFjY291bnRJZCUyMiUzQSUyMjQ2MzM0MTU3NDM5NjAzNzQwMjQlMjIlMkMlMjJwcm9kdWN0JTIyJTNBJTIybW9uZXlUcmFuc2ZlckRldGFpbHMlMjIlN0QlMkMlN0IlMjJhY2Nlc3NQZXJpb2QlMjIlM0ElN0IlMjJlbmRUaW1lJTIyJTNBJTIyMjAyMy0xMC0yOVQwNiUzQTA2JTNBMjBaJTIyJTJDJTIyc3RhcnRUaW1lJTIyJTNBJTIyMjAyMi0xMS0yOVQwNiUzQTA2JTNBMjBaJTIyJTJDJTIydHlwZSUyMiUzQSUyMnRpbWVmcmFtZSUyMiU3RCUyQyUyMmFjY291bnRJZCUyMiUzQSUyMjQ2MzM0MTU3NDM5NjAzNzQwMjQlMjIlMkMlMjJwcm9kdWN0JTIyJTNBJTIybW9uZXlUcmFuc2ZlckRldGFpbHMlMjIlN0QlNUQlMkMlMjJwcm9maWxlJTIyJTNBMyUyQyUyMnByb3ZlbmFuY2UlMjIlM0FudWxsJTJDJTIycmVjZWlwdElkJTIyJTNBJTIyY3JfNHBmSTNyMVg4YU9IckREd3J3QzAxTkhDeE9YbFcxJTIyJTJDJTIycmVjZWlwdFZlcnNpb24lMjIlM0ExJTJDJTIydGltZXN0YW1wJTIyJTNBJTIyMjAyMi0xMS0yOVQxOCUzQTM1JTNBMDhaJTIyJTJDJTIydmVyc2lvbiUyMiUzQSUyMjElRjYlN9U=",
      "description": "The digital signature for the \"receipt\" portion of the access key"
    },
    "timestamp": {
      "$ref": "#/components/schemas/DateTimeWithZone"
    }
  },
  "description": "An object representing a digital signature of the access key"
}
object ThirdPartyAccessProvenance
{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "example": "P9YbR+srNVyQI35893d+BzPrhGMAAAAAuacVUt+3m4svbaFjVSbHEA==",
      "description": "Calling client cookie"
    },
    "ipAddress": {
      "type": "string",
      "example": "8.8.8.8",
      "description": "Calling client IP address"
    },
    "clientFingerprint": {
      "type": "string",
      "example": "LU9ZYxcDNQCwEmAxH52XFzaRiGMAAAAABclSKxW5S9P8pUMDV4fbpg",
      "description": "Calling client identifier"
    }
  },
  "description": "Provenance regarding the calling client like `clientFingerprint`, `ipAddress` and `token`."
}
object ThirdPartyAccessReceipt
{
  "type": "object",
  "properties": {
    "profile": {
      "type": "integer",
      "example": 3,
      "description": "Representation of the type of consent receipt"
    },
    "version": {
      "type": "string",
      "example": "1",
      "description": "A schema version of receipt"
    },
    "products": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ThirdPartyAccessProduct"
      }
    },
    "partnerId": {
      "$ref": "#/components/schemas/PartnerId"
    },
    "receiptId": {
      "type": "string",
      "example": "cr_4pfI2r1X8aOHrDDwrwC01NHTxOXlT1",
      "description": "This is officially the Consent Receipt ID, but is aliased as the Access Key ID. This is a unique identifier managed by Finicity that points to the contents of this JSON document."
    },
    "timestamp": {
      "$ref": "#/components/schemas/DateTimeWithZone"
    },
    "customerId": {
      "type": "string",
      "example": "3465230025077724000",
      "description": "This is recipient's customerId represented as a pseudo identifier"
    },
    "provenance": {
      "$ref": "#/components/schemas/ThirdPartyAccessProvenance"
    }
  },
  "description": "An object representing consent receipt"
}
object ThirdPartyAccessReceiptData
{
  "type": "object",
  "properties": {
    "proof": {
      "$ref": "#/components/schemas/ThirdPartyAccessProof"
    },
    "receipt": {
      "$ref": "#/components/schemas/ThirdPartyAccessReceipt"
    }
  },
  "description": "An object representing consent access data"
}
string TimeIntervalType
{
  "type": "string",
  "default": "MONTHLY_CALENDAR",
  "example": "MONTHLY_CALENDAR",
  "description": "Possible values for strategies in which attributes may be aggregated and reported across varying time intervals. Allowed Values - MONTHLY_CALENDAR - MONTHLY_ROLLING_30"
}
string TimeIntervalTypeEnum
{
  "type": "string",
  "default": "MONTHLY_CALENDAR",
  "example": "MONTHLY_CALENDAR",
  "description": "Possible values for strategies in which attributes may be aggregated and reported across varying time intervals. Allowed Values - MONTHLY_CALENDAR - MONTHLY_ROLLING_30"
}
object Transaction
{
  "type": "object",
  "required": [
    "id",
    "amount",
    "accountId",
    "customerId",
    "status",
    "description",
    "createdDate"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/TransactionId"
    },
    "memo": {
      "type": "string",
      "example": "UWM HOLDINGS CORPORATION - CLASS A COMMON STOCK",
      "description": "The institution must provide either a description, a memo, or both. We recommended concatenating the two fields into a single value."
    },
    "type": {
      "$ref": "#/components/schemas/TransactionType"
    },
    "amount": {
      "type": "number",
      "example": -828.9,
      "description": "The total amount of the transaction. Transactions for deposits are positive values, withdrawals and debits are negative values."
    },
    "status": {
      "type": "string",
      "example": "active",
      "description": "One of \"active\", \"pending\", or \"shadow\" (see [Transaction Status](https://developer.mastercard.com/open-banking-us/documentation/products/manage/transaction-data/#transaction-status))"
    },
    "ticker": {
      "type": "string",
      "example": "UWMC",
      "description": "Ticker symbol for the investment related to the transaction"
    },
    "checkNum": {
      "type": "string",
      "example": 299,
      "description": "The check number of the transaction"
    },
    "accountId": {
      "$ref": "#/components/schemas/NumericAccountId"
    },
    "feeAmount": {
      "type": "number",
      "example": 0.51,
      "description": "The portion of the overall transaction amount applied to fees"
    },
    "unitPrice": {
      "type": "number",
      "example": 5.53,
      "description": "Share price for the investment unit: stocks, mutual funds, ETFs"
    },
    "customerId": {
      "$ref": "#/components/schemas/NumericCustomerId"
    },
    "incomeType": {
      "type": "string",
      "example": "DIV",
      "description": "Capital gains applied in short, long, or miscellaneous terms for tax purposes"
    },
    "postedDate": {
      "$ref": "#/components/schemas/TransactionPostedDate"
    },
    "securityId": {
      "type": "string",
      "example": "91823B109",
      "description": "The security ID of the transaction"
    },
    "createdDate": {
      "$ref": "#/components/schemas/TransactionCreatedDate"
    },
    "description": {
      "type": "string",
      "example": "Buy Stock",
      "description": "The description value is from the financial institution (FI), often known as the payee. The value \"No description provided by institution\" is returned when the FI doesn't provide one"
    },
    "taxesAmount": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "Taxes applicable to the investment trade"
    },
    "escrowAmount": {
      "type": "number",
      "example": 2534,
      "description": "The portion of the transaction allocated to escrow"
    },
    "unitQuantity": {
      "type": "integer",
      "format": "int32",
      "example": 150,
      "description": "The number of units (individual shares) in the transaction"
    },
    "effectiveDate": {
      "$ref": "#/components/schemas/TransactionEffectiveDate"
    },
    "categorization": {
      "$ref": "#/components/schemas/Categorization"
    },
    "currencySymbol": {
      "type": "string",
      "example": "USD",
      "description": "If the foreign amount value is present then this is the currency code of that foreign amount"
    },
    "interestAmount": {
      "type": "number",
      "example": 132,
      "description": "The portion of the transaction allocated to interest"
    },
    "securityIdType": {
      "$ref": "#/components/schemas/SecurityIdType"
    },
    "splitNumerator": {
      "type": "number",
      "example": 20,
      "description": "Numerator of the stock split for the transaction"
    },
    "subAccountFund": {
      "type": "string",
      "example": "MARGIN",
      "description": "The sub account where the funds came from"
    },
    "suspenseAmount": {
      "type": "number",
      "example": 0.25,
      "description": "Temporarily hold funds if you overpay or underpay your monthly payment"
    },
    "principalAmount": {
      "type": "number",
      "example": 32560,
      "description": "The portion of the transaction allocated to principal"
    },
    "transactionDate": {
      "$ref": "#/components/schemas/TransactionDate"
    },
    "commissionAmount": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "Transaction commission"
    },
    "optionExpireDate": {
      "$ref": "#/components/schemas/TransactionOptionExpireDate"
    },
    "splitDenominator": {
      "type": "number",
      "example": 152,
      "description": "Denominator of the stock split for the transaction"
    },
    "optionStrikePrice": {
      "type": "number",
      "example": 32560,
      "description": "The strike price of the option contract"
    },
    "sharesPerContract": {
      "type": "number",
      "example": 100,
      "description": "Shares per contract of the underlying stock option"
    },
    "firstEffectiveDate": {
      "$ref": "#/components/schemas/TransactionFirstEffectiveDate"
    },
    "runningBalanceAmount": {
      "type": "number",
      "example": 1000,
      "description": "The ending balance after the transaction was posted"
    },
    "subaccountSecurityType": {
      "type": "string",
      "example": "MARGIN",
      "description": "The type of sub account the funds came from"
    },
    "investmentTransactionType": {
      "$ref": "#/components/schemas/InvestmentTransactionTypes"
    }
  }
}
integer TransactionCreatedDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). Represents the timestamp of the transaction when it was added to our platform. See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer TransactionDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). Represents the timestamp of the transaction when it occurred. See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer TransactionEffectiveDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). Represents the timestamp of the transaction when it became effective on an account by an institution. See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer TransactionFirstEffectiveDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). Represents the first timestamp of the transaction recorded in the `effectiveDate` field. See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer TransactionId
{
  "type": "integer",
  "format": "int64",
  "example": 21284820852,
  "description": "A transaction ID"
}
integer TransactionOptionExpireDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). Represents the timestamp of the transaction expiration date when it became expires on an account by an institution. See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
integer TransactionPostedDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). Represents the timestamp of the transaction when it was posted or cleared by the institution. This value isn't required for student loan transaction data. See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string TransactionType
{
  "type": "string",
  "example": "atm",
  "description": "If provided by the institution, the following values may be returned in the field of a record:\n* \"atm\"\n\n* \"cash\"\n\n* \"check\"\n\n* \"credit\"\n\n* \"debit\"\n\n* \"deposit\"\n\n* \"directDebit\"\n\n* \"directDeposit\"\n\n* \"dividend\"\n\n* \"fee\"\n\n* \"interest\"\n\n* \"other\"\n\n* \"payment\"\n\n* \"pointOfSale\"\n\n* \"repeatPayment\"\n\n* \"serviceCharge\"\n\n* \"transfer\""
}
object TransactionalAttribute
{
  "type": "object",
  "required": [
    "attributeName",
    "aggregatedByTimePeriods",
    "transactionIds",
    "streamIds"
  ],
  "properties": {
    "streamIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "1",
        "2"
      ],
      "description": "List of stream IDs categorized as belonging to this attribute"
    },
    "attributeName": {
      "type": "string",
      "example": "INFLOW_TRANSACTIONS",
      "description": "Name of Attribute as mentioned in Data Dictionary"
    },
    "transactionIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "6010290887",
        "6010290914"
      ],
      "description": "List of transaction IDs categorized as belonging to this attribute"
    },
    "aggregatedByTimePeriods": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TransactionalTimeInterval"
      },
      "description": "List of aggregations by specified Time Interval"
    }
  },
  "description": "An attribute which represents some categorization/classification of\ntransactions. Enumerates those identified transactions and reports\naggregations of them over the requested time interval(s)."
}
object TransactionalPeriod
{
  "type": "object",
  "required": [
    "startDate",
    "endDate",
    "count"
  ],
  "properties": {
    "max": {
      "type": "number",
      "example": 60.21,
      "description": "Maximum amount during the period"
    },
    "min": {
      "type": "number",
      "example": 30.22,
      "description": "Minimum amount during the period"
    },
    "sum": {
      "type": "number",
      "example": 90.43,
      "description": "Sum of amounts during the period"
    },
    "mean": {
      "type": "number",
      "example": 42.22,
      "description": "Mean of amounts during the period"
    },
    "count": {
      "type": "integer",
      "example": 2,
      "description": "Count of data points during the period"
    },
    "median": {
      "type": "number",
      "example": 42.22,
      "description": "Median of amounts during the period"
    },
    "endDate": {
      "type": "string",
      "format": "date",
      "example": "2023-01-01",
      "description": "End date for the period being reported"
    },
    "startDate": {
      "type": "string",
      "format": "date",
      "example": "2022-12-01",
      "description": "Start date for the period being reported"
    },
    "standardDeviation": {
      "type": "number",
      "example": 14.995,
      "description": "Standard deviation of amounts during the period"
    }
  },
  "description": "Statistics for one period in the report of a TransactionalAttribute."
}
object TransactionalTimeInterval
{
  "type": "object",
  "required": [
    "timeIntervalType",
    "periods"
  ],
  "properties": {
    "periods": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TransactionalPeriod"
      },
      "description": "Periods of the specified time interval type, describing the attribute calculations"
    },
    "timeIntervalType": {
      "$ref": "#/components/schemas/TimeIntervalTypeEnum"
    }
  },
  "description": "For a TransactionalAttribute, describes a time interval type being reported\nand a list of periods generated according to that type."
}
object Transactions
{
  "type": "object",
  "required": [
    "found",
    "displaying",
    "moreAvailable",
    "fromDate",
    "toDate",
    "sort",
    "transactions"
  ],
  "properties": {
    "sort": {
      "type": "string",
      "example": "desc",
      "description": "Value of the sort request parameter that generated this response"
    },
    "found": {
      "$ref": "#/components/schemas/FoundResults"
    },
    "toDate": {
      "$ref": "#/components/schemas/TransactionsToDate"
    },
    "fromDate": {
      "$ref": "#/components/schemas/TransactionsFromDate"
    },
    "displaying": {
      "$ref": "#/components/schemas/DisplayingResults"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Transaction"
      },
      "description": "The array of transactions"
    },
    "moreAvailable": {
      "$ref": "#/components/schemas/MoreResultsAvailable"
    }
  },
  "description": "A list of transactions"
}
integer TransactionsFromDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "Value of the `fromDate` request parameter that generated this response"
}
object TransactionsReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "format": "int64",
          "example": 174,
          "description": "Number of days covered by the report"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": false,
          "description": "\"true\" if the report covers more than 365 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records"
        }
      }
    }
  ],
  "description": "A Transactions report"
}
object TransactionsReportAccount
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1000075473,
      "description": "The Finicity account ID"
    },
    "name": {
      "type": "string",
      "example": "Super Checking",
      "description": "The account name from the financial institution."
    },
    "type": {
      "$ref": "#/components/schemas/AccountType"
    },
    "number": {
      "type": "string",
      "example": "5015",
      "description": "The account number from the financial institution (obfuscated)"
    },
    "balance": {
      "type": "number",
      "example": 100000,
      "description": "The cleared balance of the account as-of `balanceDate`"
    },
    "balanceDate": {
      "type": "integer",
      "format": "int64",
      "example": 1594676289,
      "description": "A timestamp showing when the balance was captured"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "a list of transaction records"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The status of the most recent aggregation attempt for this account. Note: non-zero means the account was not accessed successfully for this report, and additional fields for this account may not be reliable."
    }
  },
  "description": "Fields used for the Transaction History Report (CRA products)"
}
object TransactionsReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/TransactionsReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A Transaction report being generated"
}
object TransactionsReportConstraints
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    }
  }
}
object TransactionsReportConstraintsOut
{
  "type": "object",
  "properties": {
    "toDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "includePending": {
      "$ref": "#/components/schemas/IncludePending"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    }
  }
}
integer TransactionsToDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "Value of the `toDate` request parameter that generated this response"
}
string TxPushCallbackUrl
{
  "type": "string",
  "example": "https://www.mydomain.com/txpush/listener",
  "description": "A callback URL where to receive TxPush notifications"
}
object TxPushSubscriptionParameters
{
  "type": "object",
  "required": [
    "callbackUrl"
  ],
  "properties": {
    "callbackUrl": {
      "$ref": "#/components/schemas/TxPushCallbackUrl"
    }
  }
}
object TxPushSubscriptions
{
  "type": "object",
  "required": [
    "subscriptions"
  ],
  "properties": {
    "subscriptions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SubscriptionRecord"
      }
    }
  }
}
object TxVerifyInterview
{
  "type": "object",
  "required": [
    "assetId"
  ],
  "properties": {
    "assetId": {
      "$ref": "#/components/schemas/AssetId"
    },
    "accounts": {
      "$ref": "#/components/schemas/ReportAccountIds"
    }
  }
}
integer UnixDate
{
  "type": "integer",
  "format": "int64",
  "example": 1607450357,
  "description": "A date in Unix epoch time (in seconds). See: [Handling Epoch Dates and Times](https://developer.mastercard.com/open-banking-us/documentation/codes-and-formats/)."
}
string UserType
{
  "type": "string",
  "example": "business",
  "description": "Type of User, Allowed values Personal/Business"
}
object VOAIReportIncomeStream
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status",
    "estimateInclusion",
    "confidence",
    "cadence",
    "transactions"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "dens28i3vsch-voah",
      "description": "Income stream ID"
    },
    "name": {
      "type": "string",
      "example": "none",
      "description": "A human-readable name based on the `normalizedPayee` name of the transactions for this income stream"
    },
    "status": {
      "$ref": "#/components/schemas/ActiveStatus"
    },
    "cadence": {
      "$ref": "#/components/schemas/CadenceDetails"
    },
    "netAnnual": {
      "type": "number",
      "example": 110475.7,
      "description": "Sum of all values in `netMonthlyIncome` over the previous 12 months"
    },
    "confidence": {
      "type": "integer",
      "format": "int32",
      "example": 70,
      "description": "Level of confidence that the deposit stream represents income (example: 85%)"
    },
    "netMonthly": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NetMonthly"
      },
      "example": [
        {
          "net": 2004.77,
          "month": 1522562400
        }
      ],
      "description": "A list of net monthly records. One instance for each complete calendar month in the report."
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "A list of transaction records"
    },
    "estimateInclusion": {
      "$ref": "#/components/schemas/EstimateInclusion"
    },
    "incomeStreamMonths": {
      "type": "integer",
      "format": "int32",
      "example": 18,
      "description": "The number of months the income transactions are observed"
    },
    "projectedNetAnnual": {
      "type": "number",
      "example": 0,
      "description": "Projected net income over the next 12 months, across all income streams, based on `netAnnualIncome`"
    },
    "estimatedGrossAnnual": {
      "type": "number",
      "example": 2000.12,
      "description": "Before-tax gross annual income (estimated from `netAnnual`) across all income stream in the past 12 months"
    },
    "projectedGrossAnnual": {
      "type": "number",
      "example": 151609,
      "description": "Projected gross income over the next 12 months, across all active income streams, based on `projectedNetAnnual`"
    },
    "averageMonthlyIncomeNet": {
      "type": "number",
      "example": 9206.31,
      "description": "Monthly average amount over the previous 24 months"
    }
  },
  "description": "A report income stream record"
}
object VOAReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "example": 180,
          "description": "Number of days covered by the report"
        },
        "assets": {
          "$ref": "#/components/schemas/PrequalificationReportAssetSummary"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 180 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records"
        },
        "consolidatedAvailableBalance": {
          "type": "number",
          "example": 1929.57,
          "description": "The sum of available balance for all of the accounts included in the report"
        }
      }
    }
  ],
  "description": "A VOA report"
}
object VOAReportAccount
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1000023996,
      "description": "The ID of the account"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "One of the values from account types"
    },
    "asset": {
      "$ref": "#/components/schemas/PrequalificationReportAssetSummary"
    },
    "number": {
      "type": "string",
      "example": "1111",
      "description": "The account number from the institution (all digits except the last four are obfuscated)"
    },
    "balance": {
      "type": "number",
      "example": 501.24,
      "description": "The cleared balance of the account as-of balanceDate"
    },
    "details": {
      "$ref": "#/components/schemas/AccountDetailsTxBased"
    },
    "position": {
      "$ref": "#/components/schemas/ReportAccountPosition"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "balanceDate": {
      "type": "integer",
      "format": "int64",
      "example": 1588350276,
      "description": "A timestamp showing when the balance was captured"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransactionNewTxBased"
      },
      "description": "a list of transaction records"
    },
    "availableBalance": {
      "type": "number",
      "example": 501.24,
      "description": "The available balance for the account"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The status of the most recent aggregation attempt"
    },
    "averageMonthlyBalance": {
      "type": "number",
      "example": 501.02,
      "description": "The average monthly balance of this account"
    },
    "totNumberInsufficientFundsFeeDebitTxAccount": {
      "type": "integer",
      "format": "int64",
      "example": 0,
      "description": "The count for the total number of insufficient funds transactions, based on the `fromDate` of the report."
    },
    "totNumberInsufficientFundsFeeDebitTxOver2MonthsAccount": {
      "type": "integer",
      "format": "int64",
      "example": 0,
      "description": "The count for the total number of insufficient funds transactions for the last two months, based on the `fromDate` of the report."
    },
    "totNumberDaysSinceMostRecentInsufficientFundsFeeDebitTxAccount": {
      "type": "integer",
      "format": "int64",
      "example": 120,
      "description": "The number of days since the most recent insufficient funds transaction, based on the `fromDate` of the report."
    }
  }
}
object VOAReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/VOAReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A VOA report being generated"
}
object VOAReportConstraints
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    }
  }
}
object VOAReportConstraintsOut
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    }
  }
}
object VOAWithIncomeReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "example": 180,
          "description": "Number of days covered by the report"
        },
        "assets": {
          "$ref": "#/components/schemas/PrequalificationReportAssetSummary"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 180 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records"
        },
        "consolidatedAvailableBalance": {
          "type": "number",
          "example": 1929.57,
          "description": "The sum of available balance for all of the accounts included in the report"
        }
      }
    }
  ],
  "description": "A VOA with income report"
}
object VOAWithIncomeReportAccount
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/VOAReportAccount"
    },
    {
      "type": "object",
      "properties": {
        "incomeStreams": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/VOAIReportIncomeStream"
          },
          "description": "A list of income stream records"
        }
      }
    }
  ]
}
object VOAWithIncomeReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/VOAWithIncomeReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A VOA with income report being generated"
}
object VOAWithIncomeReportConstraints
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOAWithIncomeReportConstraintsOut
{
  "type": "object",
  "properties": {
    "showNsf": {
      "$ref": "#/components/schemas/ShowNsf"
    },
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOEPayrollReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "gseEnabled": {
          "$ref": "#/components/schemas/GseEnabled"
        },
        "employmentHistory": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/PayrollEmploymentHistoryVOE"
          },
          "description": "An array of employment histories, one for each of the consumer's verified employers"
        }
      }
    }
  ],
  "description": "A VOE Payroll report"
}
object VOETransactionsReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "example": 120,
          "description": "Number of days covered by the report"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 180 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records, including information about the individual accounts used in this report"
        }
      }
    }
  ],
  "description": "A VOE Transactions report"
}
object VOETransactionsReportAccount
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1000023996,
      "description": "The ID of the account"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "One of the values from account types"
    },
    "number": {
      "type": "string",
      "example": "1111",
      "description": "The account number from the institution (all digits except the last four are obfuscated)"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "incomeStreams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VOETransactionsReportIncomeStream"
      },
      "description": "A list of income stream records"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The status of the most recent aggregation attempt"
    }
  }
}
object VOETransactionsReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/VOETransactionsReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A VOE Transactions report being generated"
}
object VOETransactionsReportConstraints
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "reportId": {
      "$ref": "#/components/schemas/ReportId"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOETransactionsReportConstraintsOut
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "reportId": {
      "$ref": "#/components/schemas/ReportId"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOETransactionsReportIncomeStream
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status",
    "estimateInclusion",
    "confidence",
    "cadence",
    "daysSinceLastTransaction",
    "nextExpectedTransactionDate",
    "transactions"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "dens28i3vsch-voah",
      "description": "Income stream ID"
    },
    "name": {
      "type": "string",
      "example": "none",
      "description": "A human-readable name based on the `normalizedPayee` name of the transactions for this income stream"
    },
    "status": {
      "$ref": "#/components/schemas/ActiveStatus"
    },
    "cadence": {
      "$ref": "#/components/schemas/CadenceDetails"
    },
    "confidence": {
      "type": "integer",
      "format": "int32",
      "example": 70,
      "description": "Level of confidence that the deposit stream represents income (example: 85%)"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "A list of transaction records"
    },
    "estimateInclusion": {
      "$ref": "#/components/schemas/EstimateInclusion"
    },
    "incomeStreamMonths": {
      "type": "integer",
      "format": "int32",
      "example": 18,
      "description": "The number of months the income transactions are observed"
    },
    "daysSinceLastTransaction": {
      "type": "integer",
      "format": "int32",
      "example": 15,
      "description": "The number of days since the last credit transaction for the particular income stream"
    },
    "nextExpectedTransactionDate": {
      "type": "integer",
      "format": "int64",
      "example": 1572625469,
      "description": "The next expected credit transaction date for the particular income stream, based on the cadence"
    }
  }
}
object VOIEPayStatement
{
  "type": "object",
  "properties": {
    "assetId": {
      "type": "string",
      "example": "6f8fb0a0-e882-4f57-b672-cf53f1397581",
      "description": "The asset ID of the stored pay statement"
    },
    "endDate": {
      "type": "integer",
      "format": "int64",
      "example": 1558722600,
      "description": "The end of the pay period"
    },
    "payDate": {
      "type": "integer",
      "format": "int64",
      "example": 1559241000,
      "description": "The listed pay date for the pay statement"
    },
    "payStat": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PayStat"
      },
      "description": "Information pertaining to the earnings on the pay statement"
    },
    "billable": {
      "type": "boolean",
      "example": true,
      "description": "Designates whether the pay statement is billable"
    },
    "employee": {
      "$ref": "#/components/schemas/Employee"
    },
    "employer": {
      "$ref": "#/components/schemas/Employer"
    },
    "netPayYTD": {
      "type": "number",
      "example": 36000,
      "description": "The total accumulation of pay after deductions for the employee for the current pay year"
    },
    "payPeriod": {
      "type": "string",
      "example": "LastPayPeriod",
      "description": "The pay period of the pay statement"
    },
    "startDate": {
      "type": "integer",
      "format": "int64",
      "example": 1557513000,
      "description": "The beginning of the pay period"
    },
    "deductions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Deduction"
      },
      "description": "Information pertaining to deductions on the pay statement"
    },
    "grossPayYTD": {
      "type": "number",
      "example": 72600,
      "description": "The total accumulation of pay before deductions for the employee for the current pay year"
    },
    "netPayCurrent": {
      "type": "number",
      "example": 1802.22,
      "description": "The total pay after deductions for the employee for the current pay period"
    },
    "directDeposits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DirectDeposit"
      },
      "description": "Information pertaining to direct deposits on the pay statement"
    },
    "grossPayCurrent": {
      "type": "number",
      "example": 24200,
      "description": "The total pay before deductions for the employee for the current pay period"
    },
    "payrollProvider": {
      "type": "string",
      "example": "Finicity",
      "description": "The company that provides the pay stub."
    }
  }
}
object VOIEPayrollReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "gseEnabled": {
          "$ref": "#/components/schemas/GseEnabled"
        },
        "reportStyle": {
          "$ref": "#/components/schemas/ReportStyle"
        },
        "employmentHistory": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/PayrollEmploymentHistoryVOIE"
          },
          "description": "An array of employment histories, one for each of the consumer's verified employers"
        }
      }
    }
  ],
  "description": "A VOIE Payroll report"
}
object VOIEPaystubPayStatement
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/PayStatementForVoie"
    },
    {
      "type": "object",
      "properties": {
        "monthlyIncome": {
          "$ref": "#/components/schemas/PaystubMonthlyIncomeRecord"
        }
      }
    }
  ]
}
object VOIEPaystubReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "assetIds": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/AssetId"
          },
          "description": "The pay statements included in the report"
        },
        "payStatements": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/VOIEPaystubPayStatement"
          },
          "description": "Extracted pay statement details, and the transaction matching summary"
        },
        "numberOfBillableAssets": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "Total number of billable pay statements included in the report"
        }
      }
    }
  ],
  "description": "A VOIE Paystub report"
}
object VOIEPaystubReportAck
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/VOIEReportConstraints"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A VOIE Paystub report being generated"
}
object VOIEPaystubWithStatementPayStatement
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/PayStatementForVoie"
    },
    {
      "type": "object",
      "properties": {
        "monthlyIncome": {
          "$ref": "#/components/schemas/PaystubTxVerifyMonthlyIncomeRecord"
        }
      }
    }
  ]
}
object VOIEPaystubWithTXVerifyReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "assetIds": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/AssetId"
          },
          "description": "The pay statements included in the report"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "The details of the financial institution accounts included in the report."
        },
        "payStatements": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/VOIEPaystubWithStatementPayStatement"
          },
          "description": "Extracted pay statement details, and the transaction matching summary"
        },
        "numberOfBillableAssets": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "Total number of billable pay statements included in the report"
        }
      }
    }
  ],
  "description": "A VOIE Paystub With TXVerify report"
}
object VOIEPaystubWithTXVerifyReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/VOIEWithTXVerifyReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A VOIE Paystub With TXVerify report being generated"
}
object VOIEReportConstraints
{
  "type": "object",
  "required": [
    "voieWithStatementData"
  ],
  "properties": {
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "voieWithStatementData": {
      "$ref": "#/components/schemas/VOIEWithStatementData"
    }
  },
  "description": "The request details from the report generation that were used to generate the report"
}
object VOIETXVerifyReportAccount
{
  "type": "object",
  "required": [
    "id",
    "name",
    "number",
    "type",
    "aggregationStatusCode",
    "transactions"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1000023996,
      "description": "The ID of the account"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "One of the values from account types"
    },
    "number": {
      "type": "string",
      "example": "1111",
      "description": "The account number from the institution (all digits except the last four are obfuscated)"
    },
    "balance": {
      "type": "number",
      "example": 123.45,
      "description": "The cleared balance of the account as-of `balanceDate`"
    },
    "details": {
      "$ref": "#/components/schemas/AccountDetailsTxBased"
    },
    "position": {
      "$ref": "#/components/schemas/ReportAccountPosition"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransactionNewTxBased"
      },
      "description": "a list of transaction records"
    },
    "incomeStreams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VOIETXVerifyReportIncomeStream"
      },
      "description": "A list of income stream records"
    },
    "availableBalance": {
      "type": "number",
      "example": 123.45,
      "description": "The available balance for the account"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The status of the most recent aggregation attempt"
    },
    "averageMonthlyBalance": {
      "type": "number",
      "example": 301.45,
      "description": "The average monthly balance of this account"
    }
  }
}
object VOIETXVerifyReportIncomeStream
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status",
    "confidence",
    "cadence",
    "transactions"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "dens28i3vsch-voietxverify",
      "description": "Finicity's income stream ID"
    },
    "name": {
      "type": "string",
      "example": "none",
      "description": "A human-readable name based on the `normalizedPayee` name of the transactions for this income stream"
    },
    "status": {
      "$ref": "#/components/schemas/ActiveStatus"
    },
    "cadence": {
      "$ref": "#/components/schemas/CadenceDetails"
    },
    "netAnnual": {
      "type": "number",
      "example": 110475.7,
      "description": "Sum of all values in `netMonthlyIncome` over the previous 12 months"
    },
    "confidence": {
      "type": "integer",
      "format": "int32",
      "example": 70,
      "description": "Level of confidence that the deposit stream represents income (example: 85%)"
    },
    "netMonthly": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NetMonthly"
      },
      "description": "A list of net monthly records. One instance for each complete calendar month in the report."
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "A list of transaction records"
    },
    "incomeStreamMonths": {
      "type": "integer",
      "format": "int32",
      "example": 24,
      "description": "The number of months the income transactions are observed"
    },
    "projectedNetAnnual": {
      "type": "number",
      "example": 0,
      "description": "Projected net income over the next 12 months, across all income streams, based on `netAnnualIncome`"
    },
    "estimatedGrossAnnual": {
      "type": "number",
      "example": 12321.1,
      "description": "Before-tax gross annual income (estimated from `netAnnual`) across all income stream in the past 12 months"
    },
    "projectedGrossAnnual": {
      "type": "number",
      "example": 151609,
      "description": "Projected gross income over the next 12 months, across all active income streams, based on `projectedNetAnnual`"
    },
    "averageMonthlyIncomeNet": {
      "type": "number",
      "example": 9206.31,
      "description": "Monthly average amount over the previous 24 months"
    }
  }
}
object VOIEWithInterviewData
{
  "type": "object",
  "required": [
    "txVerifyInterview"
  ],
  "properties": {
    "extractEarnings": {
      "$ref": "#/components/schemas/ExtractEarnings"
    },
    "extractDeductions": {
      "$ref": "#/components/schemas/ExtractDeductions"
    },
    "txVerifyInterview": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TxVerifyInterview"
      },
      "description": "An array of `TxVerifyInterview` objects"
    },
    "extractDirectDeposit": {
      "$ref": "#/components/schemas/ExtractDirectDeposit"
    }
  }
}
object VOIEWithStatementData
{
  "type": "object",
  "required": [
    "assetIds"
  ],
  "properties": {
    "assetIds": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AssetId"
      },
      "description": "A list of pay statement asset IDs"
    },
    "extractEarnings": {
      "$ref": "#/components/schemas/ExtractEarnings"
    },
    "extractDeductions": {
      "$ref": "#/components/schemas/ExtractDeductions"
    },
    "extractDirectDeposit": {
      "$ref": "#/components/schemas/ExtractDirectDeposit"
    }
  }
}
object VOIEWithTXVerifyReportConstraints
{
  "type": "object",
  "required": [
    "voieWithInterviewData"
  ],
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "voieWithInterviewData": {
      "$ref": "#/components/schemas/VOIEWithInterviewData"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOIEWithTXVerifyReportConstraintsOut
{
  "type": "object",
  "required": [
    "voieWithInterviewData"
  ],
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "voieWithInterviewData": {
      "$ref": "#/components/schemas/VOIEWithInterviewData"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOIReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "days": {
          "type": "integer",
          "format": "int64",
          "example": 200,
          "description": "Number of days covered by the report"
        },
        "income": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportIncomeStreamSummary"
          },
          "description": "Income details"
        },
        "endDate": {
          "$ref": "#/components/schemas/ReportEndDate"
        },
        "seasoned": {
          "type": "boolean",
          "example": true,
          "description": "\"true\" if the report covers more than 180 days"
        },
        "startDate": {
          "$ref": "#/components/schemas/ReportStartDate"
        },
        "institutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReportInstitution"
          },
          "description": "A list of institution records"
        }
      }
    }
  ],
  "description": "A VOI report"
}
object VOIReportAccount
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1000023996,
      "description": "The ID of the account"
    },
    "name": {
      "type": "string",
      "example": "Checking",
      "description": "The account name from the institution"
    },
    "type": {
      "type": "string",
      "example": "checking",
      "description": "One of the values from account types"
    },
    "number": {
      "type": "string",
      "example": "1111",
      "description": "The account number from the institution (all digits except the last four are obfuscated)"
    },
    "balance": {
      "type": "number",
      "example": 714.16,
      "description": "The cleared balance of the account as-of `balanceDate`"
    },
    "ownerName": {
      "$ref": "#/components/schemas/ReportAccountOwnerName"
    },
    "miscDeposits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "maxItems": 100,
      "minItems": 0,
      "description": "A list of miscellaneous deposits"
    },
    "ownerAddress": {
      "$ref": "#/components/schemas/ReportAccountOwnerAddress"
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "a list of transaction records"
    },
    "incomeStreams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VOIReportIncomeStream"
      },
      "description": "A list of income stream records"
    },
    "currentBalance": {
      "type": "number",
      "example": 714.16,
      "description": "Current balance of the account"
    },
    "availableBalance": {
      "type": "number",
      "example": 714.16,
      "description": "The available balance for the account"
    },
    "beginningBalance": {
      "type": "number",
      "example": 714.77,
      "description": "Beginning balance of account per the time period in the report"
    },
    "aggregationStatusCode": {
      "type": "integer",
      "format": "int32",
      "example": 0,
      "description": "The status of the most recent aggregation attempt"
    },
    "averageMonthlyBalance": {
      "type": "number",
      "example": 720.75,
      "description": "The average monthly balance of this account"
    }
  }
}
object VOIReportAck
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseReportAckWithPortfolioId"
    },
    {
      "type": "object",
      "properties": {
        "constraints": {
          "$ref": "#/components/schemas/VOIReportConstraintsOut"
        }
      }
    }
  ],
  "required": [
    "id",
    "portfolioId",
    "customerType",
    "customerId",
    "requestId",
    "requesterName",
    "createdDate",
    "title",
    "consumerId",
    "consumerSsn",
    "type",
    "status",
    "constraints"
  ],
  "description": "A VOI report being generated"
}
object VOIReportConstraints
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIdsString"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOIReportConstraintsOut
{
  "type": "object",
  "properties": {
    "fromDate": {
      "$ref": "#/components/schemas/UnixDate"
    },
    "accountIds": {
      "$ref": "#/components/schemas/ReportAccountIds"
    },
    "reportCustomFields": {
      "$ref": "#/components/schemas/ReportCustomFields"
    },
    "incomeStreamConfidenceMinimum": {
      "$ref": "#/components/schemas/IncomeStreamConfidenceMinimum"
    }
  }
}
object VOIReportIncomeStream
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status",
    "estimateInclusion",
    "confidence",
    "cadence",
    "transactions"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "dens28i3vsch-voi1",
      "description": "Income stream ID"
    },
    "name": {
      "type": "string",
      "example": "none",
      "description": "A human-readable name based on the `normalizedPayee` name of the transactions for this income stream"
    },
    "status": {
      "$ref": "#/components/schemas/ActiveStatus"
    },
    "cadence": {
      "$ref": "#/components/schemas/CadenceDetails"
    },
    "netAnnual": {
      "type": "number",
      "example": 110475.7,
      "description": "Sum of all values in `netMonthlyIncome` over the previous 12 months"
    },
    "confidence": {
      "type": "integer",
      "format": "int32",
      "example": 70,
      "description": "Level of confidence that the deposit stream represents income (example: 85%)"
    },
    "netMonthly": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NetMonthly"
      },
      "description": "A list of net monthly records. One instance for each complete calendar month in the report."
    },
    "transactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportTransaction"
      },
      "description": "A list of transaction records"
    },
    "estimateInclusion": {
      "$ref": "#/components/schemas/EstimateInclusion"
    },
    "incomeStreamMonths": {
      "type": "integer",
      "format": "int32",
      "example": 18,
      "description": "The number of months the income transactions are observed"
    },
    "projectedNetAnnual": {
      "type": "number",
      "example": 0,
      "description": "Projected net income over the next 12 months, across all income streams, based on `netAnnualIncome`"
    },
    "estimatedGrossAnnual": {
      "type": "number",
      "example": 12321.1,
      "description": "Before-tax gross annual income (estimated from `netAnnual`) across all income stream in the past 12 months"
    },
    "projectedGrossAnnual": {
      "type": "number",
      "example": 151609,
      "description": "Projected gross income over the next 12 months, across all active income streams, based on `projectedNetAnnual`"
    },
    "averageMonthlyIncomeNet": {
      "type": "number",
      "example": 9206.31,
      "description": "Monthly average amount over the previous 24 months"
    }
  }
}
object VerifiedMicroDeposit
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "example": "Verified",
      "description": "Micro entries successful verification status"
    },
    "statusDescription": {
      "type": "string",
      "example": "Micro entries are successfully verified",
      "description": "Micro entries successful verification description"
    }
  }
}
string Warnings
{
  "type": "string",
  "example": "Test warnings",
  "description": "An array containing warning messages. Warnings can be one of:\n\n  * Address: Input postal code was corrected\n  * Address: Input state corrected\n  * Email: Address is too long\n  * Email: General syntax error\n  * Email: Invalid domain syntax \n  * Email: Invalid top-level-domain (TLD) in address\n  * Email: Invalid username syntax\n  * IP: IP address is in private range\n  * Phone: Invalid country_hint value. Only Alpha-2 supported"
}
string Webhook
{
  "type": "string",
  "example": "https://webhook.site/8d4421a7-d1d1-4f01-bb08-5370aff0321b",
  "description": "The publicly available URL you want to be notified with events as the user progresses through the application. See [Connect Webhook Event](https://developer.mastercard.com/open-banking-us/documentation/webhooks/webhooks-connect/) for event details."
}
string WebhookContentType
{
  "type": "string",
  "default": "application/json",
  "example": "application/json",
  "description": "The content type the webhook events will be sent in. Supported types: \"application/json\" and \"application/xml\"."
}
object WebhookData
{
  "type": "object",
  "description": "Allows additional identifiable information to be inserted into the payload of connect webhook events. See: [Custom Webhooks](https://developer.mastercard.com/open-banking-us/documentation/webhooks/webhooks-custom/)."
}
object WebhookHeaders
{
  "type": "object",
  "description": "Allows additional identifiable information to be included as headers of connect webhook event. See: [Custom Webhooks](https://developer.mastercard.com/open-banking-us/documentation/webhooks/webhooks-custom/)."
}
boolean WithInsights
{
  "type": "boolean",
  "example": true,
  "description": "If Identity Insights data must be returned or not"
}
string ZipCode
{
  "type": "string",
  "example": "84123",
  "description": "A ZIP code"
}