Finicity Connect Components API

Allow customers to log into their financial institutions and grant Finicity authorization

Operations 7

POST /connect-components/institutions/{institution_id}/oauth-urls Create OAuth URL #
POST /connect-components/institutions/{institution_id}/login-forms Create Login Form #
POST /connect-components/customers/{customer_id}/institution-login-ids/{institution_login_id}/reconnections Initiate Reconnection #
POST /connect-components/configurations Create Components Configuration #
GET /connect-components/configurations Get All Configurations for Current Partner #
GET /connect-components/configurations/{configuration_id} Get Configuration Details #
DELETE /connect-components/configurations/{configuration_id} Delete Configuration #

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-connect-components-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-connect-components-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open Finance Connect Components 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: Connect Components
  description: Allow customers to log into their financial institutions and grant Finicity authorization
paths:
  /connect-components/institutions/{institution_id}/oauth-urls:
    parameters:
    - $ref: '#/components/parameters/InstitutionIdPathParameter'
    post:
      summary: Create OAuth URL
      operationId: post-institutions-institutionId-oauth-urls
      tags:
      - Connect Components
      responses:
        '201':
          $ref: '#/components/responses/GenerateOAuthUrl'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
      description: Generates a new OAuth URL that can be used to connect an end-user into their direct-connection institution. The `redirectURI` will be called when the oauth session has completed. An optional configuration object can be applied by including a valid `configurationId` in the request body.
      requestBody:
        $ref: '#/components/requestBodies/OauthUrl'
  /connect-components/institutions/{institution_id}/login-forms:
    parameters:
    - $ref: '#/components/parameters/InstitutionIdPathParameter'
    post:
      summary: Create Login Form
      operationId: post-institutions-institutionId-login-forms
      tags:
      - Connect Components
      responses:
        '201':
          $ref: '#/components/responses/LoginForms'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
      description: Generate a new login form for a given institution, customer, and language.
      requestBody:
        $ref: '#/components/requestBodies/LoginForm'
  /connect-components/customers/{customer_id}/institution-login-ids/{institution_login_id}/reconnections:
    parameters:
    - $ref: '#/components/parameters/CustomerIdPathParameter'
    - $ref: '#/components/parameters/InstitutionLoginIdPathParam'
    post:
      summary: Initiate Reconnection
      operationId: post-reconnections
      tags:
      - Connect Components
      responses:
        '201':
          $ref: '#/components/responses/LoginForms'
        '203':
          $ref: '#/components/responses/MfaChallenge'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      description: "Use the Data Connect Fix API when the following conditions occur:\n  * The connection to the user's financial institution is lost.\n  * The user's credentials were updated (for any number of reasons).\n  * The user's MFA challenge has expired."
      requestBody:
        $ref: '#/components/requestBodies/NoBody'
  /connect-components/configurations:
    post:
      summary: Create Components Configuration
      operationId: post-configurations
      tags:
      - Connect Components
      responses:
        '201':
          $ref: '#/components/responses/Configuration'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      description: Optional endpoint. This endpoint is use to generate a configuration  object, which an then be passed in during the login flow. If used, the ID provided will need to be passed in the Create Login  Form or Create OAuth URL.
      requestBody:
        $ref: '#/components/requestBodies/CreateConfiguration'
    get:
      summary: Get All Configurations for Current Partner
      description: Get all previously saved Data Connect Component configurations.
      operationId: get-configurations
      tags:
      - Connect Components
      responses:
        '200':
          $ref: '#/components/responses/Configurations'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /connect-components/configurations/{configuration_id}:
    parameters:
    - $ref: '#/components/parameters/ConfigurationIdPathParameter'
    get:
      summary: Get Configuration Details
      tags:
      - Connect Components
      responses:
        '200':
          $ref: '#/components/responses/Configuration'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
      operationId: get-configurations-configurationId
      description: Returns the configuration with the specified id if the configuration exists and belongs to the partner calling this endpoint
    delete:
      summary: Delete Configuration
      tags:
      - Connect Components
      operationId: delete-configurations-configurationId
      responses:
        '204':
          $ref: '#/components/responses/NoBody'
        '401':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
      description: Removes the configuration from the database
