Finicity Verify Income and Employment API

Generate income and employment reports asynchronously

Operations 7

POST /decisioning/v2/customers/{customerId}/voi Generate VOI Report for the Customer #
POST /decisioning/v2/customers/{customerId}/voePayroll Generate VOE - Payroll Report for the Customer #
POST /decisioning/v2/customers/{customerId}/voeTransactions Generate VOE - Transactions Report for the Customer #
POST /decisioning/v2/customers/{customerId}/payStatement Generate Pay Statement Report for the Customer #
POST /decisioning/v2/customers/{customerId}/voieTxVerify/withInterview Generate VOIE Paystub (With TXVerify) Report for the Customer #
POST /decisioning/v2/customers/{customerId}/voieTxVerify/withStatement Generate VOIE - Paystub Report for the Customer #
POST /decisioning/v2/customers/{customerId}/voiePayroll Generate VOIE - Payroll Report for the Customer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/finicity-verify-income-and-employment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

finicity-verify-income-and-employment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open Finance Verify Income and Employment API
  description: 'OpenAPI specification for Finicity APIs.


    Open Finance (formerly Open Banking) solutions in the US are provided by

    Finicity, a Mastercard company.'
  contact:
    name: API Support
    email: apisupport@mastercard.com
    url: https://developer.mastercard.com/open-finance-us/documentation/support/
  version: 1.43.0
servers:
- url: https://api.finicity.com
  description: Production
security:
- FinicityAppKey: []
  FinicityAppToken: []
tags:
- name: Verify Income and Employment
  description: Generate income and employment reports asynchronously
