> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Account

> Creates an account. User tokens create business accounts; business account API keys create connected accounts. Tax fields (`tax_remitted_by`, `product_tax_code_id`, `business_address`, `tax_identifiers`) are configured with Update Account, not at creation.



## OpenAPI

````yaml /openapi/api-v1-native.yml post /accounts
openapi: 3.1.0
info:
  title: Whop API
  description: >-
    Hand-written V1 endpoints. Merged into the GraphqlRestProxy-generated schema
    at build time.
  version: v1
servers:
  - url: https://{defaultHost}
    variables:
      defaultHost:
        default: api.whop.com/api/v1
security: []
paths:
  /accounts:
    post:
      tags:
        - Accounts
      summary: Create Account
      description: >-
        Creates an account. User tokens create business accounts; business
        account API keys create connected accounts. Tax fields
        (`tax_remitted_by`, `product_tax_code_id`, `business_address`,
        `tax_identifiers`) are configured with Update Account, not at creation.
      operationId: createAccount
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: >-
                    The email address of the account owner. Required for
                    business account API key requests.
                metadata:
                  type: object
                  additionalProperties: true
                  description: Arbitrary key/value metadata to store on the account.
        required: true
      responses:
        '201':
          description: account created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '400':
          $ref: '#/components/responses/InvalidParameters'
          description: the request body is invalid
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: missing or invalid authentication
        '403':
          $ref: '#/components/responses/Forbidden'
          description: credential lacks the required connected-account creation scope
      security:
        - bearerAuth:
            - company:create_child