components:
  responses:
    ResourceNotFound:
      description: The resource doesn't exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GoldStandardErrorMessage'
          examples:
            ResourceNotFoundExample:
              $ref: '#/components/examples/GoldStandardResourceNotFound'
    BadRequest:
      description: The request was rejected
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GoldStandardErrorMessage'
          examples:
            InvalidFieldExample:
              $ref: '#/components/examples/GoldStandardInvalidField'
    GenerateOAuthUrl:
      description: The returned oauth url, as well as a reference back to this resource in case modifications are needed
      content:
        application/json:
          schema:
            type: object
            description: The response object for requests to generate OAuth URLs
            required:
            - id
            - url
            - eventStreamId
            example:
              id: 8d9d8f5e-2c5f-4f49-bf9b-276a7df0367f
              url: https://example.com
              eventStreamId: 208a1170-875e-4656-85d0-27dfc3ee7137
            properties:
              id:
                type: string
                format: uuid
                example: 8d9d8f5e-2c5f-4f49-bf9b-276a7df0367f
                minLength: 36
                maxLength: 36
                description: Unique reference to the login session
              url:
                type: string
                format: uri
                example: https://example.com
                minLength: 1
                maxLength: 1024
                description: The oauth url to direct the user to
              eventStreamId:
                $ref: '#/components/schemas/EventStreamId'
    Configuration:
      description: An object used to modify the login behavior
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Configuration'
    LoginForms:
      description: Generate a new login form entry
      content:
        application/json:
          schema:
            type: object
            description: The data used by the calling application to render a login form
            example:
              id: 8d9d8f5e-2c5f-4f49-bf9b-276a7df0367f
              eventStreamId: 208a1170-875e-4656-85d0-27dfc3ee7137
              elements:
              - id: 26410b1f-0347-4d57-bb03-f44d00e785e2
                label: username
                sortOrder: 0
              - id: f2ce62c2-877f-4c26-9935-d1ab6084e6d0
                label: password
                sortOrder: 1
            properties:
              id:
                type: string
                minLength: 36
                maxLength: 36
                example: 8d9d8f5e-2c5f-4f49-bf9b-276a7df0367f
                format: uuid
                description: The unique identifier associated with this session'ed form
              eventStreamId:
                $ref: '#/components/schemas/EventStreamId'
              elements:
                type: array
                description: An array of elements that is to be rendered
                items:
                  type: object
                  minProperties: 1
                  maxProperties: 10
                  properties:
                    id:
                      type: string
                      format: uuid
                      minLength: 36
                      maxLength: 36
                      example: 26410b1f-0347-4d57-bb03-f44d00e785e2
                      description: The session specific identifier for the login form element
                    label:
                      type: string
                      description: The human-readable name of the element
                      example: Username
                      minLength: 1
                      maxLength: 512
                    sortOrder:
                      type: integer
                      default: 0
                      example: 0
                      minimum: 0
                      maximum: 10
                      description: A hint to indicate what order to render the elements in
                  required:
                  - id
                  - label
                  - sortOrder
            required:
            - id
            - elements
            - eventStreamId
    Unauthorized:
      description: The request lacks valid authentication credentials. Check "Finicity-App-Key" or "Finicity-App-Token".
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GoldStandardErrorMessage'
          examples:
            ExpiredTokenExample:
              $ref: '#/components/examples/GoldStandardExpiredToken'
            MissingFinicityAppKeyExample:
              $ref: '#/components/examples/GoldStandardMissingFinicityAppKey'
    NoBody:
      description: Empty Response Body
    MfaChallenge:
      description: MFA challenges required to log in
      content:
        application/json:
          schema:
            type: array
            items:
              type: object
              properties:
                mfaChallenges:
                  type: array
                  minItems: 1
                  description: The required MFA Challenges required in order to log in.
                  items:
                    type: object
                    required:
                    - id
                    - prompt
                    - mfaType
                    - choiceIds
                    - eventStreamId
                    properties:
                      id:
                        type: string
                        description: The unique identifier for the MFA challenge
                        format: uuid
                        example: 9082affa-d965-40be-a3ed-a320bb3467ff
                        minLength: 36
                        maxLength: 36
                      mfaType:
                        type: string
                        description: "The type of MFA challenge:\n  * TFA_TEXT:  This challenge type will present a\nsingle input box to the customer and is commonly used for things like One-Time Passwords.\n  * TFA_CHOICE: The TFA_CHOICE object represents a\nmultiple choice question and answer selection.\n  * TFA_MULTI: The TFA_MULTI challenge type will\npresent the customer with multiple images to select from.\n  * TFA_IMAGE: A TFA_IMAGE challenge will present a\ncaptcha-style image the customer will need to decipher."
                        example: TFA_TEXT
                      prompt:
                        type: string
                        description: The MFA prompt text
                        example: Which high school did you attend
                      choiceIds:
                        type: array
                        description: An array of unique identifiers for the MFA choices
                        items:
                          type: string
                          description: The unique identifier for the MFA choice
                          format: uuid
                          example: 9082affa-d965-40be-a3ed-a320bb3467ff
                          minLength: 36
                          maxLength: 36
    Configurations:
      description: Array of available configurations
      content:
        application/json:
          schema:
            type: array
            description: The array of configuration objects associated with this partner
            items:
              $ref: '#/components/schemas/Configuration'
  parameters:
    InstitutionIdPathParameter:
      name: institution_id
      in: path
      description: The financial institution id at Mastercard.
      required: true
      schema:
        type: integer
      example: 170716
    CustomerIdPathParameter:
      description: Unique identifier of the customer
      name: customer_id
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/CustomerId'
      example: '1005061234'
    InstitutionLoginIdPathParam:
      name: institution_login_id
      description: Institution login id of the customer.
      in: path
      required: true
      schema:
        type: integer
        format: int64
        example: 7008461438
    ConfigurationIdPathParameter:
      name: configuration_id
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 9082affa-d965-40be-a3ed-a320bb3467ff
        minLength: 36
        maxLength: 36
      description: The unique identifier for a configuration object
  schemas:
    ServiceAgreement:
      description: An object that contains the language the terms and conditions were present in and the date the customer accepted the terms and conditions.
      type: object
      required:
      - language
      - acceptedDate
      properties:
        language:
          description: The language translation of the terms and conditions as presented to the customer.
          type: string
          example: en
        acceptedDate:
          description: The date the customer accepted the terms and conditions. Must be a valid ISO-8601 date time.
          type: string
          format: date-time
          example: '2024-11-28T18:25:32+00:00'
    FilterAccounts:
      type: array
      description: An optional filter to apply during account activation with institutions that support legacy login forms.
      items:
        type: string
        example: Checking
        minLength: 1
        maxLength: 512
    AccountClassificationType:
      type: array
      example:
      - personal
      - business
      description: 'An optional filter to apply during account activation with institutions that support Oauth integration. Supported filters are: `personal`, `business`, and `unknown`.'
      items:
        type: string
        example: personal
    GoldStandardErrorMessage:
      required:
      - Errors
      type: object
      properties:
        Errors:
          type: object
          required:
          - Error
          properties:
            Error:
              description: Mastercard standard error message.
              type: array
              items:
                type: object
                properties:
                  Source:
                    type: string
                    description: The applications that generated the error.
                  ReasonCode:
                    type: string
                    description: A unique constant identifying the error case encountered during processing.
                  Description:
                    type: string
                    description: Short description of the ReasonCode field.
                  Recoverable:
                    type: boolean
                    description: Indicates whether this error will always be returned for this request, or retrying could change the outcome.
                  Details:
                    type: string
                    description: Where appropriate, indicates detailed information about data received and calculated during request processing, to help the user with diagnosing errors.
    Configuration:
      title: Configuration
      type: object
      description: Used to modify behavior during the login flow
      properties:
        id:
          $ref: '#/components/schemas/ConfigurationId'
        filterAccounts:
          $ref: '#/components/schemas/FilterAccounts'
        accountClassificationType:
          $ref: '#/components/schemas/AccountClassificationType'
        aoRequired:
          $ref: '#/components/schemas/AoRequired'
    ConfigurationId:
      description: Unique identifier of the configuration object
      type: string
      format: uuid
      example: 605543e1-f507-48ad-8127-95c40566597b
      minLength: 36
      maxLength: 36
    CustomerId:
      type: string
      description: A customer ID. See Add Customer API for how to create a customer ID.
      example: '1005061234'
    AoRequired:
      type: boolean
      description: When set to true, the user must explicitly permission Account Owner details at OAuth-supported institutions. If they do not, a [239] error is returned, and the login attempt is blocked. Partners are responsible for handling user re-attempt flows to ensure proper permissions are granted
      default: false
      example: true
    EventStreamId:
      type: string
      format: uuid
      description: Unique reference to the event stream used to send events to the SDK
      minLength: 36
      maxLength: 36
      example: 208a1170-875e-4656-85d0-27dfc3ee7137
  examples:
    GoldStandardInvalidField:
      value:
        Errors:
          Error:
          - Source: Connect-Components,
            ReasonCode: 10010,
            Description: All request parameters could not be validated. Ensure you are sending the correct data in your headers, query parameters, and request body.
            Recoverable: false,
            Details: One or more of the fields could not be validated. Please ensure you have entered the correct data.
    GoldStandardResourceNotFound:
      value:
        Errors:
          Error:
          - Source: Connect-Components,
            ReasonCode: 4041,
            Description: The requested entity was not found,
            Recoverable: false,
            Details: The requested entity was not found
    GoldStandardExpiredToken:
      value:
        Errors:
          Error:
          - Source: Connect-Components,
            ReasonCode: 10023,
            Description: Expired (Finicity-App-Token),
            Recoverable: false,
            Details: Expired (Finicity-App-Token)
    GoldStandardMissingFinicityAppKey:
      value:
        Errors:
          Error:
          - Source: Connect-Components,
            ReasonCode: 10026,
            Description: Missing parameter (Finicity-App-Key)
            Recoverable: false,
            Details: Missing parameter (Finicity-App-Key)
  requestBodies:
    OauthUrl:
      required: true
      content:
        application/json:
          schema:
            type: object
            description: Used to request an oauth url for a given a given institution and customer.
            required:
            - customerId
            - serviceAgreement
            - redirectURI
            properties:
              redirectURI:
                description: The `redirectURI` will be called when the oauth session has completed.
                type: string
                format: uri
                example: https://oauth.example.com/redirect
                minLength: 1
                maxLength: 1024
              customerId:
                $ref: '#/components/schemas/CustomerId'
              configurationId:
                $ref: '#/components/schemas/ConfigurationId'
              serviceAgreement:
                $ref: '#/components/schemas/ServiceAgreement'
    CreateConfiguration:
      required: true
      content:
        application/json:
          schema:
            type: object
            description: Used to generate a new configuration, which can be used during the login flow
            properties:
              filterAccounts:
                $ref: '#/components/schemas/FilterAccounts'
              accountClassificationType:
                $ref: '#/components/schemas/AccountClassificationType'
              aoRequired:
                $ref: '#/components/schemas/AoRequired'
    LoginForm:
      required: true
      description: "An optional configuration object can be applied by including a valid `configurationId` in the request body. <br><br> The preferred language translation for the login form is request with the `language` property in the request body. Supported languages are:\n  * English: `en`\n  * English-United States:'en-us`\n  * Spanish: `es`\n  * Spanish-United States: `es-us`\n  * French: `fr`\n  * French-Canada: `fr-ca`"
      content:
        application/json:
          schema:
            type: object
            description: Object used to generate a new session'ed login form.
            required:
            - language
            - customerId
            - serviceAgreement
            properties:
              language:
                type: string
                description: The preferred language translation of the requested login form. Supported languages are English:'en', English-United States:'en-us', Spanish:'es', Spanish-United States:'es-us', French:'fr', French-Canada:'fr-ca'
                example: en
              customerId:
                $ref: '#/components/schemas/CustomerId'
              configurationId:
                $ref: '#/components/schemas/ConfigurationId'
              serviceAgreement:
                $ref: '#/components/schemas/ServiceAgreement'
    NoBody:
      required: true
      content:
        application/json:
          schema:
            type:
            - object
            - 'null'
  securitySchemes:
    FinicityAppKey:
      name: Finicity-App-Key
      type: apiKey
      in: header
      description: The "Finicity-App-Key" from the developer dashboard
    FinicityAppToken:
      name: Finicity-App-Token
      type: apiKey
      in: header
      description: A token returned by the `/authentication` API