> ## 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.

# Account

An Account represents a person or business in Whop. Each account has its own profile, wallet, and settings, so you can create one for every customer, creator, merchant, or seller your integration supports.

Create an account when someone needs to hold funds, receive payments, send money, or use account-scoped API features. Save the returned `id` and `wallet` details, and use `metadata` to store your own stable identifier, like a user ID from your system.

## Endpoints

| Endpoint                                                                                | Request                                                                       |
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [Create Account](/api-reference/beta/accounts/create-account)                           | <Badge color="green" size="sm" stroke>POST</Badge> `/accounts`                |
| [Update Account](/api-reference/beta/accounts/update-account)                           | <Badge color="orange" size="sm" stroke>PATCH</Badge> `/accounts/{account_id}` |
| [Retrieve Account](/api-reference/beta/accounts/retrieve-account)                       | <Badge color="blue" size="sm" stroke>GET</Badge> `/accounts/{account_id}`     |
| [Retrieve Requesting Account](/api-reference/beta/accounts/retrieve-requesting-account) | <Badge color="blue" size="sm" stroke>GET</Badge> `/accounts/me`               |
| [List Accounts](/api-reference/beta/accounts/list-accounts)                             | <Badge color="blue" size="sm" stroke>GET</Badge> `/accounts`                  |

## Attributes

