Stripe Link API
You can use the Payment Links API to create a payment link that you can share with your customers. Stripe redirects customers who open this link to a Stripe-hosted payment page.
You can use the Payment Links API to create a payment link that you can share with your customers. Stripe redirects customers who open this link to a Stripe-hosted payment page.
openapi: 3.0.0
info:
title: Stripe Accounts Account Link 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
paths:
/v1/account_links:
post:
description: <p>Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.</p>
operationId: PostAccountLinks
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostAccountLinksRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/account_link'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Create Account Link
tags:
- Link
x-api-evangelist-processing:
ChooseTags: true
/v1/accounts/{account}/login_links:
post:
description: '<p>Creates a single-use login link for an Express account to access their Stripe dashboard.</p>
<p><strong>You may only create login links for <a href="/docs/connect/express-accounts">Express accounts</a> connected to your platform</strong>.</p>'
operationId: PostAccountsAccountLoginLinks
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/PostAccountsAccountLoginLinksRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/login_link'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Create Login Link
tags:
- Link
x-api-evangelist-processing:
ChooseTags: true
/v1/link_account_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: 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.
summary: Stripe Post Link Account Sessions
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Link
/v1/link_account_sessions/{session}:
get:
description: <p>Retrieves the details of a Financial Connections <code>Session</code></p>
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.
summary: Stripe Get Link Account Sessions Session
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Link
components:
schemas:
account_link:
description: 'Account Links are the means by which a Connect platform grants a connected account permission to access
Stripe-hosted applications, such as Connect Onboarding.
Related guide: [Connect Onboarding](https://stripe.com/docs/connect/custom/hosted-onboarding)'
properties:
created:
description: Time at which the object was created. Measured in seconds since the Unix epoch.
format: unix-time
type: integer
expires_at:
description: The timestamp at which this account link will expire.
format: unix-time
type: integer
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- account_link
type: string
url:
description: The URL for the account link.
maxLength: 5000
type: string
required:
- created
- expires_at
- object
- url
title: AccountLink
type: object
x-expandableFields: []
x-resourceId: account_link
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
login_link:
description: Login Links are single-use login link for an Express account to access their Stripe dashboard.
properties:
created:
description: Time at which the object was created. Measured in seconds since the Unix epoch.
format: unix-time
type: integer
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- login_link
type: string
url:
description: The URL for the login link.
maxLength: 5000
type: string
required:
- created
- object
- url
title: LoginLink
type: object
x-expandableFields: []
x-resourceId: login_link