Stripe Financial Connections API

Financial Connections lets your users securely share their financial data by linking their financial accounts to your business. Use Financial Connections to access user-permissioned account data such as tokenized account and routing numbers, balances, ownerships details, and transactions.

OpenAPI Specification

stripe-financial-connections-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Stripe Financial Connections API
  description: >-
    Financial Connections lets your users securely share their financial data by
    linking their financial accounts to your business. Use Financial Connections
    to access user-permissioned account data such as tokenized account and
    routing numbers, balances, ownerships details, and transactions.
  contact:
    email: [email protected]
    name: Stripe Dev Platform Team
    url: https://stripe.com
  termsOfService: https://stripe.com/us/terms/
  version: '2023-10-16'
  x-stripeSpecFilename: spec3
security:
  - basicAuth: []
  - bearerAuth: []
servers:
  - url: https://api.stripe.com/
paths:
  /v1/financial_connections/accounts:
    get:
      description: >-
        <p>Returns a list of Financial Connections <code>Account</code>
        objects.</p>
      operationId: getFinancialConnectionsAccounts
      parameters:
        - description: >-
            If present, only return accounts that belong to the specified
            account holder. `account_holder[customer]` and
            `account_holder[account]` are mutually exclusive.
          explode: true
          in: query
          name: account_holder
          required: false
          schema:
            properties:
              account:
                maxLength: 5000
                type: string
              customer:
                maxLength: 5000
                type: string
            title: accountholder_params
            type: object
          style: deepObject
        - description: >-
            A cursor for use in pagination. `ending_before` is an object ID that
            defines your place in the list. For instance, if you make a list
            request and receive 100 objects, starting with `obj_bar`, your
            subsequent call can include `ending_before=obj_bar` in order to
            fetch the previous page of the list.
          in: query
          name: ending_before
          required: false
          schema:
            maxLength: 5000
            type: string
          style: form
        - description: Specifies which fields in the response should be expanded.
          explode: true
          in: query
          name: expand
          required: false
          schema:
            items:
              maxLength: 5000
              type: string
            type: array
          style: deepObject
        - description: >-
            A limit on the number of objects to be returned. Limit can range
            between 1 and 100, and the default is 10.
          in: query
          name: limit
          required: false
          schema:
            type: integer
          style: form
        - description: >-
            If present, only return accounts that were collected as part of the
            given session.
          in: query
          name: session
          required: false
          schema:
            maxLength: 5000
            type: string
          style: form
        - description: >-
            A cursor for use in pagination. `starting_after` is an object ID
            that defines your place in the list. For instance, if you make a
            list request and receive 100 objects, ending with `obj_foo`, your
            subsequent call can include `starting_after=obj_foo` in order to
            fetch the next page of the list.
          in: query
          name: starting_after
          required: false
          schema:
            maxLength: 5000
            type: string
          style: form
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/GetFinancialConnectionsAccountsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                description: ''
                x-expandableFields:
                  - data
                $ref: '#/components/schemas/BankConnectionsResourceLinkedAccountList'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Get   Financial Connections Accounts
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Accounts
        - Connections
        - Financial
        - Get
  /v1/financial_connections/accounts/{account}:
    get:
      description: >-
        <p>Retrieves the details of an Financial Connections
        <code>Account</code>.</p>
      operationId: getFinancialConnectionsAccountsAccount
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
        - description: Specifies which fields in the response should be expanded.
          explode: true
          in: query
          name: expand
          required: false
          schema:
            items:
              maxLength: 5000
              type: string
            type: array
          style: deepObject
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/GetFinancialConnectionsAccountsAccountRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Get   Financial Connections Accounts
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Accounts
        - Connections
        - Financial
        - Get
  /v1/financial_connections/accounts/{account}/disconnect:
    post:
      description: >-
        <p>Disables your access to a Financial Connections <code>Account</code>.
        You will no longer be able to access data associated with the account
        (e.g. balances, transactions).</p>
      operationId: postFinancialConnectionsAccountsAccountDisconnect
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              expand:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/PostFinancialConnectionsAccountsAccountDisconnectRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Post   Financial Connections Accounts Disconnect
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Accounts
        - Connections
        - Disconnect
        - Financial
        - Post
  /v1/financial_connections/accounts/{account}/owners:
    get:
      description: <p>Lists all owners for a given <code>Account</code></p>
      operationId: getFinancialConnectionsAccountsAccountOwners
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
        - description: >-
            A cursor for use in pagination. `ending_before` is an object ID that
            defines your place in the list. For instance, if you make a list
            request and receive 100 objects, starting with `obj_bar`, your
            subsequent call can include `ending_before=obj_bar` in order to
            fetch the previous page of the list.
          in: query
          name: ending_before
          required: false
          schema:
            maxLength: 5000
            type: string
          style: form
        - description: Specifies which fields in the response should be expanded.
          explode: true
          in: query
          name: expand
          required: false
          schema:
            items:
              maxLength: 5000
              type: string
            type: array
          style: deepObject
        - description: >-
            A limit on the number of objects to be returned. Limit can range
            between 1 and 100, and the default is 10.
          in: query
          name: limit
          required: false
          schema:
            type: integer
          style: form
        - description: The ID of the ownership object to fetch owners from.
          in: query
          name: ownership
          required: true
          schema:
            maxLength: 5000
            type: string
          style: form
        - description: >-
            A cursor for use in pagination. `starting_after` is an object ID
            that defines your place in the list. For instance, if you make a
            list request and receive 100 objects, ending with `obj_foo`, your
            subsequent call can include `starting_after=obj_foo` in order to
            fetch the next page of the list.
          in: query
          name: starting_after
          required: false
          schema:
            maxLength: 5000
            type: string
          style: form
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/GetFinancialConnectionsAccountsAccountOwnersRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                description: ''
                x-expandableFields:
                  - data
                $ref: '#/components/schemas/BankConnectionsResourceOwnerList'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Get   Financial Connections Accounts Owners
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Accounts
        - Connections
        - Financial
        - Get
        - Owners
  /v1/financial_connections/accounts/{account}/refresh:
    post:
      description: >-
        <p>Refreshes the data associated with a Financial Connections
        <code>Account</code>.</p>
      operationId: postFinancialConnectionsAccountsAccountRefresh
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              expand:
                explode: true
                style: deepObject
              features:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/PostFinancialConnectionsAccountsAccountRefreshRequest
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Post   Financial Connections Accounts Refresh
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Accounts
        - Connections
        - Financial
        - Post
        - Refresh
  /v1/financial_connections/accounts/{account}/subscribe:
    post:
      description: >-
        <p>Subscribes to periodic refreshes of data associated with a Financial
        Connections <code>Account</code>.</p>
      operationId: postFinancialConnectionsAccountsAccountSubscribe
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              expand:
                explode: true
                style: deepObject
              features:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/PostFinancialConnectionsAccountsAccountSubscribeRequest
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Post   Financial Connections Accounts Subscribe
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Accounts
        - Connections
        - Financial
        - Post
        - Subscribe
  /v1/financial_connections/accounts/{account}/unsubscribe:
    post:
      description: >-
        <p>Unsubscribes from periodic refreshes of data associated with a
        Financial Connections <code>Account</code>.</p>
      operationId: postFinancialConnectionsAccountsAccountUnsubscribe
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              expand:
                explode: true
                style: deepObject
              features:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/PostFinancialConnectionsAccountsAccountUnsubscribeRequest
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Post   Financial Connections Accounts Unsubscribe
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Accounts
        - Connections
        - Financial
        - Post
        - Unsubscribe
  /v1/financial_connections/sessions:
    post:
      description: >-
        <p>To launch the Financial Connections authorization flow, create a
        <code>Session</code>. The session’s <code>client_secret</code> can be
        used to launch the flow using Stripe.js.</p>
      operationId: postFinancialConnectionsSessions
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              account_holder:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              filters:
                explode: true
                style: deepObject
              permissions:
                explode: true
                style: deepObject
              prefetch:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostFinancialConnectionsSessionsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.session'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Post   Financial Connections Sessions
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Connections
        - Financial
        - Post
        - Sessions
  /v1/financial_connections/sessions/{session}:
    get:
      description: >-
        <p>Retrieves the details of a Financial Connections
        <code>Session</code></p>
      operationId: getFinancialConnectionsSessionsSession
      parameters:
        - description: Specifies which fields in the response should be expanded.
          explode: true
          in: query
          name: expand
          required: false
          schema:
            items:
              maxLength: 5000
              type: string
            type: array
          style: deepObject
        - in: path
          name: session
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/GetFinancialConnectionsSessionsSessionRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.session'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Get   Financial Connections Sessions Session
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Connections
        - Financial
        - Get
        - Sessions
  /v1/financial_connections/transactions:
    get:
      description: >-
        <p>Returns a list of Financial Connections <code>Transaction</code>
        objects.</p>
      operationId: getFinancialConnectionsTransactions
      parameters:
        - description: The ID of the Stripe account whose transactions will be retrieved.
          in: query
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: form
        - description: >-
            A cursor for use in pagination. `ending_before` is an object ID that
            defines your place in the list. For instance, if you make a list
            request and receive 100 objects, starting with `obj_bar`, your
            subsequent call can include `ending_before=obj_bar` in order to
            fetch the previous page of the list.
          in: query
          name: ending_before
          required: false
          schema:
            maxLength: 5000
            type: string
          style: form
        - description: Specifies which fields in the response should be expanded.
          explode: true
          in: query
          name: expand
          required: false
          schema:
            items:
              maxLength: 5000
              type: string
            type: array
          style: deepObject
        - description: >-
            A limit on the number of objects to be returned. Limit can range
            between 1 and 100, and the default is 10.
          in: query
          name: limit
          required: false
          schema:
            type: integer
          style: form
        - description: >-
            A cursor for use in pagination. `starting_after` is an object ID
            that defines your place in the list. For instance, if you make a
            list request and receive 100 objects, ending with `obj_foo`, your
            subsequent call can include `starting_after=obj_foo` in order to
            fetch the next page of the list.
          in: query
          name: starting_after
          required: false
          schema:
            maxLength: 5000
            type: string
          style: form
        - description: >-
            A filter on the list based on the object `transacted_at` field. The
            value can be a string with an integer Unix timestamp, or it can be a
            dictionary with the following options:
          explode: true
          in: query
          name: transacted_at
          required: false
          schema:
            anyOf:
              - properties:
                  gt:
                    type: integer
                  gte:
                    type: integer
                  lt:
                    type: integer
                  lte:
                    type: integer
                title: range_query_specs
                type: object
              - type: integer
          style: deepObject
        - description: >-
            A filter on the list based on the object `transaction_refresh`
            field. The value can be a dictionary with the following options:
          explode: true
          in: query
          name: transaction_refresh
          required: false
          schema:
            properties:
              after:
                maxLength: 5000
                type: string
            required:
              - after
            title: transaction_refresh_params
            type: object
          style: deepObject
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/GetFinancialConnectionsTransactionsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                description: ''
                x-expandableFields:
                  - data
                $ref: '#/components/schemas/BankConnectionsResourceTransactionList'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Get   Financial Connections Transactions
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Connections
        - Financial
        - Get
        - Transactions
  /v1/financial_connections/transactions/{transaction}:
    get:
      description: >-
        <p>Retrieves the details of a Financial Connections
        <code>Transaction</code></p>
      operationId: getFinancialConnectionsTransactionsTransaction
      parameters:
        - description: Specifies which fields in the response should be expanded.
          explode: true
          in: query
          name: expand
          required: false
          schema:
            items:
              maxLength: 5000
              type: string
            type: array
          style: deepObject
        - in: path
          name: transaction
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/GetFinancialConnectionsTransactionsTransactionRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial_connections.transaction'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Get   Financial Connections Transactions Transaction
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      tags:
        - Connections
        - Financial
        - Get
        - Transaction
        - Transactions
