Skip to main content
An Account represents a person or business on Whop that can have its own profile, wallet, and account-scoped settings. Use accounts for customers, creators, merchants, sellers, or connected businesses your integration supports. Use the Accounts API to create accounts, list accounts visible to your credentials, retrieve or update an account, suspend a connected account managed by your platform, and retrieve the account associated with the current API key. The business_type, industry_group, and industry_type fields classify accounts. See the business types and industries glossary for every valid value.

Endpoints

Fee Markups

Fee markups let a platform add charges to its connected accounts. Manage them through the account fees document: set defaults on the platform account or override individual fees on a connected account.

Fee Endpoints

Use the platform account’s API key with company:update_child_fees permission to configure markups. Each returned markup includes adjustable and unadjustable_reason so your integration can determine whether editing is available.

Read Fees

The markups section contains the connected account’s effective rates. The child_markups section on a platform account contains its defaults for connected accounts. A markup’s source is custom when configured at that level, or default when it falls through to an inherited rate or zero. Its default field shows the rate that would apply if the custom markup were cleared. Returned fixed amounts use the Money object; updates accept fixed as a number in US dollars.

Set Platform Defaults

Update child_markups on the platform account. This example sets a 2% payment markup with no fixed charge:
percentage: 2 means 2%. Defaults apply to connected accounts without an override for that fee. Payment markups apply when no checkout application fee is set.

Set a Connected Account Override

Update markups on the connected account. This example replaces its inherited payment markup with 1% plus $0.25:
Only the keys you send change. For other transaction types, use transfers, crypto_swaps, deposits keyed by rail, or payouts keyed by payout method. See the update endpoint for the supported keys and request schema.

Clear a Markup

Send null for the markup to clear it. Clearing a connected account’s override restores its platform default, or zero if no default is configured:
To clear a platform default, send child_markups: { payments: null } to the platform account. An explicit { percentage: 0, fixed: 0 } remains a configured rate; use null to restore inheritance.

Attributes

string
required
Account ID, prefixed biz_.
object[]
required
Account holdings, each with USD value. Empty when total_usd is null.

Properties

string
required
Total amount held in native units, as a decimal string.
object
required
Balance split into available, pending, and reserve amounts, as native-unit decimal strings, with the days the pending amount is expected to settle. On-chain crypto is entirely available; good_funds and fiat cash can have pending or reserve portions.

Properties

string
required
Amount you can spend, send, or withdraw now, in native units, as a decimal string.
string
required
Amount moving between the account’s own destinations, such as a treasury sweep to its crypto wallet or a card top-up. In native units, as a decimal string.
string
required
Amount from recent payments still settling, in native units, as a decimal string.
object[]
required
When the pending amount is expected to settle, one entry per day, earliest first. Money with no scheduled settlement day, such as a transfer in flight, is left out — so these can sum to less than pending, never more.

Properties

string
required
Amount expected that day, in native units, as a decimal string.
string
required
The day this money is expected to finish settling, as an ISO 8601 date.
string
required
Amount held back, in native units, as a decimal string. Retrieve the account’s reserves for why it is held and when it unlocks.
string | null
required
Holding icon URL.
string
required
The holding’s display name
number | null
required
USD price per unit, or null when no exchange rate is available.
string
required
Holding display symbol, such as USDT, cbBTC, or EUR.
string | null
required
Holding USD value, or null when no exchange rate is available.
string | null
required
Account banner image URL.
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.
string | null
required
The account’s legal business name used with its tax address.
string | null
required
High-level business category for the account. See the business types and industries glossary for valid values.
boolean
required
Whether pending funds may be transferred from this platform account to its connected accounts.
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.

Properties

