Finicity Aggregation (Accounts & Transactions) API

Consumer-permissioned account and transaction aggregation across banks, credit unions, cards, loans and investment accounts, delivering account details, balances and categorized transactions.

OpenAPI Specification

finicity-openbanking-us-openapi-original.yml Raw ↑
openapi: 3.0.3
info:
  title: Open Finance
  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

tags:
  - name: Accounts
    description: Fetch or refresh customer accounts
  - name: 'Accounts (Simple)'
    description: Fetch simple customer accounts
  - name: Account Validation Assistance
    description: Micro entries and account verification
  - name: App Registration
    description: Register and assign apps to customers
  - name: Authentication
    description: Generate authentication tokens and manage credentials
  - name: Balance Analytics
    description: Balance Analytics for businesses
  - name: Bank Statements
    description: Fetch account statements and generate reports asynchronously
  - name: Businesses API
    description:
      Create and manage business associated with customers in order to use
      Balance Analytics or Cash Flow Analytics
  - name: Cash Flow
    description: Generate cash flow reports asynchronously
  - name: Cash Flow Analytics
    description: Cash Flow Analytics for business
  - name: Connect
    description:
      Allow customers to log into their financial institutions and grant
      Finicity authorization
  - name: Connect Components
    description:
      Allow customers to log into their financial institutions and grant
      Finicity authorization
  - name: Consumer Foresight
    description: Generate consumer foresight analytics reports
  - name: Consumers
    description:
      Create and manage consumers associated with customers in order to use
      report services
  - name: Customers
    description: Enroll and manage customers
  - name: Customer Authorization Details
    description: APIs to retrieve customer authorization details
  - name: Identity
    description:
      Match the request details to the Institution account holder details
  - name: Institutions
    description: Search and fetch financial institutions
  - name: Payments
    description: Fetch ACH details and account balances
  - name: Pay Statements
    description: Upload pay statements
  - name: Payment History Report
    description: Payment History Report for business
  - name: Payment Success Indicator
    description: Predict a transaction's likelihood to settle
  - name: Payment Enablement Bundle
    description: Any or all of the Payments endpoints in one API call
  - name: Portfolios
    description: Generate portfolios of the most recent reports
  - name: Reports
    description: Fetch generated reports when ready
  - name: Third Party Access
    description: Generate and manage access keys for other partners
  - name: Transactions
    description:
      Fetch customer and account transactions and generate reports
      asynchronously
  - name: Transfer
    description: Fetch details of the deposit and bill pay switches
  - name: TxPush
    description: Manage TxPush subscriptions
  - name: Verify Assets
    description: Generate asset reports asynchronously
  - name: Verify Income and Employment
    description: Generate income and employment reports asynchronously
  - name: Transaction Data Enrichment
    description: Enhance the transaction data set
  - name: Small Business Credit Analytics
    description: Fetch merchant location matches and generate reports
  - name: Webhook Subscription
    description: APIs for Managing Partner Webhook Event Subscriptions
  - name: Data Sharing Consent
    description: Manage data sharing consents

security:
  - FinicityAppKey: []
    FinicityAppToken: []