components:
  schemas:
    error:
      description: An error response from the Stripe API
      properties:
        error:
          $ref: '#/components/schemas/api_errors'
      required:
        - error
      type: object
    financial_connections.account:
      description: >-
        A Financial Connections Account represents an account that exists
        outside of Stripe, to which you have been granted some degree of access.
      properties:
        account_holder:
          anyOf:
            - $ref: '#/components/schemas/bank_connections_resource_accountholder'
          description: The account holder that this account belongs to.
          nullable: true
        balance:
          anyOf:
            - $ref: '#/components/schemas/bank_connections_resource_balance'
          description: The most recent information about the account's balance.
          nullable: true
        balance_refresh:
          anyOf:
            - $ref: '#/components/schemas/bank_connections_resource_balance_refresh'
          description: The state of the most recent attempt to refresh the account balance.
          nullable: true
        category:
          description: >-
            The type of the account. Account category is further divided in
            `subcategory`.
          enum:
            - cash
            - credit
            - investment
            - other
          type: string
        created:
          description: >-
            Time at which the object was created. Measured in seconds since the
            Unix epoch.
          format: unix-time
          type: integer
        display_name:
          description: >-
            A human-readable name that has been assigned to this account, either
            by the account holder or by the institution.
          maxLength: 5000
          nullable: true
          type: string
        id:
          description: Unique identifier for the object.
          maxLength: 5000
          type: string
        institution_name:
          description: The name of the institution that holds this account.
          maxLength: 5000
          type: string
        last4:
          description: >-
            The last 4 digits of the account number. If present, this will be 4
            numeric characters.
          maxLength: 5000
          nullable: true
          type: string
        livemode:
          description: >-
            Has the value `true` if the object exists in live mode or the value
            `false` if the object exists in test mode.
          type: boolean
        object:
          description: >-
            String representing the object's type. Objects of the same type
            share the same value.
          enum:
            - financial_connections.account
          type: string
        ownership:
          anyOf:
            - maxLength: 5000
              type: string
            - $ref: '#/components/schemas/financial_connections.account_ownership'
          description: The most recent information about the account's owners.
          nullable: true
          x-expansionResources:
            oneOf:
              - $ref: '#/components/schemas/financial_connections.account_ownership'
        ownership_refresh:
          anyOf:
            - $ref: '#/components/schemas/bank_connections_resource_ownership_refresh'
          description: The state of the most recent attempt to refresh the account owners.
          nullable: true
        permissions:
          description: The list of permissions granted by this account.
          items:
            enum:
              - balances
              - ownership
              - payment_method
              - transactions
            type: string
          nullable: true
          type: array
        status:
          description: The status of the link to the account.
          enum:
            - active
            - disconnected
            - inactive
          type: string
        subcategory:
          description: |-
            If `category` is `cash`, one of:

             - `checking`
             - `savings`
             - `other`

            If `category` is `credit`, one of:

             - `mortgage`
             - `line_of_credit`
             - `credit_card`
             - `other`

            If `category` is `investment` or `other`, this will be `other`.
          enum:
            - checking
            - credit_card
            - line_of_credit
            - mortgage
            - other
            - savings
          type: string
        subscriptions:
          description: The list of data refresh subscriptions requested on this account.
          items:
            enum:
              - transactions
            type: string
            x-stripeBypassValidation: true
          nullable: true
          type: array
        supported_payment_method_types:
          description: >-
            The [PaymentMethod
            type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)(s)
            that can be created from this account.
          items:
            enum:
              - link
              - us_bank_account
            type: string
          type: array
        transaction_refresh:
          anyOf:
            - $ref: >-
                #/components/schemas/bank_connections_resource_transaction_refresh
          description: >-
            The state of the most recent attempt to refresh the account
            transactions.
          nullable: true
      required:
        - category
        - created
        - id
        - institution_name
        - livemode
        - object
        - status
        - subcategory
        - supported_payment_method_types
      title: BankConnectionsResourceLinkedAccount
      type: object
      x-expandableFields:
        - account_holder
        - balance
        - balance_refresh
        - ownership
        - ownership_refresh
        - transaction_refresh
      x-

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-financial-connections-api-openapi.yml