string
required
Bank payins: debits, transfers, and local bank railsAvailable options: active, inactive, pending
string
required
Buy-now-pay-later payins; requires approvalAvailable options: active, inactive, pending
string
required
Card payins, including Apple Pay and Google PayAvailable options: active, inactive, pending
string
required
Deposits by bank wire or ACH to the account’s virtual bank accountAvailable options: active, inactive, pending
string
required
Balance top-ups by charging a stored payment methodAvailable options: active, inactive, pending
string
required
Issuing Whop cards; requires card application approvalAvailable options: active, inactive, pending
string
required
On-chain deposits to the account’s crypto walletAvailable options: active, inactive, pending
string
required
On-chain payouts to a crypto walletAvailable options: active, inactive, pending
string
required
Instant payouts to an eligible payout destinationAvailable options: active, inactive, pending
string
required
Launching ad campaigns through Whop Ads. inactive while a requested ads services agreement is awaiting the account’s signature.Available options: active, inactive, pending
string
required
Standard payouts to an external payout destinationAvailable options: active, inactive, pending
string
required
Transfers to other accountsAvailable options: active, inactive, pending
object | null
required
Whop Cards application details for the account. Computed only on retrieve and me for callers with company:balance:read scope; null otherwise, or when the account has no card application.

Properties

string | null
required
Whether the card application verifies a business (business, KYB) or a person (individual, consumer identity). null when the application is not yet linked to a verification.Available options: individual, business
string
required
Where the card application stands. approved means cards can be issued. needs_verification means the applicant has not completed identity verification yet; needs_information means they did, but the documents were rejected for a fixable reason and must be resubmitted. pending and manual_review are in flight. denied, locked, and canceled are terminal.Available options: approved, pending, manual_review, denied, locked, canceled, needs_verification, needs_information
boolean
required
Whether checkout shows a VAT/tax ID field for buyers to optionally enter. Does not require a VAT ID to purchase.
object
required
Company formation state for the account, managed through Form Company. A draft status until the formation checkout is paid, then filing progress with downloadable documents and signatures awaiting action. Empty when the formation state is temporarily unavailable.

Properties

object[]
Formation documents available for download, such as the Articles of Organization and the EIN confirmation letter. Present once status leaves draft.

Properties

string
required
Document ID, prefixed file_.
string
required
Human-readable document name, such as Articles of Organization.
string
required
Document category: articles_of_organization, operating_agreement, ein_letter, signed_ss4, signed_form8821, or mail for postal correspondence received on the company’s behalf.
string
required
CDN URL for downloading the document.
boolean
Whether the company’s EIN has been issued by the IRS. Present once status leaves draft.
Registered company name including the entity ending, for example Acme, LLC. Present once status leaves draft.
object
IRS forms still awaiting a founder’s signature, each with a hosted signing URL. Present once status leaves draft; empty when nothing needs signing.

Properties

object
Signature state for IRS Form 8821, the tax information authorization. Present only while the form still needs the founder’s action.

Properties

string
When the signing URL expires, as an ISO 8601 timestamp. Present only when the signing URL is included.
string
required
pending when a signing session is ready for the founder; unknown when the signature state could not be determined.Available options: pending, unknown
string
Hosted signing URL where the founder completes the form. Present while status is pending and the caller has incorporation:write. Omitted from webhooks.
object
Signature state for IRS Form SS-4, the EIN application. Present only while the form still needs the founder’s action.

Properties

string
When the signing URL expires, as an ISO 8601 timestamp. Present only when the signing URL is included.
string
required
pending when a signing session is ready for the founder; unknown when the signature state could not be determined.Available options: pending, unknown
string
Hosted signing URL where the founder completes the form. Present while status is pending and the caller has incorporation:write. Omitted from webhooks.
boolean
Whether the state formation filing is complete. Present once status leaves draft.
string
Available options: draft, processing, filed, rejected, completed
string | null
required
Country where the account is located.
string
required
When the account was created, as an ISO 8601 timestamp.
string | null
required
Account promotional description.
boolean
required
Whether economic intelligence is enabled for the account.
string | null
required
Account owner email address.
object | null
required
The account’s end-user license agreement document, or null if they have not published one.

Properties

string
required
The file’s ID, prefixed file_.
string | null
required
The file’s MIME type, e.g. application/pdf.
string
required
When the file was created, as an ISO 8601 timestamp.
string | null
required
The original filename, including its extension.
integer | null
The byte size each part (except the last) must be. Present only on create, and only for multipart uploads.
string | null
The ID of the multipart upload, passed back to complete. Present only on create, and only for multipart uploads.
object[] | null
The presigned URL for each part. Present only on create, and only for multipart uploads.

