Stripe Create API

The Create API from Stripe — 10 operation(s) for create.

Operations 10

POST /v1/account_sessions Stripe Create Account Session #
POST /v1/accounts Stripe Create Account #
POST /v1/accounts/{account}/bank_accounts Stripe Create Bank Account #
POST /v1/accounts/{account}/external_accounts Stripe Create External Account #
POST /v1/accounts/{account}/people Stripe Create Person #
POST /v1/accounts/{account}/persons Stripe Create Person #
POST /v1/apple_pay/domains Stripe Create Apple Pay Domain #
POST /v1/application_fees/{id}/refunds Stripe Create Application Fee Refund #

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/stripe-create-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

stripe-create-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Stripe Accounts Account Create 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: Create
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:
      - Create
      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:
      - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts:
    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:
      - Create
      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:
      - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/external_accounts:
    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:
      - Create
      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:
      - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/people:
    post:
      description: <p>Creates a new person.</p>
      operationId: PostAccountsAccountPeople
      parameters:
      - in: path
        name: account
        required: true
        schema:
          maxLength: 5000
          type: string
        style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              additional_tos_acceptances:
                explode: true
                style: deepObject
              address:
                explode: true
                style: deepObject
              address_kana:
                explode: true
                style: deepObject
              address_kanji:
                explode: true
                style: deepObject
              dob:
                explode: true
                style: deepObject
              documents:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              full_name_aliases:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
              registered_address:
                explode: true
                style: deepObject
              relationship:
                explode: true
                style: deepObject
              verification:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountsAccountPeopleRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/person'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create Person
      tags:
      - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/accounts/{account}/persons:
    post:
      description: <p>Creates a new person.</p>
      operationId: PostAccountsAccountPersons
      parameters:
      - in: path
        name: account
        required: true
        schema:
          maxLength: 5000
          type: string
        style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              additional_tos_acceptances:
                explode: true
                style: deepObject
              address:
                explode: true
                style: deepObject
              address_kana:
                explode: true
                style: deepObject
              address_kanji:
                explode: true
                style: deepObject
              dob:
                explode: true
                style: deepObject
              documents:
                explode: true
                style: deepObject
              expand:
                explode: true
                style: deepObject
              full_name_aliases:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
              registered_address:
                explode: true
                style: deepObject
              relationship:
                explode: true
                style: deepObject
              verification:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              $ref: '#/components/schemas/PostAccountsAccountPersonsRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/person'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create Person
      tags:
      - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/apple_pay/domains:
    post:
      description: <p>Create an apple pay domain.</p>
      operationId: PostApplePayDomains
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              expand:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              properties:
                domain_name:
                  type: string
                expand:
                  description: Specifies which fields in the response should be expanded.
                  items:
                    maxLength: 5000
                    type: string
                  type: array
              required:
              - domain_name
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apple_pay_domain'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create Apple Pay Domain
      tags:
      - Create
      x-api-evangelist-processing:
        ChooseTags: true
  /v1/application_fees/{id}/refunds:
    post:
      description: '<p>Refunds an application fee that has previously been collected but not yet refunded.

        Funds will be refunded to the Stripe account from which the fee was originally collected.</p>


        <p>You can optionally refund only part of an application fee.

        You can do so multiple times, until the entire fee has been refunded.</p>


        <p>Once entirely refunded, an application fee cant be refunded again.

        This method will raise an error when called on an already-refunded application fee,

        or when trying to refund more money than is left on an application fee.</p>'
      operationId: PostApplicationFeesIdRefunds
      parameters:
      - in: path
        name: id
        required: true
        schema:
          maxLength: 5000
          type: string
        style: simple
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding:
              expand:
                explode: true
                style: deepObject
              metadata:
                explode: true
                style: deepObject
            schema:
              additionalProperties: false
              properties:
                amount:
                  description: A positive integer, in _cents (or local equivalent)_, representing how much of this fee to refund. Can refund only up to the remaining unrefunded amount of the fee.
                  type: integer
                expand:
                  description: Specifies which fields in the response should be expanded.
                  items:
                    maxLength: 5000
                    type: string
                  type: array
                metadata:
                  additionalProperties:
                    type: string
                  description: Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
                  type: object
              type: object
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fee_refund'
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
          description: Error response.
      summary: Stripe Create Application Fee Refund
      tags:
      - Create
      x-api-evangelist-processing:
        ChooseTags: true
