Stripe Connect API

Stripe Connect is a set of programmable APIs and tools that lets you facilitate payments on your software platform, build a marketplace, and pay out sellers or service providers globally.

OpenAPI Specification

stripe-connect-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Stripe Connect API
  description: >-
    Stripe Connect is a set of programmable APIs and tools that lets you
    facilitate payments on your software platform, build a marketplace, and
    pay out sellers or service providers globally.
  contact:
    email: [email protected]
    name: Stripe Dev Platform Team
    url: https://stripe.com
  termsOfService: https://stripe.com/us/terms/
  version: '2024-06-20'
  x-stripeSpecFilename: spec3
security:
  - basicAuth: []
  - bearerAuth: []
servers:
  - url: https://api.stripe.com/
paths:
  /v1/accounts:
    get:
      summary: Stripe List Connected Accounts
      description: <p>Returns a list of accounts connected to your platform via Connect.</p>
      operationId: GetAccounts
      parameters:
        - name: ending_before
          in: query
          required: false
          schema:
            type: string
            maxLength: 5000
        - name: limit
          in: query
          required: false
          schema:
            type: integer
        - name: starting_after
          in: query
          required: false
          schema:
            type: string
            maxLength: 5000
        - name: expand
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              maxLength: 5000
          style: deepObject
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                      - list
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/account'
                  has_more:
                    type: boolean
                  url:
                    type: string
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
    post:
      summary: Stripe Create Connected Account
      description: <p>Creates a new connected account with your platform.</p>
      operationId: PostAccounts
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - custom
                    - express
                    - standard
                country:
                  type: string
                email:
                  type: string
                capabilities:
                  type: object
                business_type:
                  type: string
                  enum:
                    - company
                    - government_entity
                    - individual
                    - non_profit
                business_profile:
                  type: object
                  properties:
                    mcc:
                      type: string
                    name:
                      type: string
                    url:
                      type: string
                    support_email:
                      type: string
                    support_phone:
                      type: string
                    support_url:
                      type: string
                company:
                  type: object
                individual:
                  type: object
                metadata:
                  type: object
                  additionalProperties:
                    type: string
                tos_acceptance:
                  type: object
                  properties:
                    date:
                      type: integer
                    ip:
                      type: string
                    user_agent:
                      type: string
                settings:
                  type: object
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
  /v1/accounts/{account}:
    get:
      summary: Stripe Retrieve Connected Account
      description: <p>Retrieves the details of an account.</p>
      operationId: GetAccountsAccount
      parameters:
        - name: account
          in: path
          required: true
          schema:
            type: string
            maxLength: 5000
        - name: expand
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              maxLength: 5000
          style: deepObject
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
    post:
      summary: Stripe Update Connected Account
      description: <p>Updates a connected account by setting the values of the parameters passed.</p>
      operationId: PostAccountsAccount
      parameters:
        - name: account
          in: path
          required: true
          schema:
            type: string
            maxLength: 5000
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                business_profile:
                  type: object
                business_type:
                  type: string
                capabilities:
                  type: object
                company:
                  type: object
                email:
                  type: string
                individual:
                  type: object
                metadata:
                  type: object
                  additionalProperties:
                    type: string
                settings:
                  type: object
                tos_acceptance:
                  type: object
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
    delete:
      summary: Stripe Delete Connected Account
      description: <p>Deletes a connected account. You can only delete accounts that your platform has created using Connect.</p>
      operationId: DeleteAccountsAccount
      parameters:
        - name: account
          in: path
          required: true
          schema:
            type: string
            maxLength: 5000
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  object:
                    type: string
                  deleted:
                    type: boolean
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
  /v1/accounts/{account}/reject:
    post:
      summary: Stripe Reject Connected Account
      description: <p>Rejects a connected account and disables the ability to make charges or receive payouts.</p>
      operationId: PostAccountsAccountReject
      parameters:
        - name: account
          in: path
          required: true
          schema:
            type: string
            maxLength: 5000
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - reason
              properties:
                reason:
                  type: string
                  description: The reason for rejecting the account.
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
  /v1/account_links:
    post:
      summary: Stripe Create Account Link
      description: <p>Creates an AccountLink object for Connect onboarding.</p>
      operationId: PostAccountLinks
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - account
                - refresh_url
                - return_url
                - type
              properties:
                account:
                  type: string
                  maxLength: 5000
                refresh_url:
                  type: string
                return_url:
                  type: string
                type:
                  type: string
                  enum:
                    - account_onboarding
                    - account_update
                collect:
                  type: string
                  enum:
                    - currently_due
                    - eventually_due
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_link'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
  /v1/account_sessions:
    post:
      summary: Stripe Create Account Session
      description: <p>Creates an AccountSession object for embedded Connect components.</p>
      operationId: PostAccountSessions
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - account
                - components
              properties:
                account:
                  type: string
                  maxLength: 5000
                components:
                  type: object
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_session'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
  /v1/accounts/{account}/login_links:
    post:
      summary: Stripe Create Login Link
      description: <p>Creates a single-use login link for a connected account to access their Stripe dashboard.</p>
      operationId: PostAccountsAccountLoginLinks
      parameters:
        - name: account
          in: path
          required: true
          schema:
            type: string
            maxLength: 5000
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/login_link'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
  /v1/accounts/{account}/capabilities:
    get:
      summary: Stripe List Account Capabilities
      description: <p>Returns a list of capabilities associated with the account.</p>
      operationId: GetAccountsAccountCapabilities
      parameters:
        - name: account
          in: path
          required: true
          schema:
            type: string
            maxLength: 5000
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                      - list
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/capability'
                  has_more:
                    type: boolean
                  url:
                    type: string
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      tags:
        - Connect