Properties

integer
required
The 1-based index of this part within the multipart upload.
string
required
The presigned URL to PUT this part’s bytes to.
string
required
The type of this object, always file.
integer | null
required
The file size in bytes. null until the upload has finished.
object
Headers to send with the upload PUT. Present only on create.
string
required
Where the file is in its upload lifecycle.Available options: pending, processing, ready, failed
string | null
Presigned URL to PUT the file’s bytes to. Present only on create, and only for single-part uploads.
string | null
required
A URL to download the file: a permanent CDN URL for public files, a signed expiring URL for private ones. null until the upload has finished.
string
required
public files are served via an unsigned CDN URL; private files via a signed, expiring URL.Available options: public, private
string[]
required
Public account home page preferences.Available options: hide_member_count, hide_members_card
string | null
required
Account industry group. See the business types and industries glossary for valid values.
string | null
required
Specific industry vertical for the account. See the business types and industries glossary for valid values.
string | null
required
Prefix used for account invoices.
string | null
required
Account logo image URL.
object
required
Arbitrary key/value metadata supplied at account creation.
string | null
required
Type of onboarding the account has completed.Available options: platform, seller
string | null
required
Account Open Graph image URL.
string | null
required
Account Open Graph image variant.Available options: white, black, orange
string | null
required
Business type details when business_type is other.
string | null
required
Industry details when industry_type is other.
object
required
The single user who owns the account, whose email is the email above. Distinct from the owner role on team members, which any number of them can hold.

Properties

string
required
User ID, prefixed user_.
string | null
required
Display name.
object
required
Avatar wrapper; its url is always present, using a generated placeholder when the user set no picture.

Properties

string
required
Avatar image URL. Always present — a generated placeholder when the user set no picture.
string
required
Public username.
object | null
required
Parent account for connected accounts, or null for standalone accounts.

Properties

string
required
Account ID, prefixed biz_.
object
Markup rates this parent charges the connected account being read, keyed by fee type (for example crypto_deposit_markup), each with percentage_fee and fixed_fee_usd. Resolved with the connected account’s own overrides winning over the platform default.
string | null
required
Account logo image URL.
string
required
Account public route identifier.
string
required
Account display name.
object | null
The account’s active first-tier partner. Present on retrieve responses; null when no active first-tier partner is attributed to the account. Omitted from other responses.

Properties

string
required
User ID, prefixed user_.
string | null
required
Email address for contacting the partner. Null when the partner has not added their own email address.
string | null
required
Display name.
object
required
Avatar wrapper; its url is always present, using a generated placeholder when the user set no picture.

Properties

string
required
Avatar image URL. Always present — a generated placeholder when the user set no picture.
string
required
Public username.
object | null
required
Payment health controls currently applied to the account. Computed only on retrieve and me for callers with company:balance:read scope; null otherwise.

Properties

object
required
Automatic refund settings for pre-chargeback dispute alerts.

Properties

boolean
required
Whether the account owner is prevented from changing this threshold.
number | null
required
Maximum dispute alert amount automatically refunded in USD. null when automatic refunds are disabled.
number | null
required
Fee charged for each dispute alert in USD. null when unavailable.
boolean
required
Whether 3-D Secure is forced on every card payment at checkout. The account cannot bypass it while set.
boolean
required
Whether payment health controls explicitly disable financing. This is independent of financing approval in capabilities.accept_bnpl_payments.
number
required
Additional processing fee percentage for high-risk processing.
number
required
Percentage fee charged when pending, not-yet-settled balance is advanced to fund the account’s cards balance, where 2 means 2%. 0 when the account is exempt.
integer
required
Additional days payments remain pending before becoming available.
object
required
Reserve currently applied to incoming payment volume.

Properties

integer
required
Number of days reserved funds are held before release.
number | null
required
Percentage of incoming payment volume held in reserve. null when no reserve is applied.
object
required
Automatic refund settings for resolution center cases.

Properties