components:
  schemas:
    Account:
      type: object
      properties:
        id:
          type: string
          description: Account ID, prefixed `biz_`.
        email:
          type:
            - string
            - 'null'
          description: Account owner email address.
        title:
          type: string
          description: Account display name.
        description:
          type:
            - string
            - 'null'
          description: Account promotional description.
        route:
          type: string
          description: Account public route identifier.
        logo_url:
          type:
            - string
            - 'null'
          description: Account logo image URL.
        banner_image_url:
          type:
            - string
            - 'null'
          description: Account banner image URL.
        business_type:
          type:
            - string
            - 'null'
          description: High-level business category for the account.
        country:
          type:
            - string
            - 'null'
          description: Country where the account is located.
        home_preferences:
          type: array
          items:
            type: string
            description: Public account home page preferences.
        industry_group:
          type:
            - string
            - 'null'
          description: Account industry group.
        industry_type:
          type:
            - string
            - 'null'
          description: Specific industry vertical for the account.
        invoice_prefix:
          type:
            - string
            - 'null'
          description: Prefix used for account invoices.
        onboarding_type:
          type:
            - string
            - 'null'
          description: Type of onboarding the account has completed.
        opengraph_image_url:
          type:
            - string
            - 'null'
          description: Account Open Graph image URL.
        opengraph_image_variant:
          type:
            - string
            - 'null'
          description: Account Open Graph image variant.
        other_business_description:
          type:
            - string
            - 'null'
          description: Business type details when business_type is `other`.
        other_industry_description:
          type:
            - string
            - 'null'
          description: Industry details when industry_type is `other`.
        require_2fa:
          type: boolean
          description: Whether authorized users must enable two-factor authentication.
        target_audience:
          type:
            - string
            - 'null'
          description: Target audience for this account.
        send_customer_emails:
          type: boolean
          description: >-
            Whether Whop sends transactional emails to customers on behalf of
            this account.
        show_joined_whops:
          type: boolean
          description: Whether the account appears in joined whops on other accounts.
        show_reviews_dtc:
          type: boolean
          description: Whether reviews are displayed on direct-to-consumer product pages.
        show_user_directory:
          type: boolean
          description: Whether the account shows users in the user directory.
        store_page_config:
          type: object
          description: Account store page display configuration.
        parent_account_id:
          type:
            - string
            - 'null'
          description: Parent account ID for connected accounts.
        metadata:
          type: object
          description: Arbitrary key/value metadata supplied at account creation.
        created_at:
          type: string
          description: When the account was created, as an ISO 8601 timestamp.
        use_logo_as_opengraph_image_fallback:
          type: boolean
          description: Whether the account uses its logo as the fallback Open Graph image.
        total_earned_usd:
          type:
            - number
            - 'null'
          description: >-
            Account lifetime sales, normalized to USD. Computed only on
            `retrieve` and `me` for callers with `stats:read` scope; `null`
            otherwise.
        status:
          type:
            - string
            - 'null'
          description: >-
            Whether the account can operate on Whop: `active` or `suspended`.
            Computed only on `retrieve` and `me`; `null` otherwise.
        capabilities:
          description: >-
            Payment rails enabled for this account, each `active`, `inactive`,
            or `pending` (onboarding or review in progress). Computed only on
            `retrieve` and `me` for callers with `company:balance:read` scope;
            `null` otherwise.
          oneOf:
            - $ref: '#/components/schemas/AccountCapabilities'
            - type: 'null'
        required_actions:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/AccountRequiredAction'
            description: >-
              Actions the account owner must take to unblock capabilities like
              payouts and card spend, ordered by display priority. Computed only
              on `retrieve` and `me` for callers with `company:balance:read`
              scope; `null` otherwise.
        recommended_actions:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/AccountRecommendedAction'
            description: >-
              Optional actions that unlock capabilities or grow the account,
              same shape as `required_actions`. Computed only on `retrieve` and
              `me`; `null` otherwise.
        tax_remitted_by:
          type:
            - string
            - 'null'
          description: >-
            Who calculates and remits tax for the account: `whop` (Whop
            calculates and remits), `self` (Whop calculates; the account
            collects and remits), or `none` (neither; the account is
            responsible). `null` until the account enrolls in the Whop tax
            service.
        product_tax_code:
          type:
            - object
            - 'null'
          description: >-
            Tax classification code applied by default to the account's
            products, with `id`, `name`, and `product_type`. `null` when no
            default is set.
        business_address:
          type:
            - object
            - 'null'
          description: >-
            Account business address used to calculate tax, with `line1`,
            `line2`, `city`, `state`, `postal_code`, and `country`. `null` when
            no address is set.
        tax_identifiers:
          type: array
          description: >-
            Account tax/VAT registrations, each with `id`, `tax_id_type`, and
            `tax_id_value`. Empty when none are set.
        total_usd:
          type:
            - string
            - 'null'
          description: >-
            Total USD value across balances with known exchange rates. Computed
            only on single-account reads (`retrieve` and `me`); `null` on list
            responses, writes, missing balance-read permission, or unavailable
            balance source.
        balances:
          type: array
          items:
            $ref: '#/components/schemas/AccountBalanceToken'
            description: >-
              Account holdings, each with USD value. Empty when `total_usd` is
              `null`.
        verification:
          type: object
          description: >-
            Account identity verification status for the `individual` (KYC) and
            `business` (KYB) profiles. Each is `null` until created, otherwise a
            `status` of `not_started`, `pending`, `approved`, or `rejected`.
        wallet:
          description: >-
            Account primary crypto wallet, or `null` if none has been
            provisioned.
          oneOf:
            - $ref: '#/components/schemas/AccountWallet'
            - type: 'null'
        social_links:
          type: array
          items:
            $ref: '#/components/schemas/AccountSocialLink'
            description: Account social links.
      required:
        - id
        - email
        - title
        - description
        - route
        - logo_url
        - banner_image_url
        - business_type
        - country
        - home_preferences
        - industry_group
        - industry_type
        - invoice_prefix
        - onboarding_type
        - opengraph_image_url
        - opengraph_image_variant
        - other_business_description
        - other_industry_description
        - require_2fa
        - target_audience
        - send_customer_emails
        - show_joined_whops
        - show_reviews_dtc
        - show_user_directory
        - store_page_config
        - parent_account_id
        - metadata
        - created_at
        - use_logo_as_opengraph_image_fallback
        - total_earned_usd
        - status
        - capabilities
        - required_actions
        - recommended_actions
        - tax_remitted_by
        - product_tax_code
        - business_address
        - tax_identifiers
        - total_usd
        - balances
        - verification
        - wallet
        - social_links
    AccountCapabilities:
      type: object
      properties:
        accept_card_payments:
          type: string
          description: Card payins, including Apple Pay and Google Pay
          enum:
            - active
            - inactive
            - pending
          example: active
        accept_bank_payments:
          type: string
          description: 'Bank payins: debits, transfers, and local bank rails'
          enum:
            - active
            - inactive
            - pending
          example: active
        accept_bnpl_payments:
          type: string
          description: Buy-now-pay-later payins; requires approval
          enum:
            - active
            - inactive
            - pending
          example: active
        standard_payout:
          type: string
          description: Standard payouts to an external payout destination
          enum:
            - active
            - inactive
            - pending
          example: active
        instant_payout:
          type: string
          description: Instant payouts to an eligible payout destination
          enum:
            - active
            - inactive
            - pending
          example: active
        crypto_payout:
          type: string
          description: On-chain payouts to a crypto wallet
          enum:
            - active
            - inactive
            - pending
          example: active
        transfer:
          type: string
          description: Transfers to other accounts
          enum:
            - active
            - inactive
            - pending
          example: active
        bank_deposit:
          type: string
          description: Deposits by bank wire or ACH to the account's virtual bank account
          enum:
            - active
            - inactive
            - pending
          example: active
        crypto_deposit:
          type: string
          description: On-chain deposits to the account's crypto wallet
          enum:
            - active
            - inactive
            - pending
          example: active
        card_deposit:
          type: string
          description: Balance top-ups by charging a stored payment method
          enum:
            - active
            - inactive
            - pending
          example: active
        card_issuing:
          type: string
          description: Issuing Whop cards; requires card application approval
          enum:
            - active
            - inactive
            - pending
          example: active
      required:
        - accept_card_payments
        - accept_bank_payments
        - accept_bnpl_payments
        - standard_payout
        - instant_payout
        - crypto_payout
        - transfer
        - bank_deposit
        - crypto_deposit
        - card_deposit
        - card_issuing
    AccountRequiredAction:
      type: object
      properties:
        action:
          type: string
          description: >-
            What the holder must do; new values may be added, so handle unknown
            actions gracefully
          enum:
            - deposit_funds
            - submit_information_request
            - verify_identity
            - connect_fulfillment_tracker
          example: deposit_funds
        status:
          type: string
          description: required (act now) or pending (under review)
          enum:
            - required
            - pending
          example: required
        title:
          type: string
          description: Headline for the action
        description:
          type: string
          description: Supporting copy, or empty
        cta_label:
          type: string
          description: Button label, or empty when there is no button
        cta:
          type:
            - string
            - 'null'
          description: The URL the call-to-action links to, or null when there is no button
        icon_url:
          type:
            - string
            - 'null'
          description: The URL of the action's illustration icon, or null if it has none
        blocked_capabilities:
          type: array
          items:
            type: string
            description: Capabilities gated until this is resolved
      required:
        - action
        - status
        - title
        - description
        - cta_label
        - cta
        - icon_url
        - blocked_capabilities
    AccountRecommendedAction:
      type: object
      properties:
        action:
          type: string
          description: >-
            The recommendation; new values may be added, so handle unknown
            actions gracefully
          enum:
            - apply_for_financing
            - migrate_from_stripe
            - accept_first_payment
            - join_whop_university
          example: apply_for_financing
        status:
          type: string
          description: Always optional — never blocking
          enum:
            - optional
          example: optional
        title:
          type: string
          description: Headline for the recommendation
        description:
          type: string
          description: Supporting copy, or empty
        cta_label:
          type: string
          description: Button label
        cta:
          type: string
          description: The URL the call-to-action links to
        icon_url:
          type:
            - string
            - 'null'
          description: Illustration icon URL, or `null`
        blocked_capabilities:
          type: array
          items:
            type: string
            description: Capabilities this would unlock, or empty
      required:
        - action
        - status
        - title
        - description
        - cta_label
        - cta
        - icon_url
        - blocked_capabilities
    AccountBalanceToken:
      type: object
      properties:
        symbol:
          type: string
          description: Holding display symbol, such as `USDT`, `cbBTC`, or `EUR`.
        name:
          type: string
          description: The holding's display name
        balance:
          type: string
          description: Total amount held in native units, as a decimal string.
        value_usd:
          type:
            - string
            - 'null'
          description: Holding USD value, or `null` when no exchange rate is available.
        price_usd:
          type:
            - number
            - 'null'
          description: USD price per unit, or `null` when no exchange rate is available.
        icon_url:
          type:
            - string
            - 'null'
          description: Holding icon URL.
        breakdown:
          type: object
          description: >-
            Balance split into available, pending, and reserve amounts, as
            native-unit decimal strings. On-chain crypto is entirely available;
            good_funds and fiat cash can have pending or reserve portions.
      required:
        - symbol
        - name
        - balance
        - value_usd
        - price_usd
        - icon_url
        - breakdown
    AccountWallet:
      type: object
      properties:
        id:
          type: string
          description: Wallet ID, prefixed `wallet_`.
        address:
          type: string
          description: The on-chain address of the wallet
        network:
          type: string
          description: The blockchain network the wallet lives on
          enum:
            - solana
            - ethereum
            - bitcoin
          example: solana
      required:
        - id
        - address
        - network
    AccountSocialLink:
      type: object
      properties:
        id:
          type: string
          description: The ID of the social link
        website:
          type: string
          description: The social platform for this link
          enum:
            - x
            - instagram
            - facebook
            - tiktok
            - youtube
            - linkedin
            - twitch
            - website
            - custom
          example: x
        url:
          type: string
          description: The social link URL
        title:
          type:
            - string
            - 'null'
          description: The optional display title for the social link
      required:
        - id
        - website
        - url
        - title
    V1ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: Machine-readable error code.
            message:
              type: string
              description: Human-readable error message.
          required:
            - type
            - message
      required:
        - error
  responses:
    InvalidParameters:
      description: Invalid Parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: auth-scheme
      description: >-
        An account API key, account scoped JWT, app API key, or user OAuth
        token.

````