Finicity Transactions API

Fetch customer and account transactions and generate reports asynchronously

Operations 9

POST /aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions/historic Load Historic Transactions for Customer Account #
GET /aggregation/v3/customers/{customerId}/transactions Get All Customer Transactions #
GET /aggregation/customers/{customerId}/transactions/{uniqueTransactionId} Get Transaction by UniqueTransactionId #
GET /aggregation/v2/customers/{customerId}/transactions/{transactionId} Get Customer Transaction by ID #
GET /aggregation/v4/customers/{customerId}/accounts/{accountId}/transactions Get Customer Account Transactions #
POST /decisioning/v2/customers/{customerId}/transactions Generate Transactions Report for the Customer #
POST /aggregation/customers/{customerId}/recurring-transactions Get Recurring Transactions for Customer #
POST /aggregation/customers/{customerId}/transactions/refreshes Trigger Customer Account Refresh #
GET /aggregation/customers/{customerId}/transactions/refreshes/{refreshId} Get Customer Account Refresh Status #

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-transactions-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-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open Finance Transactions 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: Transactions
  description: Fetch customer and account transactions and generate reports asynchronously
paths:
  /aggregation/v1/customers/{customerId}/accounts/{accountId}/transactions/historic:
    post:
      tags:
      - Transactions
      summary: Load Historic Transactions for Customer Account
      description: 'Connect to the account''s financial institution and load up to 24 months of historic transactions for the account. Length of history varies by institution.


        This is a premium service. The billable event is a call to this service specifying a customer ID that has not been seen before by this service. (If this service is called multiple times with the same customer ID, to load transactions from multiple accounts, only one billable event has occurred.)


        The recommended timeout setting for this request is 180 seconds in order to receive a response. However, you can terminate the connection after making the call the operation will still complete. You will have to pull the account records to check for an updated aggregation attempt date to know when the refresh is complete.


        The date range sent to the institution is calculated from the account''s `createdDate`. This means that calling this service a second time for the same account normally will not add any new transactions for the account. For this reason, a second call to this service for a known account ID will usually return immediately.


        In a few specific scenarios, it may be desirable to force a second connection to the institution for a known account ID. Some examples are:


        * The institution''s policy has changed, making more transactions available

        * Finicity has now added a longer transaction history support for the institution

        * The first call encountered an error, and the resulting Aggregation Ticket has now been fixed by the Finicity Support Team


        In these cases, the POST request can contain the parameter `force=true` in the request body to force the second connection.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: LoadHistoricTransactionsForCustomerAccount
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/AccountIdParameter'
      responses:
        '203':
          $ref: '#/components/responses/MFAChallengeNeededResponse'
        '204':
          $ref: '#/components/responses/LoadHistoricTransactionsForCustomerAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /aggregation/v3/customers/{customerId}/transactions:
    get:
      tags:
      - Transactions
      summary: Get All Customer Transactions
      description: 'Get all transactions available for this customer within the given date range, across all accounts. This service supports paging and sorting by `transactionDate` (or `postedDate` if no transaction date is provided), with a maximum of 1000 transactions per request.


        Standard consumer aggregation provides up to 180 days of transactions prior to the date each account was added to the Finicity system. To access older transactions, you must first call the service Load Historic Transactions for Account.


        There is no limit for the size of the window between `fromDate` and `toDate`, however, the maximum number of transactions returned on one page is 1000.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GetAllCustomerTransactions
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/RequiredFromDateParameter'
      - $ref: '#/components/parameters/RequiredToDateParameter'
      - $ref: '#/components/parameters/DSAPI_StartParameter'
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/SortParameter'
      - $ref: '#/components/parameters/IncludePendingParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerTransactionsResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /aggregation/customers/{customerId}/transactions/{uniqueTransactionId}:
    get:
      tags:
      - Transactions
      summary: Get Transaction by UniqueTransactionId
      description: Retrieve a transaction for the given customer using uniqueTransactionId.
      operationId: GetTransactionByUniqueTransactionId
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/UniqueTransactionIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /aggregation/v2/customers/{customerId}/transactions/{transactionId}:
    get:
      tags:
      - Transactions
      summary: Get Customer Transaction by ID
      description: 'Get details for the given transaction.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GetCustomerTransaction
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/TransactionIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /aggregation/v4/customers/{customerId}/accounts/{accountId}/transactions:
    get:
      tags:
      - Transactions
      summary: Get Customer Account Transactions
      description: 'Get all transactions available for this customer account within the given date range. This service supports paging and sorting by `transactionDate` (or `postedDate` if no transaction date is provided), with a maximum of 1000 transactions per request.


        Standard consumer aggregation provides up to 180 days of transactions prior to the date each account was added to the Finicity system.

        There is no limit for the size of the window between `fromDate` and `toDate`, however, the maximum number of transactions returned on one page is 1000.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GetCustomerAccountTransactions
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/AccountIdParameter'
      - $ref: '#/components/parameters/RequiredFromDateParameter'
      - $ref: '#/components/parameters/RequiredToDateParameter'
      - $ref: '#/components/parameters/DSAPI_StartParameter'
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/SortParameter'
      - $ref: '#/components/parameters/IncludePendingParameter'
      - $ref: '#/components/parameters/ShowDailyBalanceParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerTransactionsResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /decisioning/v2/customers/{customerId}/transactions:
    post:
      tags:
      - Transactions
      summary: Generate Transactions Report for the Customer
      description: 'Generate a Transaction Report for the given accounts under the given customer. This service retrieves up to 24 months of transaction history for the given customer. It then uses this information to generate the Transaction Report.


        This is a premium service. A billable event will be created upon the successful generation of the Transactions Report.


        Before calling this API, a consumer must be created for the given customer ID (see Consumers APIs).


        There cannot be more than 24 months between `fromDate` and `toDate`.


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GenerateTransactionsReport
      parameters:
      - $ref: '#/components/parameters/ReportCallbackUrlParameter'
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/RequiredTransactionReportFromDateParameter'
      - $ref: '#/components/parameters/RequiredTransactionReportToDateParameter'
      - $ref: '#/components/parameters/IncludePendingParameter'
      requestBody:
        $ref: '#/components/requestBodies/GenerateTransactionsReportRequest'
      responses:
        '202':
          $ref: '#/components/responses/GenerateTransactionsReportResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/SecurityFreezeErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /aggregation/customers/{customerId}/recurring-transactions:
    post:
      tags:
      - Transactions
      summary: Get Recurring Transactions for Customer
      description: 'Identify recurring debit and credit transactions within an account or set of accounts


        _Supported regions_: ![🇺🇸](https://flagcdn.com/20x15/us.png)'
      operationId: GetRecurringTransactions
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      requestBody:
        $ref: '#/components/requestBodies/GetRecurringTransactionRequest'
      responses:
        '200':
          $ref: '#/components/responses/GetRecurringTransactionsResponse'
        '400':
          $ref: '#/components/responses/GetRecurringTransactionsBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/AuthenticationUnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/GetRecurringTransactionsResourceNotFoundErrorResponse'
  /aggregation/customers/{customerId}/transactions/refreshes:
    post:
      tags:
      - Transactions
      summary: Trigger Customer Account Refresh
      description: "This API asynchronously initiates either a standard refresh or a historical data load using the provided `institutionLoginId` or specific `accountIds`. It supports default durations of 6 months for standard refresh and 24 months for historical load or a custom date range for targeted data retrieval. The behavior depends on the provided `mode` value.  \nClient apps are not permitted to automate calls to the Refresh services. Active accounts are automatically refreshed by Finicity once per day. Because many financial institutions only post transactions once per day, calling Refresh repeatedly is usually a waste of resources and is not recommended.  \nApps may call Refresh services for a specific customer when there is a specific business case for the need of data that is up to date as of the moment. Please discuss with your account manager and systems engineer for further clarification.        \n\n_Supported regions_: ![\U0001F1FA\U0001F1F8](https://flagcdn.com/20x15/us.png)"
      operationId: refreshTransactions
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      requestBody:
        $ref: '#/components/requestBodies/TransactionRefreshRequest'
      responses:
        '202':
          $ref: '#/components/responses/TransactionRefreshResponse'
        '400':
          $ref: '#/components/responses/TransactionRefreshBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/TransactionRefreshNotFoundErrorResponse'
  /aggregation/customers/{customerId}/transactions/refreshes/{refreshId}:
    get:
      tags:
      - Transactions
      summary: Get Customer Account Refresh Status
      description: "Fetch the current status of the transaction refresh request by refreshId.  \nStatus can also be received through webhook notification by subscribing to the `data-refresh.transaction.status-changed` event (see [OBWMS](https://developer.mastercard.com/open-finance-us/documentation/webhooks/obwms/#overview-of-obwms) documentation for more details)  \n\n_Supported regions_: ![\U0001F1FA\U0001F1F8](https://flagcdn.com/20x15/us.png)"
      operationId: getTransactionRefreshStatus
      parameters:
      - $ref: '#/components/parameters/CustomerIdParameter'
      - $ref: '#/components/parameters/TransactionRefreshIDParameter'
      responses:
        '200':
          $ref: '#/components/responses/TransactionRefreshStatusResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/TransactionRefreshStatusNotFoundErrorResponse'
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'
    BothCraAndFtcPurposeTrueExample:
      value:
        code: '10100'
        status: '400'
        message: forCRAPurpose and forFTCPurpose may not both be TRUE.
    SecurityFreezeErrorExample:
      value:
        code: '10405'
        status: '403'
        message: The active security freeze for this consumer exists.
    TransactionNotFoundExample:
      value:
        code: 24553
        message: Transaction not found.
    MissingFieldExample:
      value:
        code: '10005'
        message: Missing parameter (partnerId)
    TransactionRefreshStatusFailedResponse:
      value:
        refreshId: bec83f1a-5f65-44f5-8f00-b4a0fc60c2ee
        customerId: '5000902316'
        accounts:
        - accountId: '5011648377'
          institutionLoginId: '1007302745'
          institutionId: '4222'
          code: 325
          message: Your data is currently being aggregated and is inaccessible at the moment. Please wait several minutes and keep trying.
        - accountId: '5011648378'
          institutionLoginId: '1007302755'
          institutionId: '4233'
          code: 44000
          message: The request has been accepted for processing.
        mode: standard
        status: FAILED
        totalCount: 2
        successCount: 0
        failedCount: 2
    ResellerInvalidDateRangeLessThanZeroExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date less than or equal to zero'
    NoAccountForCustomerIdExample:
      value:
        code: 38003
        message: Customer does not have any accounts
    InvalidConsumerEmailExample:
      value:
        code: '10100'
        message: Invalid format for field consumer.email.
    NotAuthorizedExample:
      value:
        code: '10021'
        message: You are not authorized.
    BadCredentialsExample:
      value:
        code: '24302'
        message: Bad credentials
    GenerateTransactionsReportRequestExample:
      value:
        accountIds: 1027339038 1027339039
        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
        fromDate: 1580558400
        toDate: 1643720017
        findTransaction:
          findTransactionDescriptionMemo: Payment to PSC Finance
          findTransactionAmountFrom: 100.0
          findTransactionAmountTo: 200.0
          findTransactionCategory:
          - Payment
          - Transfer
    TransactionRefreshStatusCompletedResponse:
      value:
        refreshId: bec83f1a-5f65-44f5-8f00-b4a0fc60c2cc
        customerId: '5000902316'
        accounts:
        - accountId: '5011648377'
          institutionLoginId: '1007302745'
          institutionId: '4222'
          aggregationStatusCode: 0
          aggregationSuccessDate: '2025-09-10T06:06:20.042Z'
        - accountId: '5011648378'
          institutionLoginId: '1007302755'
          institutionId: '4233'
          code: 325
          message: Your data is currently being aggregated and is inaccessible at the moment. Please wait several minutes and keep trying.
        mode: standard
        status: COMPLETED
        totalCount: 2
        successCount: 1
        failedCount: 1
    InvalidForesightReportRequestExample:
      value:
        code: '10100'
        message: At least one of customerId or externalCustomerId must be provided; both are also allowed.
    GenerateTransactionsReportResponseExample:
      value:
        id: dnuru2ua2trs-transactions
        portfolioId: hupvwpdzr9dq-16-port
        customerType: testing
        customerId: 1000018865
        requestID: ky2nhsufhv
        requesterName: Decisioning API Tests
        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: 1594678007
        title: Mastercard Open Banking Transactions Report
        consumerId: a925b07c9e028c680ad9c1d18d2e7199
        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:
          - '1000075473'
          fromDate: 1578952809
          toDate: 1594677609
          includePending: 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
          findTransaction:
            findTransactionDescriptionMemo: Payment to PSC Finance
            findTransactionAmountFrom: 100.01
            findTransactionAmountTo: 200.0
            findTransactionCategory:
            - Payment
            - Transfer
        type: transactions
        status: inProgress
    TransactionRefreshStatusInProgressResponse:
      value:
        refreshId: bec83f1a-5f65-44f5-8f00-b4a0fc60c2dd
        customerId: '5000902316'
        accounts:
        - accountId: '5011648377'
          institutionLoginId: '1007302745'
          institutionId: '4222'
          aggregationStatusCode: 0
          aggregationSuccessDate: '2025-09-10T06:06:20.042Z'
        - accountId: '5011648378'
          institutionLoginId: '1007302745'
          institutionId: '4222'
        mode: standard
        status: IN_PROGRESS
        totalCount: 2
        successCount: 1
        failedCount: 0
    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'
    NoDataFoundExample:
      value:
        code: 10008
        message: data not found
    ExpiredTokenExample:
      value:
        code: '10023'
        message: Expired (Finicity-App-Token)
    ResellerInvalidDateRangeExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date is empty or null'
    InvalidInputParameterExample:
      value:
        code: 10100
        message: Invalid parameter (<parameter name>)
    ResourceNotFoundExample:
      value:
        code: '14001'
        message: Resource not found.
    ConsumerNotFoundExample:
      value:
        code: '10100'
        message: Cannot find consumer with id 1234.
    NoAccountForCustomerExample:
      value:
        code: 10005
        message: Customer does not have the specified account (<message>)
    InvalidDateRangeExample:
      value:
        code: 41002
        message: 'Invalid date range: <message>'
    GenericBadRequestExample:
      value:
        code: '14020'
        message: Bad request.
    MissingParameterExample:
      value:
        code: 10005
        message: Missing parameter (<parameter name>)
    InvalidCredentialsExample:
      value:
        code: '10001'
        message: Invalid credentials
    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
    ResellerPartnerNotAuthorizedExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Partner is not authorized to access resellerBilling reports for partnerId 2445583947903'
    CustomerReportLimitExceedExample:
      value:
        code: '20400'
        message: The max report generation limit was exceeded for this customer.
    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'
    TransactionRefreshStatusDetails:
      type: object
      description: Transaction refresh status
      properties:
        refreshId:
          $ref: '#/components/schemas/TransactionRefreshID'
        customerId:
          $ref: '#/components/schemas/CustomerId'
        accounts:
          type: array
          description: List of account refresh status details for the transaction refresh request.
          items:
            type: object
            properties:
              accountId:
                $ref: '#/components/schemas/AccountId'
              institutionLoginId:
                $ref: '#/components/schemas/InstitutionLoginId'
              institutionId:
                $ref: '#/components/schemas/InstitutionId'
              aggregationStatusCode:
                $ref: '#/components/schemas/AggregationStatusCode'
              aggregationSuccessDate:
                $ref: '#/components/schemas/DateTimeWithZone'
        mode:
          $ref: '#/components/schemas/TransactionRefreshMode'
        status:
          $ref: '#/components/schemas/TransactionRefreshRequestStatus'
        totalCount:
          $ref: '#/components/schemas/AccountCount'
        successCount:
          $ref: '#/components/schemas/TransactionRefreshSuccessCount'
        failedCount:
          $ref: '#/components/schemas/TransactionRefreshFailedCount'
    TransactionPostedDate:
      type: integer
      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-finance-us/documentation/errors/best-practices/).'
      format: int64
      example: 1607450357
    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
          example: true
    AccountIds:
      description: A list of account IDs
      type: object
      properties:
        accountIds:
          type: array
          items:
            $ref: '#/components/schemas/AccountId'
          description: List of account IDs
    VOIReportConstraintsOut:
      type: object
      properties:
        accountIds:
          $ref: '#/components/schemas/ReportAccountIds'
        reportCustomFields:
          $ref: '#/components/schemas/ReportCustomFields'
        fromDate:
          $ref: '#/components/schemas/UnixDate'
        incomeStreamConfidenceMinimum:
          $ref: '#/components/schemas/IncomeStreamConfidenceMinimum'
    RecurringTransactionsDetails:
      description: Recurring transactions details
      type: object
      properties:
        customerRecurringTransactions:
          $ref: '#/components/schemas/CustomerRecurringTransactions'
        accountRecurringTransactions:
          type: array
          items:
            $ref: '#/components/schemas/AccountRecurringTransactions'
    Transactions:
      description: A list of transactions
      required:
      - found
      - displaying
      - moreAvailable
      - fromDate
      - toDate
      - sort
      - transactions
      type: object
      properties:
        found:
          $ref: '#/components/schemas/FoundResults'
        displaying:
          $ref: '#/components/schemas/DisplayingResults'
        moreAvailable:
          $ref: '#/components/schemas/MoreResultsAvailableForTransactions'
        fromDate:
          $ref: '#/components/schemas/TransactionsFromDate'
        toDate:
          $ref: '#/components/schemas/TransactionsToDate'
        sort:
          type: string
          description: Value of the sort request parameter that generated this response
          example: desc
        transactions:
          description: The array of transactions
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
        dailyBalances:
          description: Array of daily beginning and ending account balances for each day that transactions are recorded
          type: array
          items:
            $ref: '#/components/schemas/DailyBalance'
    NumericCustomerId:
      type: integer
      format: int64
      description: A customer ID represented as a number. See Add Customer API for how to create a customer ID.
      example: 1005061234
    TransactionsReportConstraintsOut:
      type: object
      properties:
        accountIds:
          $ref: '#/components/schemas/ReportAccountIds'
        fromDate:
          $ref: '#/components/schemas/UnixDate'
        toDate:
          $ref: '#/components/schemas/UnixDate'
        includePending:
          $ref: '#/components/schemas/IncludePending'
        reportCustomFields:
          $ref: '#/components/schemas/ReportCustomFields'
        findTransaction:
          $ref: '#/components/schemas/FindTransactionConstraints'
    DisplayingResults:
      type: integer
      description: The number of results returned
      example: 1
    ConsumerId:
      type: string
      description: A consumer ID. See Create Consumer API for how to create a consumer ID.
      example: 0bf46322c167b562e6cbed9d40e19a4c
    BaseReportAckWithPortfolioId:
      description: Properties shared by all generated reports having a portfolio ID
      allOf:
      - $ref: '#/components/schemas/BaseReportAck'
      - type: object
        properties:
          portfolioId:
            $ref: '#/components/schema

# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/finicity/refs/heads/main/openapi/finicity-transactions-api-openapi.yml