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.0.0
info:
  title: Stripe Accounts Account Connect 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: Connect
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_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
    error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            message:
              type: string
            code:
              type: string
            param:
              type: string
    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
    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
    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
    login_link:
      type: object
      properties:
        object:
          type: string
          enum:
          - login_link
        created:
          type: integer
        url:
          type: string
      required:
      - object
      - created
      - url