paths:
  /decisioning/v2/customers/{customerId}/voi:
    post:
      tags:
      - Verify Income and Employment
      summary: Generate VOI Report for the Customer
      description: 'Generate a Verification of Income (VOI) report for all checking, savings, and money market accounts for the given customer. This service retrieves up to two years of transaction history for each account and uses this information to generate the VOI report.


        This is a premium service. The billing rate is the variable rate for Verification of Income under the current subscription plan. The billable event is the successful generation of a VOI report.


        If no account of type checking, savings, or money market is found, the service will return HTTP 400 Bad Request.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GenerateVOIReport
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      requestBody:
        $ref: '#/components/requestBodies/GenerateVOIReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/GenerateVOIReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /decisioning/v2/customers/{customerId}/voePayroll:
    post:
      tags:
      - Verify Income and Employment
      summary: Generate VOE - Payroll Report for the Customer
      description: 'Generate or refresh a VOE - Payroll report. Often used as a complementary report to the VOIE-Payroll report to fulfill the pre-close VOE requirements. It retrieves the customer''s employment details and employment status through the payroll source without any income information.


        This is a premium service. The billable event is the successful generation of a VOE - Payroll report.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GenerateVOEPayrollReport
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      requestBody:
        $ref: '#/components/requestBodies/GeneratePayrollReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/GenerateVOEPayrollReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /decisioning/v2/customers/{customerId}/voeTransactions:
    post:
      tags:
      - Verify Income and Employment
      summary: Generate VOE - Transactions Report for the Customer
      description: 'Premium Service: A billable event when the API response is successful.


        MVS-Direct integration developers only.


        Used as a complimentary report to the VOA with Income and VOIE - Paystub (with TXVerify) reports and used to fulfill the pre-close VOE requirements.


        Retrieve the latest credit transaction information from the borrower''s connected bank accounts and groups them into income streams so that you can view their payment history to ensure a direct deport was made within the expected cadence. The report displays transaction descriptions without any dollar amounts so that income re-verification isn''t necessary.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GenerateVOETransactionsReport
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      requestBody:
        $ref: '#/components/requestBodies/GenerateVOETransactionsReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/GenerateVOETransactionsReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /decisioning/v2/customers/{customerId}/payStatement:
    post:
      tags:
      - Verify Income and Employment
      summary: Generate Pay Statement Report for the Customer
      description: 'Generate Pay Statement Extraction Report for the given customer. This service accepts asset IDs of the stored pay statements to generate a Pay Statement Extraction Report.


        This is a premium service. The billing rate is the variable rate for Pay Statement Extraction Report under the current subscription plan. The billable event is the successful generation of a Pay Statement Extraction Report.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GeneratePayStatementReport
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      requestBody:
        $ref: '#/components/requestBodies/GeneratePayStatementReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/GeneratePayStatementReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /decisioning/v2/customers/{customerId}/voieTxVerify/withInterview:
    post:
      tags:
      - Verify Income and Employment
      summary: Generate VOIE Paystub (With TXVerify) Report for the Customer
      description: 'Generate a VOIE - Paystub (with TXVerify) report for all checking and savings under the given customer. This service retrieves up to two years of transaction history for the given accounts. It then uses this information as well as the provided paystub(s), which are passed into the request body as asset IDs (generated using the Store Customer Pay Statement API) to generate the VOIE - Paystub (with TXVerify) report.


        Note: if you are using this API to refresh the bank transactions, use the same asset ID from the first report. A new paystub is not required unless the paystub is too old for underwriting requirements. Using the same asset ID that was on the original report and the previously extracted details will be used to speed up report generation response time.


        This is a premium service. The billing rate is the variable rate for VOIE TXVerify under the current subscription plan. The billable event is the successful generation of a VOIE TXVerify Report.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GenerateVOIEPaystubWithTXVerifyReport
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      requestBody:
        $ref: '#/components/requestBodies/GenerateVOIEPaystubWithTXVerifyReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/GenerateVOIEPaystubWithTXVerifyReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /decisioning/v2/customers/{customerId}/voieTxVerify/withStatement:
    post:
      tags:
      - Verify Income and Employment
      summary: Generate VOIE - Paystub Report for the Customer
      description: 'Generate a VOIE - Paystub report. This service uses the provided paystub(s), which are passed into the request body as asset IDs (generated using the Store Customer Pay Statement API) to generate the VOIE - Paystub report with digitized paystub details.


        This is a premium service. The billing rate is the variable rate for VOIE - Paystub under the current subscription plan. The billable event is the successful generation of a VOIE - Paystub Report.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GenerateVOIEPaystubReport
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      requestBody:
        $ref: '#/components/requestBodies/GenerateVOIEPaystubReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/GenerateVOIEPaystubReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /decisioning/v2/customers/{customerId}/voiePayroll:
    post:
      tags:
      - Verify Income and Employment
      summary: Generate VOIE - Payroll Report for the Customer
      description: 'Generate or refresh a VOIE - Payroll report. For clients using the product via a consumer permissioning experience via Connect, the original VOIE - Payroll report generates when the consumer completes the Data Connect experience, and this API is only used for future report refreshes without reengaging the consumer.


        This is a premium service. The billable event is the successful generation of a VOIE - Payroll report.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: RefreshVOIEPayrollReport
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      requestBody:
        $ref: '#/components/requestBodies/GeneratePayrollReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/RefreshVOIEPayrollReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
