Finicity Connect API

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

Operations 11

POST /connect/v2/generate Generate Data Connect URL #
POST /connect/v2/generate/lite Generate Lite Data Connect URL #
POST /connect/v2/generate/fix Generate Fix Data Connect URL #
POST /connect/v2/send/email Send Data Connect Email #
POST /connect/v2/generate/jointBorrower Generate Data Connect URL - Joint Borrower #
POST /connect/v2/generate/microentry/verify Account Validation Assistant User Verification of Microdeposits #
POST /connect/generate/transfer/bill-pay-switch Generate Connect Transfer URL for Bill Pay Switch #
POST /connect/generate/transfer/deposit-switch Generate Connect Transfer URL for Deposit Switch #
POST /connect/v2/send/email/jointBorrower Send Data Connect Email - Joint Borrower #
GET /connect/experiences Get Experience IDs #
POST /connect/experiences/{experience_id}/duplicate Duplicate Experience for Indirect Partner #

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-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-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open Finance Connect 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
  description: Allow customers to log into their financial institutions and grant Finicity authorization
paths:
  /connect/v2/generate:
    post:
      tags:
      - Connect
      summary: Generate Data Connect URL
      description: "Generate a Data Connect URL link to add within your own applications.\n\nOptional Parameters:\n* `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.\n* `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.\n\n  * Spanish (United States)\n  * French (Canada)\n\n\nMVS 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.\n\n_Supported regions_: ![\U0001F1FA\U0001F1F8](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'
  /connect/experiences:
    get:
      tags:
      - Connect
      summary: Get Experience IDs
      description: Retrieve Data Connect experiences by application name. Optionally, filter the experiences by product codes.
      operationId: GetAllExperience
      security:
      - FinicityAppToken: []
      - FinicityAppKey: []
      parameters:
      - $ref: '#/components/parameters/ProductCodeParam'
      - $ref: '#/components/parameters/AppNameParam'
      responses:
        '200':
          $ref: '#/components/responses/GetAllExperienceResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '404':
          $ref: '#/components/responses/ResourceNotFoundResponse'
  /connect/experiences/{experience_id}/duplicate:
    post:
      tags:
      - Connect
      summary: Duplicate Experience for Indirect Partner
      description: Creates a new experience configuration for indirect partners by duplicating an existing experience through the API, enabling them to manage customer onboarding flows based on the  configuration of the source experience.
      operationId: CreateConnectExperience
      security:
      - FinicityAppToken: []
      - FinicityAppKey: []
      parameters:
      - $ref: '#/components/parameters/ExperienceIdParam'
      requestBody:
        $ref: '#/components/requestBodies/CreateExperienceForIndirectPartnerRequest'
      responses:
        '200':
          $ref: '#/components/responses/CreateExperienceForIndirectPartnerResponse'
        '400':
          $ref: '#/components/responses/ExperienceBadRequest'
        '401':
          $ref: '#/components/responses/ExpiredToken'
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.
    MissingFieldExample:
      value:
        code: '10005'
        message: Missing parameter (partnerId)
    ExperienceBadRequest:
      value:
        code: '1003'
        status: '400'
        message: '"experienceId" 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.
    ResellerInvalidDateRangeLessThanZeroExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date less than or equal to zero'
    InvalidConsumerEmailExample:
      value:
        code: '10100'
        message: Invalid format for field consumer.email.
    BadCredentialsExample:
      value:
        code: '24302'
        message: Bad credentials
    InvalidForesightReportRequestExample:
      value:
        code: '10100'
        message: At least one of customerId or externalCustomerId must be provided; both are also allowed.
    NoRegisteredApplicationExample:
      value:
        code: '50051'
        message: No registered partner applications found.
    ExpiredFinicityAppTokenExample:
      value:
        code: '10023'
        message: Expired (Finicity-App-Token)
    InvalidFieldExample:
      value:
        code: '10010'
        status: '400'
        message: Customer ID does not exist or does not belong to this partner
        user_message: One or more of the fields could not be validated. Please ensure you have entered the correct data.
        tags: ''
    InvalidValueExample:
      value:
        code: '1618'
        message: Negative or invalid value entered. Please use positive numbers only.
    InvalidConsumerSSNExample:
      value:
        code: '10100'
        message: Invalid format for field consumer.ssn.  Required format is 9 digits.
    InvalidFinicityAppTokenExample:
      value:
        code: '10022'
        message: Invalid (Finicity-App-Token)
    NoAccountForInstitutionLoginIdExample:
      value:
        code: '38007'
        message: Customer does not have any accounts associated with institutionLoginId.
    CustomerNotFoundExample:
      value:
        code: '14001'
        message: Customer not found.
    ResellerNoDataForPartnerExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Reports not found 2445583947903 resellerBilling reports'
    ExpiredTokenExample:
      value:
        code: '10023'
        message: Expired (Finicity-App-Token)
    ResellerInvalidDateRangeExample:
      value:
        code: '10100'
        message: 'RESELLER_BILLING_REPORT: Invalid date range - start or end date is empty or null'
    ResourceNotFoundExample:
      value:
        code: '14001'
        message: Resource not found.
    ConsumerNotFoundExample:
      value:
        code: '10100'
        message: Cannot find consumer with id 1234.
    GenericBadRequestExample:
      value:
        code: '14020'
        message: Bad request.
    ResourceNotFoundRequest:
      value:
        code: '4004'
        status: '404'
        message: The requested experience could not be found for the external app name.
        user_message: The requested entity was not found.
    InvalidConsumerPhoneExample:
      value:
        code: '10100'
        message: Invalid format for field consumer.phone.
    BadRequest:
      value:
        code: 1000
        status: '400'
        message: field must be a number
        user_message: One or more of the fields could not be validated. Please ensure you have entered the correct data.
    ExpiredTokenRequest:
      value:
        code: '10023'
        status: '401'
        message: Expired (Finicity-App-Token)
        user_message: Your connection timed out due to inactivity. Please log in again to complete your account linking.
    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)
  parameters:
    AppNameParam:
      name: appName
      description: Unique name of the application provided to Mastercard during app registration.
      in: query
      required: true
      schema:
        type: string
      example: test app
    ProductCodeParam:
      name: productCode
      description: Filter the results by product code (a unique billing code assigned to each Open Finance product used). Specify either one single product or multiple products separated by commas.
      in: query
      required: false
      style: form
      explode: false
      example:
      - ABC
      schema:
        type: array
        items:
          type: string
          minLength: 1
          maxLength: 10
    ExperienceIdParam:
      name: experience_id
      description: UUID that distinguishes each experience
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 84fd419a-1add-4bf4-961b-16e8285b3a92
        minLength: 36
        maxLength: 36
  requestBodies:
    GenerateLiteConnectUrlRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LiteConnectParameters'
    GenerateJointBorrowerConnectUrlRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConnectJointBorrowerParameters'
    SendConnectEmailRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConnectEmailParameters'
    GenerateConnectUrlRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConnectParameters'
    GenerateFixConnectUrlRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FixConnectParameters'
    SendJointBorrowerConnectEmailRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConnectJointBorrowerEmailParameters'
    CreateExperienceForIndirectPartnerRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IndirectPartnerRequest'
    ConnectGenerateTransferDepositSwitch:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TransferDepositSwitchParameters'
    ConnectGenerateTransferBillPaySwitch:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConnectGenerateTransferBillPaySwitchParameters'
    MicroEntryVerifyRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MicroEntryVerifyRequestParameter'
  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'
    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
    TransferExperience:
      type: string
      description: "The `experience` field allows you to customize:\n\n  * To toggle landing screen visibility\n\n  Note: the Finicity sales engineers (SE) help you set up a default\n  experience for your company. For each additional experience you\ncreate\n  thereafter, they'll give you a unique ID. See [Configure the\nConnect\n  Experience](https://developer.mastercard.com/open-finance-us/documentation/connect/configure-connect-experience/).\n\n\n  Experience values options:\n\n  * \"default\": your default experience (must be defined)\n  * GUID: the code for a different experience"
      example: 03099618-8a28-41f6-b891-83af336626d6
    Context:
      type: string
      description: The context in which you are using the Data Connect link.
      enum:
      - EMAIL
      - SMS
      - WEB
      - MOBILE
      example: EMAIL
    ConsumerId:
      type: string
      description: A consumer ID. See Create Consumer API for how to create a consumer ID.
      example: 0bf46322c167b562e6cbed9d40e19a4c
    MicroEntryVerifyRequestParameter:
      type: object
      properties:
        partnerId:
          $ref: '#/components/schemas/PartnerId'
        customerId:
          $ref: '#/components/schemas/CustomerId'
        redirectUri:
          $ref: '#/components/schemas/RedirectUri'
        webhook:
          $ref: '#/components/schemas/Webhook'
        webhookContentType:
          $ref: '#/components/schemas/WebhookContentType'
        webhookData:
          $ref: '#/components/schemas/WebhookData'
        webhookHeaders:
          $ref: '#/components/schemas/WebhookHeaders'
        experience:
          $ref: '#/components/schemas/Experience'
        accountId:
          $ref: '#/components/schemas/AccountId'
    WebhookContentType:
      type: string
      description: 'The content type the webhook events will be sent in. Supported types: "application/json" and "application/xml".'
      default: application/json
      example: application/json
    ConsumerDateOfBirth:
      type: integer
      description: 'The consumer''s date of birth in Unix epoch time (in seconds). See: Handling Epoch Dates and Times. The timestamp should be set at the start of day of birth.'
      format: int64
      example: 1607450357
    EmailOptions:
      description: Configuration for the Data Connect email's sent to customers
      required:
      - to
      type: object
      properties:
        to:
          type: string
          description: The email address for the customer receiving the Data Connect email
          example: bob@example.com
        from:
          type: string
          description: The name of a person or business sending the Data Connect email
          example: test.lender@test.com
        supportPhone:
          type: string
          description: The support phone number listed in the email
          example: 800-555-5555
        subject:
          type: string
          description: The subject line of the email. The default is "Verify your Financial Information".
          example: Verify your income
        firstName:
          type: string
          description: 'The first name of the customer or both names of the customers for joint borrowers. Example: "Marvin and Jenny".'
          example: Bob
        institutionName:
          type: string
          description: The name of your company
          example: Acme Lending
        institutionAddress:
          type: string
          description: The institution address to appear in the footer of the email
          example: 222 Winnipeg Drive SLC UT, 84109
        signature:
          type: array
          items:
            type: string
          description: A signature for the email
          example:
          - Cindy Mayfield
          - Senior Loan Officer
          - Direct 123-456-7890
    BankAccount:
      description: Deposit Switch account
      type: object
      required:
      - accountNumber
      - bankIdentifier
      - type
      properties:
        accountNumber:
          type: string
          description: The user's bank account number
          minLength: 4
          maxLength: 17
          example: '7526894126'
        bankIdentifier:
          description: Code used to identify the financial institution also known as the bank routing number
          type: string
          pattern: ^[0-9]{9}$
          example: '110000000'
        title:
          description: The title of the account
          type: string
          example: My savings account
        type:
          description: Financial institution account type. Options `checking` or `savings`
          type: string
          example: checking
    isHostedInMobileApp:
      description: Indicates whether Data Connect is hosted in a web view / secure container of the partner mobile app. It is only required for NON SDK integrations.
      type: boolean
      example: false
    ConsumerInfo:
      description: The SSN and date of birth of a consumer
      required:
      - ssn
      type: object
      properties:
        ssn:
          $ref: '#/components/schemas/SocialSecurityNumberNoHyphens'
        dob:
          $ref: '#/components/schemas/ConsumerDateOfBirth'
    InstitutionSettings:
      type: object
      description: Advanced options for configuration of which institutions to display in. See [Institution Settings](https://developer.mastercard.com/open-finance-us/documentation/connect/connect-institutions-settings/).
    Webhook:
      type: string
      description: The publicly available URL you want to be notified with events as the user progresses through the application. See [Connect Webhook Event](https://developer.mastercard.com/open-finance-us/documentation/webhooks/webhooks-connect/) for event details.
      example: https://webhook.site/8d4421a7-d1d1-4f01-bb08-5370aff0321b
    CreateExperience:
      type: object
      properties:
        experienceId:
          type: string
          format: uuid
          minLength: 36
          maxLength: 36
          description: UUID that distinguishes each experience
          example: 84fd419a-1add-4bf4-961b-16e8285b3a92
    BillPaySwitchIdentity:
      description: Identity information for the user. Mandatory when use case is BPS.
      type: object
      required:
      - address
      - city
      - firstName
      - lastName
      - zipCode
      - state
      properties:
        firstName:
          type: string
          description: User first name
          example: Jane
          maxLength: 50
        lastName:
          type: string
          description: User last name
          example: Doe
          maxLength: 50
        zipCode:
          type: string
          description: Postal / zip code of the user
          example: '12345'
          minLength: 5
          maxLength: 10
        address:
          type: string
          description: First line of user address
          example: 123 Lane
          maxLength: 100
        address2:
          type: string
          description: Second line of user address
          example: Apt 987
          maxLength: 100
        city:
          type: string
          description: City in which user is located
          example: Purchase
          maxLength: 100
        state:
          type: string
          description: State in which user is located
          example: NY
          maxLength: 2
        phone:
          type: string
          description: User phone number
          example: '2121234567'
          maxLength: 15
        email:
          type: string
          description: User email address
          example: jane.doe@example.com
          maxLength: 100
    ErrorMessage:
      required:
      - code
      type: object
      properties:
        code:
          type: object
          description: 'An error code (can be returned as a number or a string). Useful links: [Common API Status Codes](https://developer.mastercard.com/open-finance-us/documentation/errors/best-practices/#common-api-status-codes), [Aggregation Status Codes](https://developer.mastercard.com/open-finance-us/documentation/products/manage/account-aggregation/#aggregation-status-codes).'
          example: '10001'
        status:
          type: string
          description: A status code
          example: '401'
        title:
          type: string
          description: A title for the error
          example: Connecting accounts error
        level:
          type: string
          description: An error level
          example: error
        message:
          type: string
          description: An error message
          example: Invalid authorization credentials
        user_message:
          type: string
          description: Some more details about the error
          example: The session has expired or is invalid
        assetId:
          $ref: '#/components/schemas/AssetId'
        accountId:
          $ref: '#/components/schemas/AccountId'
        externalTransactionId:
          type: string
          description: A unique identifier for the transaction that assists in linking data back to your systems.
          example: MAC1005061234
          minLength: 1
          maxLength: 100
        tags:
          type: string
          description: Categories that the error belongs to
          example: AGG
    ReportCustomFields:
      type: array
      items:
        $ref: '#/components/schemas/ReportCustomField'
      description: 'The `reportCustomFields` parameter is used when experiences are associated with a credit decisioning report.


        Designate up to 5 custom fields that you''d like associated with the report when it''s generated. Every custom field consists of three variables: `label`, `value`, and `shown`. The `shown` variable is "true" or "false".

        * "true": (default) display the custom field in the PDF report

        * "false": don''t display the custom field in the PDF report


        For an experience that generates multiple reports, the `reportCustomFields` parameter gets passed to all reports.


        All custom fields display in the Reseller Billing API.'
    AccountId:
      type: string
      description: An account ID
      example: '5011648377'
    IsWebView:
      type: boolean
      description: '"true": Indicates that the Data Connect Session will be displayed within a WebView. When the `isWebView` parameter is `true` the `redirectUri` parameter is required.


        Note: This parameter is no longer recommended. We instead recommend specifying a `redirectUrl` through our WebSDK. Please refer to the following documentation:


        - [iOS](https://developer.mastercard.com/open-finance-us/documentation/connect/integrating/webviews/ios-webviews/)


        - [Android](https://developer.mastercard.com/open-finance-us/documentation/connect/integrating/webviews/android-webviews/)'
      example: true
    Borrower:
      required:
      - customerId
      - consumerId
      - type
      type: object
      properties:
        customerId:
          $ref: '#/components/schemas/CustomerId'
        consumerId:
          $ref: '#/components/schemas/ConsumerId'
        type:
          $ref: '#/components/schemas/BorrowerType'
        optionalConsumerInfo:
          $ref: '#/components/schemas/ConsumerInfo'
    Card:
      type: object
      description: Structure of the user card
      required:
      - title
      - number
      - expiry
      - cvv
      properties:
        title:
          type: string
          description: The user title for the card in use
          example: Mastercard super card
        number:
          type: string
          description: The card number used for bill payment. Should be between 15-19 digits
          example: '4242424242424242'
          minLength: 15
          maxLength: 19
        expiry:
          type: string
          description: The expiry date for the card in mm/yy format
          example: 12/27
        cvv:
          type: string
          description: The CVV / CVC number associated to the card
          example: '123'
          minLength: 3
          maxLength: 4
        brand:
          type: string
          description: The Brand of card in use. Possible values include mastercard, visa, american-express, or discover.
          example: Mastercard
    ConnectTransferDepositSwitchLink:
      type: object
      description: contains url to launch connect session
      properties:
        link:
          type: s

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