Stripe Accounts API

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.

OpenAPI Specification

stripe-accounts-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Stripe Accounts 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
security:
  - basicAuth: []
  - bearerAuth: []
servers:
  - url: https://api.stripe.com/
paths:
  /v1/account:
    get:
      description: <p>Retrieves the details of an account.</p>
      operationId: GetAccount
      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
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/GetAccountRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Retrieve Account
      tags:
        - Account
        - Retrieve
      x-api-evangelist-processing:
        ChooseTags: true
  /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:
        - Account
        - Create
        - Link
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/account_sessions:
    post:
      description: >-
        <p>Creates a AccountSession object that includes a single-use token that
        the platform can use on their front-end to grant client-side API
        access.</p>
      operationId: PostAccountSessions
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              components:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountSessionsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_session'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create Account Session
      tags:
        - Account
        - Create
        - Sessions
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts:
    get:
      description: >-
        <p>Returns a list of accounts connected to your platform via <a
        href="/docs/connect">Connect</a>. If youre not a platform, the list is
        empty.</p>
      operationId: GetAccounts
      parameters:
        - explode: true
          in: query
          name: created
          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 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:
            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:
            type: string
          style: form
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/GetAccountsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                description: ''
                x-expandableFields:
                  - data
                $ref: '#/components/schemas/AccountList'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe List Accounts
      tags:
        - Accounts
        - Lists
      x-api-evangelist-processing:
        ChooseTags: true
    post:
      description: >-
        <p>With <a href="/docs/connect">Connect</a>, you can create Stripe
        accounts for your users.

        To do this, youll first need to <a
        href="https://dashboard.stripe.com/account/applications/settings">register
        your platform</a>.</p>


        <p>If youve already collected information for your connected accounts,
        you <a href="/docs/connect/best-practices#onboarding">can prefill that
        information</a> when

        creating the account. Connect Onboarding wont ask for the prefilled
        information during account onboarding.

        You can prefill any information on the account.</p>
      operationId: PostAccounts
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              bank_account:
                explode: true
                style: deepObject
              business_profile:
                explode: true
                style: deepObject
              capabilities:
                explode: true
                style: deepObject
              company:
                explode: true
                style: deepObject
              documents:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              individual:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
              settings:
                explode: true
                style: deepObject
              tos_acceptance:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create Account
      tags:
        - Account
        - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}:
    delete:
      description: >-
        <p>With <a href="/docs/connect">Connect</a>, you can delete accounts you
        manage.</p>


        <p>Accounts created using test-mode keys can be deleted at any time.
        Standard accounts created using live-mode keys cannot be deleted. Custom
        or Express accounts created using live-mode keys can only be deleted
        once all balances are zero.</p>


        <p>If you want to delete your own account, use the <a
        href="https://dashboard.stripe.com/settings/account">account information
        tab in your account settings</a> instead.</p>
      operationId: DeleteAccountsAccount
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/DeleteAccountsAccountRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deleted_account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Delete Account
      tags:
        - Account
        - Delete
      x-api-evangelist-processing:
        ChooseTags: true
    get:
      description: <p>Retrieves the details of an account.</p>
      operationId: GetAccountsAccount
      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/GetAccountsAccountRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Retrieve Account
      tags:
        - Account
        - Retrieve
      x-api-evangelist-processing:
        ChooseTags: true
    post:
      description: >-
        <p>Updates a <a href="/docs/connect/accounts">connected account</a> by
        setting the values of the parameters passed. Any parameters not provided
        are

        left unchanged.</p>


        <p>For Custom accounts, you can update any information on the account.
        For other accounts, you can update all information until that

        account has started to go through Connect Onboarding. Once you create an
        <a href="/docs/api/account_links">Account Link</a>

        for a Standard or Express account, some parameters can no longer be
        changed. These are marked as <strong>Custom Only</strong> or
        <strong>Custom and Express</strong>

        below.</p>


        <p>To update your own account, use the <a
        href="https://dashboard.stripe.com/settings/account">Dashboard</a>.
        Refer to our

        <a href="/docs/connect/updating-accounts">Connect</a> documentation to
        learn more about updating accounts.</p>
      operationId: PostAccountsAccount
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              business_profile:
                explode: true
                style: deepObject
              capabilities:
                explode: true
                style: deepObject
              company:
                explode: true
                style: deepObject
              documents:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              individual:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
              settings:
                explode: true
                style: deepObject
              tos_acceptance:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountsAccountRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Update Account
      tags:
        - Account
        - Update
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/bank_accounts:
    post:
      description: <p>Create an external account for a given account.</p>
      operationId: PostAccountsAccountBankAccounts
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              bank_account:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountsAccountBankAccountsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create Bank Account
      tags:
        - Account
        - Bank
        - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/bank_accounts/{id}:
    delete:
      description: <p>Delete a specified external account for a given account.</p>
      operationId: DeleteAccountsAccountBankAccountsId
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
        - in: path
          name: id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/DeleteAccountsAccountBankAccountsIdRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deleted_external_account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Delete Bank Account
      tags:
        - Account
        - Bank
        - Delete
      x-api-evangelist-processing:
        ChooseTags: true
    get:
      description: <p>Retrieve a specified external account for a given account.</p>
      operationId: GetAccountsAccountBankAccountsId
      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
        - in: path
          name: id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/GetAccountsAccountBankAccountsIdRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Retrieve Bank Account
      tags:
        - Account
        - Bank
        - Retrieve
      x-api-evangelist-processing:
        ChooseTags: true
    post:
      description: >-
        <p>Updates the metadata, account holder name, account holder type of a
        bank account belonging to a <a
        href="/docs/connect/custom-accounts">Custom account</a>, and optionally
        sets it as the default for its currency. Other bank account details are
        not editable by design.</p>


        <p>You can re-enable a disabled bank account by performing an update
        call without providing any arguments or changes.</p>
      operationId: PostAccountsAccountBankAccountsId
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
        - in: path
          name: id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              documents:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountsAccountBankAccountsIdRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Update Bank Account
      tags:
        - Account
        - Bank
        - Update
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/capabilities:
    get:
      description: >-
        <p>Returns a list of capabilities associated with the account. The
        capabilities are returned sorted by creation date, with the most recent
        capability appearing first.</p>
      operationId: GetAccountsAccountCapabilities
      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/GetAccountsAccountCapabilitiesRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                description: ''
                x-expandableFields:
                  - data
                $ref: '#/components/schemas/ListAccountCapability'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe List Capabilities
      tags:
        - Capabilities
        - Lists
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/capabilities/{capability}:
    get:
      description: <p>Retrieves information about the specified Account Capability.</p>
      operationId: GetAccountsAccountCapabilitiesCapability
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
        - in: path
          name: capability
          required: true
          schema:
            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/GetAccountsAccountCapabilitiesCapabilityRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/capability'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Retrieve Capability
      tags:
        - Capability
        - Retrieve
      x-api-evangelist-processing:
        ChooseTags: true
    post:
      description: >-
        <p>Updates an existing Account Capability. Request or remove a
        capability by updating its <code>requested</code> parameter.</p>
      operationId: PostAccountsAccountCapabilitiesCapability
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
        - in: path
          name: capability
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              expand:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/PostAccountsAccountCapabilitiesCapabilityRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/capability'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Update Capability
      tags:
        - Capability
        - Update
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/external_accounts:
    get:
      description: <p>List external accounts for an account.</p>
      operationId: GetAccountsAccountExternalAccounts
      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:
            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: Filter external accounts according to a particular object type.
          in: query
          name: object
          required: false
          schema:
            enum:
              - bank_account
              - card
            maxLength: 5000
            type: string
            x-stripeBypassValidation: true
          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:
            type: string
          style: form
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/GetAccountsAccountExternalAccountsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                description: ''
                x-expandableFields:
                  - data
                $ref: '#/components/schemas/ExternalAccountList'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe List External Accounts
      tags:
        - Accounts
        - External
        - Lists
      x-api-evangelist-processing:
        ChooseTags: true
    post:
      description: <p>Create an external account for a given account.</p>
      operationId: PostAccountsAccountExternalAccounts
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              bank_account:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountsAccountExternalAccountsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create External Account
      tags:
        - Account
        - Create
        - External
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/external_accounts/{id}:
    delete:
      description: <p>Delete a specified external account for a given account.</p>
      operationId: DeleteAccountsAccountExternalAccountsId
      parameters:
        - in: path
          name: account
          required: true
          schema:
            maxLength: 5000
            type: string
          style: simple
        - in: path
          name: id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              additionalProperties: false
              $ref: >-
                #/components/schemas/DeleteAccountsAccountExternalAccountsIdRequest
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deleted_external_account'
          descript

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