openapi: 3.0.0
info:
title: Stripe Accounts Account Link Account Sessions API
description: This is an object representing a Stripe account. You can retrieve it to see properties on the account like its current requirements or if the account is enabled to make live charges or receive payouts.
contact:
email: dev-platform@stripe.com
name: Stripe Dev Platform Team
url: https://stripe.com
termsOfService: https://stripe.com/us/terms/
version: '2023-10-16'
x-stripeSpecFilename: spec3
servers:
- url: https://api.stripe.com/
security:
- basicAuth: []
- bearerAuth: []
tags:
- name: Link Account Sessions
paths:
/v1/link_account_sessions:
post:
description:
To launch the Financial Connections authorization flow, create a Session. The session’s client_secret can be used to launch the flow using Stripe.js.
operationId: PostLinkAccountSessions
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/PostLinkAccountSessionsRequest'
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.
tags:
- Link Account Sessions
/v1/link_account_sessions/{session}:
get:
description: Retrieves the details of a Financial Connections Session
operationId: GetLinkAccountSessionsSession
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/GetLinkAccountSessionsSessionRequest'
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.
tags:
- Link Account Sessions
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:\n\n - `checking`\n - `savings`\n - `other`\n\nIf `category` is `credit`, one of:\n\n - `mortgage`\n - `line_of_credit`\n - `credit_card`\n - `other`\n\nIf `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-resourceId: financial_connections.account
GetLinkAccountSessionsSessionRequest:
type: object
properties: {}
PostLinkAccountSessionsRequest:
type: object
required:
- account_holder
- permissions
properties:
account_holder:
description: The account holder to link accounts for.
properties:
account:
maxLength: 5000
type: string
customer:
maxLength: 5000
type: string
type:
enum:
- account
- customer
type: string
required:
- type
title: accountholder_params
type: object
expand:
description: Specifies which fields in the response should be expanded.
items:
maxLength: 5000
type: string
type: array
filters:
description: Filters to restrict the kinds of accounts to collect.
properties:
countries:
items:
maxLength: 5000
type: string
type: array
required:
- countries
title: filters_params
type: object
permissions:
description: 'List of data features that you would like to request access to.
Possible values are `balances`, `transactions`, `ownership`, and `payment_method`.'
items:
enum:
- balances
- ownership
- payment_method
- transactions
maxLength: 5000
type: string
x-stripeBypassValidation: true
type: array
prefetch:
description: List of data features that you would like to retrieve upon account creation.
items:
enum:
- balances
- ownership
- transactions
type: string
x-stripeBypassValidation: true
type: array
return_url:
description: For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
maxLength: 5000
type: string
financial_connections.session:
description: A Financial Connections Session is the secure way to programmatically launch the client-side Stripe.js modal that lets your users link their accounts.
properties:
account_holder:
anyOf:
- $ref: '#/components/schemas/bank_connections_resource_accountholder'
description: The account holder for whom accounts are collected in this session.
nullable: true
accounts:
description: The accounts that were collected as part of this Session.
properties:
data:
description: Details about each object.
items:
$ref: '#/components/schemas/financial_connections.account'
type: array
has_more:
description: True if this list has another page of items after this one that can be fetched.
type: boolean
object:
description: String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
enum:
- list
type: string
url:
description: The URL where this list can be accessed.
maxLength: 5000
pattern: ^/v1/financial_connections/accounts
type: string
required:
- data
- has_more
- object
- url
title: BankConnectionsResourceLinkedAccountList
type: object
x-expandableFields:
- data
client_secret:
description: A value that will be passed to the client to launch the authentication flow.
maxLength: 5000
type: string
filters:
$ref: '#/components/schemas/bank_connections_resource_link_account_session_filters'
id:
description: Unique identifier for the object.
maxLength: 5000
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.session
type: string
permissions:
description: Permissions requested for accounts collected during this session.
items:
enum:
- balances
- ownership
- payment_method
- transactions
type: string
x-stripeBypassValidation: true
type: array
prefetch:
description: Data features requested to be retrieved upon account creation.
items:
enum:
- balances
- ownership
- transactions
type: string
x-stripeBypassValidation: true
nullable: true
type: array
return_url:
description: For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
maxLength: 5000
type: string
required:
- accounts
- client_secret
- id
- livemode
- object
- permissions
title: BankConnectionsResourceLinkAccountSession
type: object
x-expandableFields:
- account_holder
- accounts
- filters
x-resourceId: financial_connections.session