number | null
required
Maximum card-funded resolution center case amount automatically refunded in USD. null when automatic refunds are disabled for cards.
number | null
required
Maximum financing-funded resolution center case amount automatically refunded in USD. null when automatic refunds are disabled for financing.
boolean
required
Whether the account owner is prevented from changing these thresholds.
number | null
required
Maximum PayPal-funded resolution center case amount automatically refunded in USD. null when automatic refunds are disabled for PayPal.
string[]
required
Card brands blocked at checkout for this account. Empty when none are blocked. The account cannot re-enable them itself.Available options: card_visa, card_mastercard, card_american_express, card_discover_global_network
string | null
required
Why pending funds without a settlement date aren’t moving yet. kyc_incomplete and pending_information_request are things the merchant can act on. withdrawals_disabled means Whop has blocked withdrawals, so these funds cannot become available. null when there’s no reason to show — still clearing, or held for a reason that isn’t named here.Available options: kyc_incomplete, pending_information_request, withdrawals_disabled
object
required
How the account’s balance automatically withdraws.

Properties

integer | null
required
Day the automatic withdrawal runs on: 0-6 (Sunday-Saturday) for weekly, 1-31 for monthly. null for manual and daily.
string
required
How often the account’s balance automatically withdraws.Available options: manual, daily, weekly, monthly
string | null
required
Next date the automatic withdrawal is scheduled to run, as an ISO 8601 date. null for manual and daily, where no single next date applies.
object | null
required
The account’s privacy policy document, or null if they have not published one.

Properties

string
required
The file’s ID, prefixed file_.
string | null
required
The file’s MIME type, e.g. application/pdf.
string
required
When the file was created, as an ISO 8601 timestamp.
string | null
required
The original filename, including its extension.
integer | null
The byte size each part (except the last) must be. Present only on create, and only for multipart uploads.
string | null
The ID of the multipart upload, passed back to complete. Present only on create, and only for multipart uploads.
object[] | null
The presigned URL for each part. Present only on create, and only for multipart uploads.

Properties

integer
required
The 1-based index of this part within the multipart upload.
string
required
The presigned URL to PUT this part’s bytes to.
string
required
The type of this object, always file.
integer | null
required
The file size in bytes. null until the upload has finished.
object
Headers to send with the upload PUT. Present only on create.
string
required
Where the file is in its upload lifecycle.Available options: pending, processing, ready, failed
string | null
Presigned URL to PUT the file’s bytes to. Present only on create, and only for single-part uploads.
string | null
required
A URL to download the file: a permanent CDN URL for public files, a signed expiring URL for private ones. null until the upload has finished.
string
required
public files are served via an unsigned CDN URL; private files via a signed, expiring URL.Available options: public, private
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.
DEPRECATED: Use the GET /economic_intelligence?account_id=\{account_id} endpoint instead.

Properties

string
required
The recommendation; new values may be added, so handle unknown actions gracefullyAvailable options: theme_business, create_product, create_plan, verify_identity, connect_affiliate_program, create_promotion, migrate_from_stripe, accept_first_payment, launch_first_ad, launch_draft_campaign, increase_ad_budget, refresh_ad_creatives, fix_ad_billing, exclude_customers_from_ads, retarget_abandoned_checkouts, fix_funnel_dropoff, invite_team_member, enable_tax_collection, create_card, apply_for_financing
string[]
required
Capabilities this would unlock, or empty
string
required
The URL the call-to-action links to
string
required
Button label
string
required
Supporting copy, or empty
string | null
required
Illustration icon URL, or null
integer | null
required
Estimated impact from 0-100, or null when not ranked
string | null
required
Why this action was recommended, or null
string
required
Always optional — never blockingAvailable options: optional
string
required
Headline for the recommendation
boolean
required
Whether authorized users must enable two-factor authentication.
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.

Properties