components:
  schemas:
    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
    application_fee:
      description: ''
      properties:
        account:
          anyOf:
          - maxLength: 5000
            type: string
          - $ref: '#/components/schemas/account'
          description: ID of the Stripe account this fee was taken from.
          x-expansionResources:
            oneOf:
            - $ref: '#/components/schemas/account'
        amount:
          description: Amount earned, in cents (or local equivalent).
          type: integer
        amount_refunded:
          description: Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the fee if a partial refund was issued)
          type: integer
        application:
          anyOf:
          - maxLength: 5000
            type: string
          - $ref: '#/components/schemas/application'
          description: ID of the Connect application that earned the fee.
          x-expansionResources:
            oneOf:
            - $ref: '#/components/schemas/application'
        balance_transaction:
          anyOf:
          - maxLength: 5000
            type: string
          - $ref: '#/components/schemas/balance_transaction'
          description: Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).
          x-expansionResources:
            oneOf:
            - $ref: '#/components/schemas/balance_transaction'
        charge:
          anyOf:
          - maxLength: 5000
            type: string
          - $ref: '#/components/schemas/charge'
          description: ID of the charge that the application fee was taken from.
          x-expansionResources:
            oneOf:
            - $ref: '#/components/schemas/charge'
        created:
          description: Time at which the object was created. Measured in seconds since the Unix epoch.
          format: unix-time
          type: integer
        currency:
          description: Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
          type: string
        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:
          - application_fee
          type: string
        originating_transaction:
          anyOf:
          - maxLength: 5000
            type: string
          - $ref: '#/components/schemas/charge'
          description: ID of the corresponding charge on the platform account, if this fee was the result of a charge using the `destination` parameter.
          x-expansionResources:
            oneOf:
            - $ref: '#/components/schemas/charge'
        refunded:
          description: Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.
          type: boolean
        refunds:
          description: A list of refunds that have been applied to the fee.
          properties:
            data:
              description: Details about each object.
              items:
                $ref: '#/components/schemas/fee_refund'
              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
              type: string
          required:
          - data
          - has_more
          - object
          - url
          title: FeeRefundList
          type: object
          x-expandableFields:
          - data
      required:
      - account
      - amount
      - amount_refunded
      - application
      - charge
      - created
      - currency
      - id
      - livemode
      - object
      - refunded
      - refunds
      title: PlatformFee
      type: object
      x-expandableFields:
      - account
      - application
      - balance_transaction
      - charge
      - originating_transaction
      - refunds
      x-resourceId: application_fee
    error:
      description: An error response from the Stripe API
      properties:
        error:
          $ref: '#/components/schemas/api_errors'
      required:
      - error
      type: object
    external_account:
      anyOf:
      - $ref: '#/components/schemas/bank_account'
      - $ref: '#/components/schemas/card'
      title: Polymorphic
      x-resourceId: external_account
      x-stripeBypassValidation: true
    account:
      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.


        For Custom accounts, the properties below are always returned. For other accounts, some properties are returned until that

        account has started to go through Connect Onboarding. Once you create an [Account Link](https://stripe.com/docs/api/account_links)

        for a Standard or Express account, some parameters are no longer returned. These are marked as **Custom Only** or **Custom and Express**

        below. Learn about the differences [between accounts](https://stripe.com/docs/connect/accounts).'
      properties:
        business_profile:
          anyOf:
          - $ref: '#/components/schemas/account_business_profile'
          description: Business information about the account.
        business_type:
          description: The business type.
          enum:
          - company
          - government_entity
          - individual
          - non_profit
          type:
          - string
          - 'null'
          x-stripeBypassValidation: true
        capabilities:
          $ref: '#/components/schemas/account_capabilities'
        charges_enabled:
          description: Whether the account can create live charges.
          type: boolean
        company:
          $ref: '#/components/schemas/legal_entity_company'
        controller:
          $ref: '#/components/schemas/account_unification_account_controller'
        country:
          description: The account's country.
          maxLength: 5000
          type: string
        created:
          description: Time at which the account was connected. Measured in seconds since the Unix epoch.
          format: unix-time
          type: integer
        default_currency:
          description: Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://stripe.com/docs/payouts).
          maxLength: 5000
          type: string
        details_submitted:
          description: Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
          type: boolean
        email:
          description: An email address associated with the account. It's not used for authentication and Stripe doesn't market to this field without explicit approval from the platform.
          maxLength: 5000
          type:
          - string
          - 'null'
        external_accounts:
          description: External accounts (bank accounts and debit cards) currently attached to this account
          properties:
            data:
              description: The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards.
              items:
                anyOf:
                - $ref: '#/components/schemas/bank_account'
                - $ref: '#/components/schemas/card'
                title: Polymorphic
                x-stripeBypassValidation: true
              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
              type: string
          required:
          - data
          - has_more
          - object
          - url
          title: ExternalAccountList
          type: object
          x-expandableFields:
          - data
        future_requirements:
          $ref: '#/components/schemas/account_future_requirements'
        id:
          description: Unique identifier for the object.
          maxLength: 5000
          type: string
        individual:
          $ref: '#/components/schemas/person'
        metadata:
          additionalProperties:
            maxLength: 500
            type: string
          description: Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          type: object
        object:
          description: String representing the object's type. Objects of the same type share the same value.
          enum:
          - account
          type: string
        payouts_enabled:
          description: Whether Stripe can send payouts to this account.
          type: boolean
        requirements:
          $ref: '#/components/schemas/account_requirements'
        settings:
          anyOf:
          - $ref: '#/components/schemas/account_settings'
          description: Options for customizing how the account functions within Stripe.
        tos_acceptance:
          $ref: '#/components/schemas/account_tos_acceptance'
        type:
          description: The Stripe account type. Can be `standard`, `express`, or `custom`.
          enum:
          - custom
          - express
          - standard
          type: string
      required:
      - id
      - object
      title: Account
      type: object
      x-expandableFields:
      - business_profile
      - capabilities
      - company
      - controller
      - external_accounts
      - future_requirements
      - individual
      - requirements
      - settings
      - tos_acceptance
      x-resourceId: account
    apple_pay_domain:
      description: ''
      properties:
        created:
          description: Time at which the object was created. Measured in seconds since the Unix epoch.
          format: unix-time
          type: integer
        domain_name:
          maxLength: 5000
          type: string
        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:
          - apple_pay_domain
          type: string
      required:
      - created
      - domain_name
      - id
      - livemode
      - object
      title: ApplePayDomain
      type: object
      x-expandableFields: []
      x-resourceId: apple_pay_domain
    fee_refund:
      description: '`Application Fee Refund` objects allow you to refund an application fee that

        has previously been created but not yet refunded. Funds will be refunded to

        the Stripe account from which the fee was originally collected.


        Related guide: [Refunding application fees](https://stripe.com/docs/connect/destination-charges#refunding-app-fee)'
      properties:
        amount:
          description: Amount, in cents (or local equivalent).
          type: integer
        balance_transaction:
          anyOf:
          - maxLength: 5000
            type: string
          - $ref: '#/components/schemas/balance_transaction'
          description: Balance transaction that describes the impact on your account balance.
          x-expansionResources:
            oneOf:
            - $ref: '#/components/schemas/balance_transaction'
        created:
          description: Time at which the object was created. Measured in seconds since the Unix epoch.
          format: unix-time
          type: integer
        currency:
          description: Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
          type: string
        fee:
          anyOf:
          - maxLength: 5000
            type: string
          - $ref: '#/components/schemas/application_fee'
          description: ID of the application fee that was refunded.
          x-expansionResources:
            oneOf:
            - $ref: '#/components/schemas/application_fee'
        id:
          description: Unique identifier for the object.
          maxLength: 5000
          type: string
        metadata:
          additionalProperties:
            maxLength: 500
            type: string
          description: Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
          type:
          - object
          - 'null'
        object:
          description: String representing t

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