components:
  schemas:
    account:
      type: object
      properties:
        id:
          type: string
          maxLength: 5000
        object:
          type: string
          enum:
            - account
        business_profile:
          type:
            - object
            - 'null'
        business_type:
          type:
            - string
            - 'null'
        capabilities:
          type:
            - object
            - 'null'
        charges_enabled:
          type: boolean
        company:
          type:
            - object
            - 'null'
        country:
          type:
            - string
            - 'null'
        created:
          type: integer
        default_currency:
          type:
            - string
            - 'null'
        details_submitted:
          type: boolean
        email:
          type:
            - string
            - 'null'
        external_accounts:
          type:
            - object
            - 'null'
        individual:
          type:
            - object
            - 'null'
        metadata:
          type:
            - object
            - 'null'
          additionalProperties:
            type: string
        payouts_enabled:
          type: boolean
        requirements:
          type:
            - object
            - 'null'
        settings:
          type:
            - object
            - 'null'
        tos_acceptance:
          type:
            - object
            - 'null'
        type:
          type:
            - string
            - 'null'
          enum:
            - custom
            - express
            - standard
      required:
        - id
        - object
    account_link:
      type: object
      properties:
        object:
          type: string
          enum:
            - account_link
        created:
          type: integer
        expires_at:
          type: integer
        url:
          type: string
      required:
        - object
        - created
        - expires_at
        - url
    account_session:
      type: object
      properties:
        object:
          type: string
          enum:
            - account_session
        account:
          type: string
        client_secret:
          type: string
        components:
          type: object
        expires_at:
          type: integer
        livemode:
          type: boolean
      required:
        - object
        - account
        - client_secret
        - components
        - expires_at
        - livemode
    login_link:
      type: object
      properties:
        object:
          type: string
          enum:
            - login_link
        created:
          type: integer
        url:
          type: string
      required:
        - object
        - created
        - url
    capability:
      type: object
      properties:
        id:
          type: string
          maxLength: 5000
        object:
          type: string
          enum:
            - capability
        account:
          type: string
        requested:
          type: boolean
        requested_at:
          type:
            - integer
            - 'null'
        requirements:
          type:
            - object
            - 'null'
        status:
          type: string
          enum:
            - active
            - disabled
            - inactive
            - pending
            - unrequested
      required:
        - id
        - object
        - account
        - requested
        - status
    error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            message:
              type: string
            code:
              type: string
            param:
              type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
tags:
  - name: Connect