<Columns cols={2}>
  <Column>
    <ResponseField name="balances" type="object[]" required>
      Account holdings, each with USD value. Empty when `total_usd` is `null`.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="balance" type="string" required>
          Total amount held in native units, as a decimal string.
        </ResponseField>

        <ResponseField name="breakdown" type="object" required>
          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.
        </ResponseField>

        <ResponseField name="icon_url" type="string | null" required>
          Holding icon URL.
        </ResponseField>

        <ResponseField name="name" type="string" required>
          The holding's display name
        </ResponseField>

        <ResponseField name="price_usd" type="number | null" required>
          USD price per unit, or `null` when no exchange rate is available.
        </ResponseField>

        <ResponseField name="symbol" type="string" required>
          Holding display symbol, such as `USDT`, `cbBTC`, or `EUR`.
        </ResponseField>

        <ResponseField name="value_usd" type="string | null" required>
          Holding USD value, or `null` when no exchange rate is available.
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="banner_image_url" type="string | null" required>
      Account banner image URL.
    </ResponseField>

    <ResponseField name="business_address" type="object | null" required>
      Account business address used to calculate tax, with `line1`, `line2`, `city`,
      `state`, `postal_code`, and `country`. `null` when no address is set.
    </ResponseField>

    <ResponseField name="business_type" type="string | null" required>
      High-level business category for the account.
    </ResponseField>

    <ResponseField name="capabilities" type="object | null" required>
      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.
    </ResponseField>

    <ResponseField name="country" type="string | null" required>
      Country where the account is located.
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      When the account was created, as an ISO 8601 timestamp.
    </ResponseField>

    <ResponseField name="description" type="string | null" required>
      Account promotional description.
    </ResponseField>

    <ResponseField name="email" type="string | null" required>
      Account owner email address.
    </ResponseField>

    <ResponseField name="home_preferences" type="string[]" required>
      Public account home page preferences.
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Account ID, prefixed `biz_`.
    </ResponseField>

    <ResponseField name="industry_group" type="string | null" required>
      Account industry group.
    </ResponseField>

    <ResponseField name="industry_type" type="string | null" required>
      Specific industry vertical for the account.
    </ResponseField>

    <ResponseField name="invoice_prefix" type="string | null" required>
      Prefix used for account invoices.
    </ResponseField>

    <ResponseField name="logo_url" type="string | null" required>
      Account logo image URL.
    </ResponseField>

    <ResponseField name="metadata" type="object" required>
      Arbitrary key/value metadata supplied at account creation.
    </ResponseField>

    <ResponseField name="onboarding_type" type="string | null" required>
      Type of onboarding the account has completed.
    </ResponseField>

    <ResponseField name="opengraph_image_url" type="string | null" required>
      Account Open Graph image URL.
    </ResponseField>

    <ResponseField name="opengraph_image_variant" type="string | null" required>
      Account Open Graph image variant.
    </ResponseField>

    <ResponseField name="other_business_description" type="string | null" required>
      Business type details when business\_type is `other`.
    </ResponseField>

    <ResponseField name="other_industry_description" type="string | null" required>
      Industry details when industry\_type is `other`.
    </ResponseField>

    <ResponseField name="parent_account_id" type="string | null" required>
      Parent account ID for connected accounts.
    </ResponseField>

    <ResponseField name="product_tax_code" type="object | null" required>
      Tax classification code applied by default to the account's products, with
      `id`, `name`, and `product_type`. `null` when no default is set.
    </ResponseField>

    <ResponseField name="recommended_actions" type="object[] | null" required>
      Optional actions that unlock capabilities or grow the account, same shape as `required_actions`. Computed only on `retrieve` and `me`; `null` otherwise.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="action" type="string" required>
          The recommendation; new values may be added, so handle unknown actions gracefully

          Available options: `apply_for_financing`, `migrate_from_stripe`, `accept_first_payment`, `join_whop_university`
        </ResponseField>

        <ResponseField name="blocked_capabilities" type="string[]" required>
          Capabilities this would unlock, or empty
        </ResponseField>

        <ResponseField name="cta" type="string" required>
          The URL the call-to-action links to
        </ResponseField>

        <ResponseField name="cta_label" type="string" required>
          Button label
        </ResponseField>

        <ResponseField name="description" type="string" required>
          Supporting copy, or empty
        </ResponseField>

        <ResponseField name="icon_url" type="string | null" required>
          Illustration icon URL, or `null`
        </ResponseField>

        <ResponseField name="status" type="string" required>
          Always optional — never blocking

          Available options: `optional`
        </ResponseField>

        <ResponseField name="title" type="string" required>
          Headline for the recommendation
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="require_2fa" type="boolean" required>
      Whether authorized users must enable two-factor authentication.
    </ResponseField>

    <ResponseField name="required_actions" type="object[] | null" required>
      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.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="action" type="string" required>
          What the holder must do; new values may be added, so handle unknown actions gracefully

          Available options: `deposit_funds`, `submit_information_request`, `verify_identity`, `connect_fulfillment_tracker`
        </ResponseField>

        <ResponseField name="blocked_capabilities" type="string[]" required>
          Capabilities gated until this is resolved
        </ResponseField>

        <ResponseField name="cta" type="string | null" required>
          The URL the call-to-action links to, or null when there is no button
        </ResponseField>

        <ResponseField name="cta_label" type="string" required>
          Button label, or empty when there is no button
        </ResponseField>

        <ResponseField name="description" type="string" required>
          Supporting copy, or empty
        </ResponseField>

        <ResponseField name="icon_url" type="string | null" required>
          The URL of the action's illustration icon, or null if it has none
        </ResponseField>

        <ResponseField name="status" type="string" required>
          required (act now) or pending (under review)

          Available options: `required`, `pending`
        </ResponseField>

        <ResponseField name="title" type="string" required>
          Headline for the action
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="route" type="string" required>
      Account public route identifier.
    </ResponseField>

    <ResponseField name="send_customer_emails" type="boolean" required>
      Whether Whop sends transactional emails to customers on behalf of this
      account.
    </ResponseField>

    <ResponseField name="show_joined_whops" type="boolean" required>
      Whether the account appears in joined whops on other accounts.
    </ResponseField>

    <ResponseField name="show_reviews_dtc" type="boolean" required>
      Whether reviews are displayed on direct-to-consumer product pages.
    </ResponseField>

    <ResponseField name="show_user_directory" type="boolean" required>
      Whether the account shows users in the user directory.
    </ResponseField>

    <ResponseField name="social_links" type="object[]" required>
      Account social links.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="id" type="string" required>
          The ID of the social link
        </ResponseField>

        <ResponseField name="title" type="string | null" required>
          The optional display title for the social link
        </ResponseField>

        <ResponseField name="url" type="string" required>
          The social link URL
        </ResponseField>

        <ResponseField name="website" type="string" required>
          The social platform for this link

          Available options: `x`, `instagram`, `facebook`, `tiktok`, `youtube`, `linkedin`, `twitch`, `website`, `custom`
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="status" type="string | null" required>
      Whether the account can operate on Whop: `active` or `suspended`. Computed
      only on `retrieve` and `me`; `null` otherwise.
    </ResponseField>

    <ResponseField name="store_page_config" type="object" required>
      Account store page display configuration.
    </ResponseField>

    <ResponseField name="target_audience" type="string | null" required>
      Target audience for this account.
    </ResponseField>

    <ResponseField name="tax_identifiers" type="object[]" required>
      Account tax/VAT registrations, each with `id`, `tax_id_type`, and
      `tax_id_value`. Empty when none are set.
    </ResponseField>

    <ResponseField name="tax_remitted_by" type="string | null" required>
      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.
    </ResponseField>

    <ResponseField name="title" type="string" required>
      Account display name.
    </ResponseField>

    <ResponseField name="total_earned_usd" type="number | null" required>
      Account lifetime sales, normalized to USD. Computed only on `retrieve` and
      `me` for callers with `stats:read` scope; `null` otherwise.
    </ResponseField>

    <ResponseField name="total_usd" type="string | null" required>
      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.
    </ResponseField>

    <ResponseField name="use_logo_as_opengraph_image_fallback" type="boolean" required>
      Whether the account uses its logo as the fallback Open Graph image.
    </ResponseField>

    <ResponseField name="verification" type="object" required>
      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`.
    </ResponseField>

    <ResponseField name="wallet" type="object | null" required>
      Account primary crypto wallet, or `null` if none has been provisioned.
    </ResponseField>
  </Column>

  <Column>
    <div className="api-resource-sticky-example">
      ```json Account theme={null}
      {
      	"balances": [
      		{
      			"balance": "1250.5",
      			"breakdown": {
      				"available": "1250.5",
      				"pending": "0",
      				"reserve": "0"
      			},
      			"icon_url": "https://cdn.whop.com/tokens/usdt.png",
      			"name": "Tether USD",
      			"price_usd": 1,
      			"symbol": "USDT",
      			"value_usd": "1250.50"
      		},
      		{
      			"balance": "45.00",
      			"breakdown": {
      				"available": "40.00",
      				"pending": "5.00",
      				"reserve": "0"
      			},
      			"icon_url": null,
      			"name": "EUR",
      			"price_usd": 1.11,
      			"symbol": "EUR",
      			"value_usd": "50.00"
      		}
      	],
      	"banner_image_url": "https://cdn.whop.com/banner.png",
      	"business_type": "flower_delivery",
      	"country": "US",
      	"created_at": "2026-06-01T12:00:00Z",
      	"description": "Petal Post delivers fresh bouquets.",
      	"email": "hello@petalpost.example",
      	"home_preferences": ["storefront"],
      	"id": "biz_petalpost123",
      	"industry_group": "commerce",
      	"industry_type": "flower_delivery",
      	"invoice_prefix": "PETAL",
      	"logo_url": "https://cdn.whop.com/logo.png",
      	"metadata": {
      		"external_merchant_id": "merchant_123"
      	},
      	"onboarding_type": "standard",
      	"opengraph_image_url": "https://cdn.whop.com/og.png",
      	"opengraph_image_variant": "banner",
      	"other_business_description": "Local flower delivery",
      	"other_industry_description": "Same-day floral gifts",
      	"parent_account_id": "biz_platform123",
      	"require_2fa": true,
      	"capabilities": {
      		"accept_card_payments": "active",
      		"accept_bank_payments": "active",
      		"accept_bnpl_payments": "inactive",
      		"standard_payout": "inactive",
      		"instant_payout": "inactive",
      		"crypto_payout": "inactive",
      		"transfer": "inactive",
      		"bank_deposit": "active",
      		"crypto_deposit": "active",
      		"card_deposit": "active",
      		"card_issuing": "inactive"
      	},
      	"required_actions": [
      		{
      			"action": "verify_identity",
      			"status": "required",
      			"title": "Identity verification required",
      			"description": "Complete verification before your total earnings exceed $5k to continue accepting payments.",
      			"cta_label": "Verify now",
      			"cta": "https://whop.com/dashboard/biz_petalpost123/balance/?verify=true",
      			"icon_url": null,
      			"blocked_capabilities": [
      				"accept_card_payments",
      				"accept_bank_payments",
      				"standard_payout",
      				"instant_payout",
      				"crypto_payout",
      				"transfer",
      				"bank_deposit",
      				"card_issuing"
      			]
      		}
      	],
      	"recommended_actions": [
      		{
      			"action": "migrate_from_stripe",
      			"status": "optional",
      			"title": "Migrate your business from Stripe.",
      			"description": "",
      			"cta_label": "Get started",
      			"cta": "https://whop.com/dashboard/biz_petalpost123/settings/stripe-migrations/",
      			"icon_url": "https://whop.com/illustrations/orange/crane.svg",
      			"blocked_capabilities": []
      		},
      		{
      			"action": "accept_first_payment",
      			"status": "optional",
      			"title": "Accept your first payment.",
      			"description": "",
      			"cta_label": "Create payment link",
      			"cta": "https://whop.com/dashboard/biz_petalpost123/links/checkout/create/",
      			"icon_url": "https://whop.com/illustrations/orange/card.svg",
      			"blocked_capabilities": []
      		},
      		{
      			"action": "join_whop_university",
      			"status": "optional",
      			"title": "Grow your business faster.",
      			"description": "",
      			"cta_label": "Join Whop University",
      			"cta": "https://whop.com/whop/",
      			"icon_url": "https://whop.com/illustrations/orange/grad-cap.svg",
      			"blocked_capabilities": []
      		},
      		{
      			"action": "apply_for_financing",
      			"status": "optional",
      			"title": "Offer financing at checkout",
      			"description": "Let customers pay over time with buy now, pay later.",
      			"cta_label": "Apply",
      			"cta": "https://whop.com/dashboard/biz_petalpost123/settings/payments/",
      			"icon_url": "https://whop.com/illustrations/orange/piggy-bank.svg",
      			"blocked_capabilities": ["accept_bnpl_payments"]
      		}
      	],
      	"route": "petal-post",
      	"send_customer_emails": true,
      	"show_joined_whops": false,
      	"show_reviews_dtc": true,
      	"show_user_directory": false,
      	"status": "active",
      	"total_earned_usd": 3450,
      	"social_links": [
      		{
      			"id": "social_petalpost123",
      			"title": "Petal Post",
      			"url": "https://petalpost.example",
      			"website": "website"
      		}
      	],
      	"store_page_config": {
      		"theme": "floral"
      	},
      	"target_audience": "Customers sending flowers locally",
      	"tax_remitted_by": "whop",
      	"product_tax_code": {
      		"id": "ptc_CzLNn2Z058xEC1",
      		"name": "Digital Group Chat",
      		"product_type": "digital"
      	},
      	"business_address": {
      		"line1": "123 Garden Way",
      		"line2": null,
      		"city": "Austin",
      		"state": "TX",
      		"postal_code": "78701",
      		"country": "US"
      	},
      	"tax_identifiers": [
      		{
      			"id": "taxid_petalpost123",
      			"tax_id_type": "us_ein",
      			"tax_id_value": "12-3456789"
      		}
      	],
      	"title": "Petal Post",
      	"total_usd": "1300.50",
      	"use_logo_as_opengraph_image_fallback": true,
      	"verification": {
      		"business": null,
      		"individual": {
      			"status": "approved"
      		}
      	},
      	"wallet": {
      		"address": "So11111111111111111111111111111111111111112",
      		"id": "wallet_petalpost123",
      		"network": "solana"
      	}
      }
      ```
    </div>
  </Column>
</Columns>