components:
  examples:
    MissingFinicityAppKeyExample:
      value:
        code: '10026'
        message: Missing parameter (Finicity-App-Key)
    ResellerNoReportForPartnerExample:
      value:
        code: '10100'
        message: Cannot find resellerBilling reports with id 2445581559892.
    ResellerInvalidDateRangeGreaterThan31DaysExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - It is more than 31 days'
    ResellerInvalidDateRangeGreaterThanEndDateExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - startDate is greaterThan endDate'
    GeneratePayStatementReportResponseExample:
      value:
        id: y0ejausptjg1-paystatement
        portfolioId: spd8aehuw63i-10-port
        customerType: active
        customerId: 1003413624
        requestId: 8wy5htqg8u
        requesterName: Decisioning API
        endUser:
          name: ABC Apartments
          address: 123 Main St
          city: Murray
          state: UT
          zip: '84123'
          phone: 555-2106
          email: customerservice@example.com
          url: example.com
        createdDate: 1588350269
        title: Mastercard Open Banking Pay Statement Extraction Report
        consumerId: 4089f408963dd6b90b28a935e9903c0e
        consumerSsn: '6789'
        consumerDetails:
          id: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
          firstName: John
          middleName: Doe
          lastName: Jane
          address: 123 Marple Street
          city: Anytown
          state: PA
          zip: '17101'
          phone: '5551234567'
          ssn: '1234'
          email: john.doe@example.com
        constraints:
          paystatementReport:
            assetIds:
            - 6f8fb0a0-e882-4f57-b672-cf53f1397581
            extractEarnings: true
            extractDeductions: false
            extractDirectDeposit: true
          reportCustomFields:
          - label: loanID
            value: '12345'
            shown: true
          - label: trackingID
            value: '5555'
            shown: true
          - label: loanType
            value: car
            shown: false
          - label: vendorID
            value: 1613aa23
            shown: true
          - label: vendorName
            value: PSC Finance
            shown: false
        type: paystatement
        status: inProgress
    SecurityFreezeErrorExample:
      value:
        code: '10405'
        status: '403'
        message: The active security freeze for this consumer exists.
    BothCraAndFtcPurposeTrueExample:
      value:
        code: '10100'
        status: '400'
        message: forCRAPurpose and forFTCPurpose may not both be TRUE.
    GenerateVOETransactionsReportRequestExample:
      value:
        reportId: j7k8qbgwsa7d-voietxverify
        accountIds: '123456789'
        fromDate: 1580558400
        reportCustomFields:
        - label: loanID
          value: '12345'
          shown: true
        - label: trackingID
          value: '5555'
          shown: true
        - label: loanType
          value: car
          shown: false
        - label: vendorID
          value: 1613aa23
          shown: true
        - label: vendorName
          value: PSC Finance
          shown: false
        incomeStreamConfidenceMinimum: 50
    MissingFieldExample:
      value:
        code: '10005'
        message: Missing parameter (partnerId)
    ResellerInvalidDateRangeLessThanZeroExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date less than or equal to zero'
    GeneratePayStatementReportRequestExample:
      value:
        paystatementReport:
          assetIds:
          - 6f8fb0a0-e882-4f57-b672-cf53f1397581
          extractEarnings: true
          extractDeductions: false
          extractDirectDeposit: true
        reportCustomFields:
        - label: loanID
          value: '12345'
          shown: true
        - label: trackingID
          value: '5555'
          shown: true
        - label: loanType
          value: car
          shown: false
        - label: vendorID
          value: 1613aa23
          shown: true
        - label: vendorName
          value: PSC Finance
          shown: false
    InvalidConsumerEmailExample:
      value:
        code: '10100'
        message: Invalid format for field consumer.email.
    GenerateVOETransactionsReportResponseExample:
      value:
        id: u4hstny1k25g-voetransactions
        portfolioId: dyr6weqd2yhb-2-port
        customerType: active
        customerId: 1000006677
        requestId: sfb7x1we9w
        requesterName: Decisioning API
        endUser:
          name: ABC Apartments
          address: 123 Main St
          city: Murray
          state: UT
          zip: '84123'
          phone: 555-2106
          email: customerservice@example.com
          url: example.com
        createdDate: 1588350269
        title: Mastercard Open Banking Verification Employment - Transactions
        consumerId: ac39e237c7619a4ecf014b8d399c0696
        consumerSsn: '6789'
        consumerDetails:
          id: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
          firstName: John
          middleName: Doe
          lastName: Jane
          address: 123 Marple Street
          city: Anytown
          state: PA
          zip: '17101'
          phone: '5551234567'
          ssn: '1234'
          email: john.doe@example.com
        constraints:
          reportId: j7k8qbgwsa7d-voietxverify
          reportCustomFields:
          - label: loanID
            value: '12345'
            shown: true
          - label: trackingID
            value: '5555'
            shown: true
          - label: loanType
            value: car
            shown: false
          - label: vendorID
            value: 1613aa23
            shown: true
          - label: vendorName
            value: PSC Finance
            shown: false
        type: voeTransactions
        status: inProgress
    BadCredentialsExample:
      value:
        code: '24302'
        message: Bad credentials
    GenerateVOIReportRequestExample:
      value:
        accountIds: 1000535275 1000535276
        fromDate: 1577986990
        reportCustomFields:
        - label: loanID
          value: '12345'
          shown: true
        - label: trackingID
          value: '5555'
          shown: true
        - label: loanType
          value: car
          shown: false
        - label: vendorID
          value: 1613aa23
          shown: true
        - label: vendorName
          value: PSC Finance
          shown: false
        incomeStreamConfidenceMinimum: 50
    InvalidForesightReportRequestExample:
      value:
        code: '10100'
        message: At least one of customerId or externalCustomerId must be provided; both are also allowed.
    GenerateVOIEPaystubWithTXVerifyReportResponseExample:
      value:
        id: 2f3z55zuwewm-voietxverify
        customerId: 1275320
        consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
        consumerSsn: '6789'
        consumerDetails:
          id: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
          firstName: John
          middleName: Doe
          lastName: Jane
          address: 123 Marple Street
          city: Anytown
          state: PA
          zip: '17101'
          phone: '5551234567'
          ssn: '1234'
          email: john.doe@example.com
        requesterName: Decisioning API
        endUser:
          name: ABC Apartments
          address: 123 Main St
          city: Murray
          state: UT
          zip: '84123'
          phone: 555-2106
          email: customerservice@example.com
          url: example.com
        requestId: 7a7qyps2iy
        type: voieTxVerify
        status: inProgress
        createdDate: 1579819592
        constraints:
          accountIds:
          - '1000535275'
          voieWithInterviewData:
            txVerifyInterview:
            - assetId: 6f8fb0a0-e882-4f57-b672-cf53f1397581
              accounts: []
            extractEarnings: true
            extractDeductions: false
            extractDirectDeposit: true
          reportCustomFields:
          - label: loanID
            value: '123456'
            shown: true
        customerType: active
        title: Finicity Verification of Income and Employment - Paystub (with TXVerify)
        portfolioId: 9qud7dtuzbew-2-port
    NoRegisteredApplicationExample:
      value:
        code: '50051'
        message: No registered partner applications found.
    ExpiredFinicityAppTokenExample:
      value:
        code: '10023'
        message: Expired (Finicity-App-Token)
    InvalidFieldExample:
      value:
        code: '10010'
        status: '400'
        message: Customer ID does not exist or does not belong to this partner
        user_message: One or more of the fields could not be validated. Please ensure you have entered the correct data.
        tags: ''
    InvalidValueExample:
      value:
        code: '1618'
        message: Negative or invalid value entered. Please use positive numbers only.
    InvalidConsumerSSNExample:
      value:
        code: '10100'
        message: Invalid format for field consumer.ssn.  Required format is 9 digits.
    InvalidFinicityAppTokenExample:
      value:
        code: '10022'
        message: Invalid (Finicity-App-Token)
    NoAccountForInstitutionLoginIdExample:
      value:
        code: '38007'
        message: Customer does not have any accounts associated with institutionLoginId.
    CustomerNotFoundExample:
      value:
        code: '14001'
        message: Customer not found.
    ResellerNoDataForPartnerExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Reports not found 2445583947903 resellerBilling reports'
    ExpiredTokenExample:
      value:
        code: '10023'
        message: Expired (Finicity-App-Token)
    GenerateVOIReportResponseExample:
      value:
        id: u4hstnnaewetr-voi
        portfolioId: dyr6qvqd2erw-1-port
        customerType: active
        customerId: 1000006677
        requestId: sfb7xp4wer
        requesterName: Decisioning API
        endUser:
          name: ABC Apartments
          address: 123 Main St
          city: Murray
          state: UT
          zip: '84123'
          phone: 555-2106
          email: customerservice@example.com
          url: example.com
        createdDate: 1588350269
        title: Mastercard Open Banking Verification of Income
        consumerId: ac39e237c7619a4ecf014b8d399c0696
        consumerSsn: '6789'
        consumerDetails:
          id: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
          firstName: John
          middleName: Doe
          lastName: Jane
          address: 123 Marple Street
          city: Anytown
          state: PA
          zip: '17101'
          phone: '5551234567'
          ssn: '1234'
          email: john.doe@example.com
        constraints:
          accountIds:
          - '1000535275'
          - '1000535276'
          fromDate: 1577986990
          reportCustomFields:
          - label: loanID
            value: '12345'
            shown: true
          - label: trackingID
            value: '5555'
            shown: true
          - label: loanType
            value: car
            shown: false
          - label: vendorID
            value: 1613aa23
            shown: true
          - label: vendorName
            value: PSC Finance
            shown: false
        type: voi
        status: inProgress
    ResellerInvalidDateRangeExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date is empty or null'
    ResourceNotFoundExample:
      value:
        code: '14001'
        message: Resource not found.
    ConsumerNotFoundExample:
      value:
        code: '10100'
        message: Cannot find consumer with id 1234.
    RefreshVOIEPayrollReportResponseExample:
      value:
        id: 123456789012-voiepayroll
        customerId: 1011140000
        consumerId: 656cf7083c5c06e0c125a698579f0000
        consumerSsn: '6789'
        consumerDetails:
          id: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
          firstName: John
          middleName: Doe
          lastName: Jane
          address: 123 Marple Street
          city: Anytown
          state: PA
          zip: '17101'
          phone: '5551234567'
          ssn: '1234'
          email: john.doe@example.com
        requesterName: Decisioning API
        endUser:
          name: ABC Apartments
          address: 123 Main St
          city: Murray
          state: UT
          zip: '84123'
          phone: 555-2106
          email: customerservice@example.com
          url: example.com
        requestId: 7a7qyps2iy
        type: voiePayroll
        reportStyle: credentialedPayroll
        status: inProgress
        createdDate: 1579819592
        constraints:
          payrollData:
            payrollAccountIds:
            - 018b8f10-fdf8-0ef7-ded5-34a17c34d86f
          reportCustomFields:
          - label: loanID
            value: '12345'
            shown: true
        customerType: active
        title: Mastercard Open Banking Verification of Income and Employment - Payroll
        portfolioId: 9qud7dtuzbew-2-port
    GenerateVOIEPaystubReportRequestExample:
      value:
        voieWithStatementData:
          assetIds:
          - d50ed92f-543b-431c-8286-c8b8f6556679
        reportCustomFields:
        - label: loanID
          value: '123456'
          shown: true
        - label: trackingID
          value: '5555'
          shown: true
    GenericBadRequestExample:
      value:
        code: '14020'
        message: Bad request.
    GenerateVOIEPaystubReportResponseExample:
      value:
        id: 2f3z55zuwewm-voietxverify
        portfolioId: 9qud7dtuzbew-13-port
        customerType: active
        customerId: 1275320
        requestId: 7a7qyps2iy
        requesterName: Decisioning API
        endUser:
          name: ABC Apartments
          address: 123 Main St
          city: Murray
          state: UT
          zip: '84123'
          phone: 555-2106
          email: customerservice@example.com
          url: example.com
        createdDate: 1579819592
        title: Verification of Income and Employment - Paystub
        consumerId: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
        consumerSsn: '6789'
        consumerDetails:
          id: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
          firstName: John
          middleName: Doe
          lastName: Jane
          address: 123 Marple Street
          city: Anytown
          state: PA
          zip: '17101'
          phone: '5551234567'
          ssn: '1234'
          email: john.doe@example.com
        constraints:
          voieWithStatementData:
            assetIds:
            - d50ed92f-543b-431c-8286-c8b8f6556679
            extractEarnings: true
            extractDeductions: false
            extractDirectDeposit: true
          reportCustomFields:
          - label: loanID
            value: '123456'
            shown: true
          - label: trackingID
            value: '5555'
            shown: true
        type: voieTxVerify
        status: inProgress
    InvalidConsumerPhoneExample:
      value:
        code: '10100'
        message: Invalid format for field consumer.phone.
    AccountTypeNotSupportedExample:
      value:
        code: '14020'
        message: Bad request. (Account type not supported).
    PermissiblePurposeCodeExample:
      value:
        code: '10100'
        status: '400'
        message: Permissible Purpose Code is required
    GenerateVOEPayrollReportResponseExample:
      value:
        id: 41h4nzppn47u-voepayroll
        portfolioId: 9qud7dtuzbew-1-port
        customerType: active
        customerId: 1011140000
        requestId: 7a7qyps2iy
        type: voePayroll
        reportStyle: directAPIPayroll
        requesterName: Decisioning API
        endUser:
          name: ABC Apartments
          address: 123 Main St
          city: Murray
          state: UT
          zip: '84123'
          phone: 555-2106
          email: customerservice@example.com
          url: example.com
        createdDate: 1579819592
        title: Mastercard Open Banking Verification of Employment - Payroll
        consumerId: 656cf7083c5c06e0c125a698579f0000
        consumerSsn: '6789'
        consumerDetails:
          id: 3f7ff2cf0ffb3d0cd59875e070c9b1d4
          firstName: John
          middleName: Doe
          lastName: Jane
          address: 123 Marple Street
          city: Anytown
          state: PA
          zip: '17101'
          phone: '5551234567'
          ssn: '1234'
          email: john.doe@example.com
        constraints:
          payrollData:
            payrollDataRetrievalId: uvhjy7pwa1t5
            payrollAccountIds:
            - 018bf5c9-b542-c2ba-8f92-c5c7be6be515
          reportCustomFields:
          - label: loanID
            value: '12345'
            shown: true
        status: inProgress
    ResellerPartnerNotAuthorizedExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Partner is not authorized to access resellerBilling reports for partnerId 2445583947903'
    GenerateVOIEPaystubWithTXVerifyReportRequestExample:
      value:
        accountIds: '1028361677'
        voieWithInterviewData:
          txVerifyInterview:
          - assetId: 7eb57060-6d98-4449-992d-4dd4490448f3-1236011097
        reportCustomFields:
        - label: loanID
          value: '123456'
          shown: true
    CustomerReportLimitExceedExample:
      value:
        code: '20400'
        message: The max report generation limit was exceeded for this customer.
    GeneratePayrollReportRequestExample:
      value:
        payrollData:
          ssn: '999990000'
          dob: '315576000'
          reportId: abcdefghijkl-voiepayroll
        reportCustomFields:
        - label: loanID
          value: '12345'
          shown: true
        payStatementsFromDate: 1580558400
        marketSegment: Mortgage
        purpose: '31'
    InvalidExperienceFieldExample:
      value:
        code: '10010'
        status: '400'
        message: '"experience" must be a valid GUID'
        user_message: One or more of the fields could not be validated. Please ensure you have entered the correct data.
        tags: ''
    NoConsumerForCustomerExample:
      value:
        code: '10100'
        message: Cannot find consumer for customer with id 5011115315."
    MissingFinicityAppTokenExample:
      value:
        code: '10024'
        message: Missing parameter (Finicity-App-Token)
  schemas:
    SecurityFreezeErrorMessage:
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: integer
          description: 'An error code for security freeze. Useful links: [API Errors](https://developer.mastercard.com/open-finance-us/documentation/errors/), [Aggregation Status Codes](https://developer.mastercard.com/open-finance-us/documentation/products/manage/aggregation-status-codes/).'
          format: int32
          example: 10405
        status:
          type: string
          description: A status code
          example: '403'
        message:
          type: string
          description: An error message
          example: The active security freeze for this consumer exists.
    EndUserUrl:
      type: string
      description: Reseller end user URL
      minLength: 2
      maximum: 999
      example: testurl.com
    ReportType:
      description: 'A report type. Possible values:


        * `voi`


        * `voa`


        * `voaHistory`


        * `history`


        * `voieTxVerify`


        * `voieWithReport`


        * `voieWithInterview`


        * `voieWithStatement`


        * `paystatement`


        * `preQualVoa`


        * `assetSummary`


        * `voie`


        * `transactions`


        * `statement`


        * `voiePayroll`


        * `voeTransactions`


        * `farpbfnoncra`


        * `voePayroll`


        * `cfrp`


        * `cfrb`


        * `barpcra`


        * `barpnoncra`


        * `barbcra`


        * `barbftc`


        * `barbnoncra`


        * `cfrpcra`


        * `cfrpnoncra`


        * `cracfrbcra`


        * `cfrbnoncra`


        * `cfrbftc`


        * `phrbcra`


        * `phrbnoncra`


        * `phrbftc`


        * `sbcaanalyticsnoncra`


        * `sbcabenchmarksnoncra`


        * `pripcra`


        * `pripnoncra`


        * `pribcra`


        * `pribnoncra`


        * `pribftc`

        '
      type: string
      example: voi
    ZipCode:
      type: string
      description: A ZIP code
      example: '84123'
    ReportCustomField:
      type: object
      properties:
        label:
          type: string
          description: The name of the custom field
          example: loanID
        value:
          type: string
          description: The value of the custom field
          example: '123456'
        shown:
          type: boolean
          description: If the custom field will show on the PDF or not


# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/finicity/refs/heads/main/openapi/finicity-verify-income-and-employment-api-openapi.yml