paths:
  /aggregation/v2/partners/authentication:
    post:
      tags:
        - Authentication
      summary: Create Access Token
      description: >-
        Send Partner ID and Partner Secret to the Partner Authentication service
        to obtain a token for accessing Finicity APIs.

        * The token is valid for two hours and is required on all calls to the
        Finicity APIs

        * As a best practice, use a single token for all calls. Assign a
        timestamp for each token, and then check the current timestamp before
        making any calls. If the token is greater than 90 minutes, generate a
        new one.

        * โš ๏ธ After five failed attempts to authenticate, your account will be
        locked. To reset your account, you can report a support issue using the
        support.finicity.com portal. Alternatively, contact your Client Success
        Manager or your onboarding representative.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: CreateToken
      requestBody:
        $ref: '#/components/requestBodies/CreateTokenRequest'
      responses:
        '200':
          $ref: '#/components/responses/CreateTokenResponse'
        '400':
          $ref: '#/components/responses/GeneralBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/AuthenticationUnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/PartnerNotFoundResponse'
      security:
        - FinicityAppKey: []
    put:
      tags:
        - Authentication
      summary: Modify Partner Secret
      description: >-
        Change the Partner Secret used to authenticate this partner.


        The secret does not expire, but can be changed by calling this API. A
        valid Partner Secret may contain upper and lowercase characters,
        numbers, and the characters !, @, #, $, %, &, *, _, -, +. It must
        include at least one number and at least one letter, and its length
        should be between 12 and 255 characters.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: ModifyPartnerSecret
      requestBody:
        $ref: '#/components/requestBodies/ModifyPartnerSecretRequest'
      responses:
        '204':
          $ref: '#/components/responses/ModifyPartnerSecretResponse'
        '400':
          $ref: '#/components/responses/ModifyPartnerSecretBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/AuthenticationUnauthorizedErrorResponse'
      security:
        - FinicityAppKey: []
  /connect/v2/generate:
    post:
      tags:
        - Connect
      summary: Generate Data Connect URL
      description: >-
        Generate a Data Connect URL link to add within your own applications.


        Optional Parameters:

        * `experience`: Configure different customer experiences per Data
        Connect session by changing the brand, color, logo, icon, the type of
        credit decisioning report to generate after the session ends, and more.

        * `language`: By default, the Data Connect application is in English.
        You don't need to pass  this parameter unless you want to translate Data
        Connect into one of our supported languages.

          * Spanish (United States)
          * French (Canada)


        MVS Developers: You can pre-populate the consumer's SSN on the Find
        employment records page at the beginning of the MVS payroll app. Pass
        the SSN value for the consumer in the body of the request call.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GenerateConnectUrl
      requestBody:
        $ref: '#/components/requestBodies/GenerateConnectUrlRequest'
      responses:
        '200':
          $ref: '#/components/responses/GenerateConnectUrlResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
  /connect/v2/generate/lite:
    post:
      tags:
        - Connect
      summary: Generate Lite Data Connect URL
      description: >-
        Data Connect Lite is a variation of Data Connect Full (`POST
        /connect/v2/generate`), which has a limited set of features.

        * Sign in, user's credentials, and Multi-Factor Authentication (MFA)

        * No user account management


        The Data Connect Web SDK isn't a requirement when using Data Connect
        lite. However, if you want to use the SDK events, routes, and user
        events, then you must integrate with the Data Connect Web SDK.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GenerateLiteConnectUrl
      requestBody:
        $ref: '#/components/requestBodies/GenerateLiteConnectUrlRequest'
      responses:
        '200':
          $ref: '#/components/responses/GenerateConnectUrlResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
  /connect/v2/generate/fix:
    post:
      tags:
        - Connect
      summary: Generate Fix Data Connect URL
      description: >-
        Use the Data Connect Fix API when the following conditions occur:

        * The connection to the user's financial institution is lost

        * The user's credentials were updated (for any number of reasons)

        * The user's MFA challenge has expired


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GenerateFixConnectUrl
      requestBody:
        $ref: '#/components/requestBodies/GenerateFixConnectUrlRequest'
      responses:
        '200':
          $ref: '#/components/responses/GenerateConnectUrlResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  /connect/v2/send/email:
    post:
      tags:
        - Connect
      summary: Send Data Connect Email
      description: >-
        Same as Data Connect Full (`POST /connect/v2/generate`) but send a
        Connect email to a consumer.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: SendConnectEmail
      requestBody:
        $ref: '#/components/requestBodies/SendConnectEmailRequest'
      responses:
        '200':
          $ref: '#/components/responses/SendConnectEmailResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
  /connect/v2/generate/jointBorrower:
    post:
      tags:
        - Connect
      summary: Generate Data Connect URL - Joint Borrower
      description: >-
        Same as Data Connect Full (`POST /connect/v2/generate`) but for joint
        borrowers.


        MVS prompts both the primary and joint borrower to enter each of their
        financial, payroll, and paystub information in the same Data Connect
        session.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GenerateJointBorrowerConnectUrl
      requestBody:
        $ref: '#/components/requestBodies/GenerateJointBorrowerConnectUrlRequest'
      responses:
        '200':
          $ref: '#/components/responses/GenerateJointBorrowerConnectUrlResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
  /connect/v2/generate/microentry/verify:
    post:
      tags:
        - Connect
      summary: 'Account Validation Assistant User Verification of Microdeposits'
      description: >-
        The UI re-engages the consumer to enter two microdeposit amounts found
        in their account and validates them.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: VerifyMicroEntryMicrodeposit
      requestBody:
        $ref: '#/components/requestBodies/MicroEntryVerifyRequest'
      responses:
        '200':
          $ref: '#/components/responses/MicroEntryVerifyUrlResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
  /connect/generate/transfer/bill-pay-switch:
    post:
      tags:
        - Connect
      summary: Generate Connect Transfer URL for Bill Pay Switch
      description: >-
        Generate a Connect Transfer URL which you can use in your application to
        allow end users to set up a bill pay switch.
      operationId: GenerateTransferBillPaySwitchUrl
      requestBody:
        $ref: '#/components/requestBodies/ConnectGenerateTransferBillPaySwitch'
      responses:
        '200':
          $ref: '#/components/responses/ConnectGenerateTransferBillPaySwitchResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
  /connect/generate/transfer/deposit-switch:
    post:
      tags:
        - Connect
      summary: Generate Connect Transfer URL for Deposit Switch
      description: >-
        Generate a Connect Transfer URL which you can use in your application to
        allow end users to set up a deposit switch.
      operationId: GenerateTransferDepositSwitchUrl
      requestBody:
        $ref: '#/components/requestBodies/ConnectGenerateTransferDepositSwitch'
      responses:
        '200':
          $ref: '#/components/responses/ConnectGenerateTransferDepositSwitchResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'

  /connect/v2/send/email/jointBorrower:
    post:
      tags:
        - Connect
      summary: Send Data Connect Email - Joint Borrower
      description: >-
        Same as Data Connect Joint Borrower (`POST
        /connect/v2/generate/jointBorrower`) but send a Data Connect email  to
        at least one of the joint borrower's email addresses.


        When the consumer opens the email, MVS prompts both the primary and
        joint borrower to enter each of their financial, payroll, and paystub
        information in the same Data Connect session.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: SendJointBorrowerConnectEmail
      requestBody:
        $ref: '#/components/requestBodies/SendJointBorrowerConnectEmailRequest'
      responses:
        '200':
          $ref: '#/components/responses/SendConnectEmailResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
  /aggregation/v2/customers/testing:
    post:
      tags:
        - Customers
      summary: Add Testing Customer
      description: >-
        Enroll a testing customer (Test Drive accounts).


        For using testing customers with FinBank OAuth, you must register a test
        application with your systems engineer or account manager. Then, use
        that testing `applicationId` when creating testing customers.


        Testing Customers can access FinBank profiles (except "FinBank Billable"
        profiles), and cannot access live financial institutions.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: AddTestingCustomer
      requestBody:
        $ref: '#/components/requestBodies/AddCustomerRequest'
      responses:
        '201':
          $ref: '#/components/responses/AddCustomerResponse'
        '400':
          $ref: '#/components/responses/AddCustomerBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '409':
          $ref: '#/components/responses/AddCustomerConflictErrorResponse'
  /aggregation/v2/customers/active:
    post:
      tags:
        - Customers
      summary: Add Customer
      description: >-
        Enroll an active customer, which is the actual owner of one or more
        real-world accounts. This is a billable customer.


        Active customers must use the "FinBank Billable" profiles for testing
        purposes.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: AddCustomer
      requestBody:
        $ref: '#/components/requestBodies/AddCustomerRequest'
      responses:
        '201':
          $ref: '#/components/responses/AddCustomerResponse'
        '400':
          $ref: '#/components/responses/AddCustomerBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '409':
          $ref: '#/components/responses/AddCustomerConflictErrorResponse'
  /aggregation/v1/customers:
    get:
      tags:
        - Customers
      summary: Get Customers
      description: >-
        Find all customers enrolled by the current partner, where the search
        text is found in the customer's username or any combination of
        `firstName` and `lastName` fields. If no search text is provided, all
        customers will be returned.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GetCustomers
      parameters:
        - $ref: '#/components/parameters/CustomerUsernameParameter'
        - $ref: '#/components/parameters/CustomerTypeParameter'
        - $ref: '#/components/parameters/CustomerSearchParameter'
        - $ref: '#/components/parameters/DSAPI_StartParameter'
        - $ref: '#/components/parameters/LimitParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomersResponse'
        '400':
          $ref: '#/components/responses/GetCustomerBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/GetCustomerResourceNotFoundResponse'
  '/aggregation/v1/customers/{customerId}/application':
    get:
      tags:
        - Customers
      summary: Get Customer With App Data by ID
      description: >-
        Retrieve a customer along with additional details about the OAuth
        application.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GetCustomerWithAppData
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerWithAppDataResponse'
        '400':
          $ref: '#/components/responses/GetCustomerAppDataBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/GetCustomerAppDataResourceNotFoundErrorResponse'
  '/aggregation/v1/customers/{customerId}':
    get:
      tags:
        - Customers
      summary: Get Customer by ID
      description: >-
        Retrieve a customer by ID.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GetCustomer
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerResponse'
        '400':
          $ref: '#/components/responses/GetCustomerByIdBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
    put:
      tags:
        - Customers
      summary: Modify Customer by ID
      description: >-
        Modify an enrolled customer by ID.


        You must specify either `firstName`, `lastName`, or both in the request.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: ModifyCustomer
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
      requestBody:
        $ref: '#/components/requestBodies/ModifyCustomerRequest'
      responses:
        '204':
          $ref: '#/components/responses/ModifyCustomerResponse'
        '400':
          $ref: '#/components/responses/ModifyCustomerBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/DisputeStatementErrorResponse'
        '409':
          $ref: '#/components/responses/ModifyCustomerConflictErrorResponse'
    delete:
      tags:
        - Customers
      summary: Delete Access to Customer by ID
      description: >-
        Delete access to a customer and all associated accounts.

        This will delete access to the customer and all their linked accounts.
        The customer data will no longer be accessible. Any customer data
        already collected will be retained in accordance with our enterprise
        data retention policy consistent with legal and business purposes.

        โš ๏ธ Use this service carefully! It will not pause for confirmation before
        performing the operation!

        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: DeleteCustomer
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
      responses:
        '204':
          $ref: '#/components/responses/DeleteCustomerResponse'
        '400':
          $ref: '#/components/responses/DeleteCustomerAppDataBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/DeleteCustomerResourceNotFoundErrorResponse'
  '/decisioning/v1/customers/{customerId}/consumer':
    post:
      tags:
        - Consumers
      summary: Create Consumer for the Customer
      description: >-
        Create a consumer record associated with the given customer. A consumer
        persists as the owner of any reports that are generated, even after the
        original customer is deleted from the system.


        Along with the required fields, the following fields are conditionally
        required:

        1. **SSN & Birthday(DOB):** 
            - Either `ssn` or `birthday` must be provided. Both can also be
        provided together.

        2. **Phone & Email:** 
            - Either `phone` or `email` must be provided. Both can also be
        provided together.


        A consumer must be created for the given customer before creating a CRA
        report through our Generate Report services.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: CreateConsumer
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
      requestBody:
        $ref: '#/components/requestBodies/CreateConsumerRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateConsumerResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
        '409':
          $ref: '#/components/responses/ConflictErrorResponse'
    get:
      tags:
        - Consumers
      summary: Get the Consumer Record for the Given Customer
      description: >-
        Get the details of a consumer record by customer ID.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GetConsumerForCustomer
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetConsumerForCustomerResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  '/decisioning/v1/consumers/{consumerId}':
    get:
      tags:
        - Consumers
      summary: Get Consumer by ID
      description: >-
        Get the details of a consumer record by consumer ID.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GetConsumer
      parameters:
        - $ref: '#/components/parameters/ConsumerIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetConsumerResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
    put:
      tags:
        - Consumers
      summary: Modify Consumer by ID
      description: >-
        Modify an existing consumer. Fields that are not specified will be left
        unchanged.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: ModifyConsumer
      parameters:
        - $ref: '#/components/parameters/ConsumerIdParameter'
      requestBody:
        $ref: '#/components/requestBodies/ModifyConsumerRequest'
      responses:
        '204':
          $ref: '#/components/responses/ModifyConsumerResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  '/aggregation/v1/customers/{customerId}/institutionLogins/{institutionLoginId}/accounts':
    get:
      tags:
        - Accounts
      summary: Get Customer Accounts by Institution Login ID
      description: >-
        Get all accounts associated with the given institution login. All
        accounts returned are accessible by a single set of credentials on a
        single institution.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GetCustomerAccountsByInstitutionLogin
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
        - $ref: '#/components/parameters/InstitutionLoginIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerAccountsResponse'
        '400':
          $ref: '#/components/responses/GetAccountsInstitutionIdBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/GetAccountsInstitutionIdResourceNotFoundErrorResponse'
    post:
      tags:
        - Accounts
      summary: Refresh Customer Accounts by Institution Login ID
      description: >-
        Refresh account and transaction data for all accounts associated with a
        given `institutionLoginId` with a connection to the institution.


        Client 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.


        Apps 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.


        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.


        Note: Do not use this service if you use Data Access Tiers.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: RefreshCustomerAccountsByInstitutionLogin
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
        - $ref: '#/components/parameters/InstitutionLoginIdParameter'
        - $ref: '#/components/parameters/ToDateParameterForRefreshAccounts'
        - $ref: '#/components/parameters/FromDateParameterForRefreshAccounts'
      responses:
        '200':
          $ref: '#/components/responses/RefreshCustomerAccountsResponse'
        '400':
          $ref: '#/components/responses/GenericBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  '/aggregation/v2/customers/{customerId}/institutionLogins/{institutionLoginId}/accounts':
    post:
      tags:
        - Accounts
      summary:
        Refresh Customer Accounts by Institution Login ID for Data Access Tiers
      description: >-
        Refresh account and transaction data for all accounts associated with a
        given `institutionLoginId` with a connection to the institution. Client
        apps are not permitted to automate calls to the Refresh services. Active
        accounts are automatically refreshed by Finicity once per day.


        Apps 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.


        Note: Use this service for Data Access Tiers ASD, AFD and ATD.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: RefreshCustomerAccountsByInstitutionLoginV2
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
        - $ref: '#/components/parameters/InstitutionLoginIdParameter'
      responses:
        '204':
          $ref: '#/components/responses/RefreshCustomerV2AccountsResponse'
        '400':
          $ref: '#/components/responses/GenericBadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'

  '/aggregation/v1/customers/{customerId}/institutionLogins/{institutionLoginId}':
    delete:
      tags:
        - Accounts
      summary: Delete Access to Customer Accounts by Institution Login ID
      description: >-
        This will delete access to the underlying account(s) under a given
        Institution Login ID. The customer data will no longer be accessible.
        Any customer data already collected will be retained in accordance with
        our enterprise retention policy consistent with legal and business
        purposes.

        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: DeleteCustomerAccountsByInstitutionLogin
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
        - $ref: '#/components/parameters/InstitutionLoginIdParameter'
      responses:
        '204':
          $ref: '#/components/responses/DeleteCustomerAccountsByInstitutionLoginResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  '/aggregation/v2/customers/{customerId}/accounts/{accountId}':
    get:
      tags:
        - Accounts
      summary: Get Customer Account by ID
      description: >-
        Get a customer account by ID.


        _Supported regions_: ![๐Ÿ‡บ๐Ÿ‡ธ](https://flagcdn.com/20x15/us.png)
      operationId: GetCustomerAccount
      parameters:
        - $ref: '#/components/parameters/CustomerIdParameter'
        - $ref: '#/components/parameters/AccountIdParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetCustomerAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundErrorResponse'
  '/aggregation/v1/customers/{customerId}/accounts/{accountId}':
    delete:
      tags:
        - Accounts
      summary: Delete Access to Customer Account by ID
      description: >-
        This will delete access to a specific account only. If there are
        multiple permissioned accounts, then partners and their cust

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