string
required
What the holder must do; new values may be added, so handle unknown actions gracefullyAvailable options: deposit_funds, review_held_payments, accept_airwallex_terms, submit_information_request, update_automatic_withdrawal_method, reauthorize_payout_methods, update_payout_profile, card_usage_review, verify_identity, verify_airwallex_account, sign_formation_documents, connect_fulfillment_tracker, setup_apple_pay_domains, configure_tax_remitter, add_vat_registration, enable_two_factor_authentication
string[]
required
Capabilities gated until this is resolved
string | null
required
The URL the call-to-action links to, or null when there is no button
string
required
Button label, or empty when there is no button
string
required
Supporting copy, or empty
string | null
required
The URL of the action’s illustration icon, or null if it has none
string
required
required (act now) or pending (under review)Available options: required, pending
string
required
Headline for the action
object | null
required
The account’s return policy document, or null if they have not published one.

Properties

string
required
The file’s ID, prefixed file_.
string | null
required
The file’s MIME type, e.g. application/pdf.
string
required
When the file was created, as an ISO 8601 timestamp.
string | null
required
The original filename, including its extension.
integer | null
The byte size each part (except the last) must be. Present only on create, and only for multipart uploads.
string | null
The ID of the multipart upload, passed back to complete. Present only on create, and only for multipart uploads.
object[] | null
The presigned URL for each part. Present only on create, and only for multipart uploads.

Properties

integer
required
The 1-based index of this part within the multipart upload.
string
required
The presigned URL to PUT this part’s bytes to.
string
required
The type of this object, always file.
integer | null
required
The file size in bytes. null until the upload has finished.
object
Headers to send with the upload PUT. Present only on create.
string
required
Where the file is in its upload lifecycle.Available options: pending, processing, ready, failed
string | null
Presigned URL to PUT the file’s bytes to. Present only on create, and only for single-part uploads.
string | null
required
A URL to download the file: a permanent CDN URL for public files, a signed expiring URL for private ones. null until the upload has finished.
string
required
public files are served via an unsigned CDN URL; private files via a signed, expiring URL.Available options: public, private
string
required
Account public route identifier.
boolean
required
Whether Whop sends transactional emails to customers on behalf of this account.
boolean
required
Whether the account appears in joined whops on other accounts.
boolean
required
Whether reviews are displayed on direct-to-consumer product pages.
boolean
required
Whether the account shows users in the user directory.
Account social links.

Properties

string
required
The ID of the social link
string | null
required
The optional display title for the social link
string
required
The social link URL
string
required
The social platform for this linkAvailable options: x, instagram, facebook, tiktok, youtube, linkedin, twitch, website, custom
boolean
required
Whether the account settles on stablecoin rails — its balance is held on-chain as USDT and paid out over crypto, rather than as fiat cash.
string | null
required
Whether the account can operate on Whop: active or suspended. Computed on list, retrieve, me, and suspend; null otherwise.
string | null
required
Why the account was suspended, in language safe to show the account owner. Computed on retrieve, me, and suspend; null otherwise, when status is not suspended, and when the suspension was recorded without a reason.
object
required
Account store page display configuration.

Properties

string | null
required
Accent color used on the account store page.Available options: ruby, tomato, red, crimson, pink, plum, purple, violet, iris, cyan, teal, jade, green, grass, brown, blue, orange, indigo, sky, mint, yellow, amber, lime, lemon, magenta, gold, bronze, gray
string | null
required
Layout used on the account store page.Available options: featured, compact
string | null
required
Profile presentation used on the account store page.Available options: personal, business
Whether the account store page shows a Whop affiliate link.
string | null
required
Target audience for this account.
string[]
required
US state codes (of the 50 states plus DC) where the account collects tax: the full set when Whop remits (tax_remitted_by whop), the configured subset when the account self-remits (self), and empty when neither. On update, send the complete list to replace it (only allowed when self).
object[]
required
Account tax/VAT registrations. Empty when none are set.

Properties

string
required
Tax identifier ID.
string
required
Tax ID type.Available options: ad_nrt, ao_tin, ar_cuit, al_tin, am_tin, aw_tin, au_abn, au_arn, eu_vat, az_tin, bs_tin, bh_vat, bd_bin, bb_tin, by_tin, bj_ifu, bo_tin, ba_tin, br_cnpj, br_cpf, bg_uic, bf_ifu, kh_tin, cm_niu, ca_bn, ca_gst_hst, ca_pst_bc, ca_pst_mb, ca_pst_sk, ca_qst, cv_nif, cl_tin, cn_tin, co_nit, cd_nif, cr_tin, hr_oib, do_rcn, ec_ruc, eg_tin, sv_nit, et_tin, eu_oss_vat, ge_vat, gh_tin, de_stn, gb_vat, gn_nif, hk_br, hu_tin, is_vat, in_gst, id_npwp, il_vat, jp_cn, jp_rn, jp_trn, kz_bin, ke_pin, kg_tin, la_tin, li_uid, li_vat, my_frp, my_itn, my_sst, mr_nif, mx_rfc, md_vat, me_pib, ma_vat, np_pan, nz_gst, ng_tin, mk_vat, no_vat, no_voec, om_vat, pe_ruc, ph_tin, pl_nip, ro_tin, ru_inn, ru_kpp, sa_vat, sn_ninea, rs_pib, sg_gst, sg_uen, si_tin, za_vat, kr_brn, es_cif, ch_uid, ch_vat, tw_vat, tj_tin, tz_vat, th_vat, tr_tin, ug_tin, ua_vat, ae_trn, us_ein, uy_ruc, uz_tin, uz_vat, ve_rif, vn_tin, zm_tin, zw_tin, sr_fin, xi_vat
string
required
Tax ID value.
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.Available options: whop, self, none
string | null
required
How tax is applied to the account’s prices: inclusive (tax included in the listed price) or exclusive (tax added on top). Defaults to exclusive when unset; null only when the account has no payment connection.Available options: inclusive, exclusive
object | null
required
The account’s terms of service document, or null if they have not published one.

Properties

string
required
The file’s ID, prefixed file_.
string | null
required
The file’s MIME type, e.g. application/pdf.
string
required
When the file was created, as an ISO 8601 timestamp.
string | null
required
The original filename, including its extension.
integer | null
The byte size each part (except the last) must be. Present only on create, and only for multipart uploads.
string | null
The ID of the multipart upload, passed back to complete. Present only on create, and only for multipart uploads.
object[] | null
The presigned URL for each part. Present only on create, and only for multipart uploads.

Properties

integer
required
The 1-based index of this part within the multipart upload.
string
required
The presigned URL to PUT this part’s bytes to.
string
required
The type of this object, always file.
integer | null
required
The file size in bytes. null until the upload has finished.
object
Headers to send with the upload PUT. Present only on create.
string
required
Where the file is in its upload lifecycle.Available options: pending, processing, ready, failed
string | null
Presigned URL to PUT the file’s bytes to. Present only on create, and only for single-part uploads.
string | null
required
A URL to download the file: a permanent CDN URL for public files, a signed expiring URL for private ones. null until the upload has finished.
string
required
public files are served via an unsigned CDN URL; private files via a signed, expiring URL.Available options: public, private
string | null
required
3D Secure behavior for supported on-session card payments. mandate_challenge requires a 3DS challenge before payment processing; mandate_if_required mandates a challenge only when the payment processor requires it; frictionless_if_required uses the regular frictionless 3DS flow. Payments of $1,000 or more use mandate_if_required unless mandate_challenge is selected. Risk and authentication recovery requirements can override the preference. null uses the standard checkout flow.Available options: mandate_challenge, mandate_if_required, frictionless_if_required
string
required
Account display name.
number | null
required
Account lifetime sales, normalized to USD. Computed only on retrieve and me for callers with stats:read scope; null otherwise.
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.
boolean
required
Whether the account uses its logo as the fallback Open Graph image.
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, manual_review, approved, or rejected.
number | null
required
Lifetime volume through the account — sales plus transfers received — normalized to USD. Computed only on list for callers with stats:read on the account; null otherwise.
object | null
required
Account primary crypto wallet, or null if none has been provisioned.

Properties

string
required
Wallet ID, prefixed wallet_.
string
required
The on-chain address of the wallet
string
required
The blockchain network the wallet lives onAvailable options: solana, ethereum, bitcoin
string | null
required
The account’s business website URL, or null if none has been provided. Setting it also adds a website entry to social_links.
Account

Business types and industries

Three fields classify accounts: business_type, industry_group, and industry_type. The full taxonomy lives on its own page:

Business types and industries