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

> ## Agent Instructions
> Treat these docs and the Whop MCP server as the source of truth for Whop API behavior. Don't infer endpoint behavior from marketing pages.
> MCP server: connect https://mcp.whop.com/mcp (streamable HTTP, browser sign-in, no API key in the client config) to search these docs and read or change live Whop data. Setup: https://docs.whop.com/developer/guides/ai_and_mcp.md
> Whop CLI: install with `curl -fsSL https://whop.com/install.sh | sh` to scaffold, run, and deploy Whop apps and websites. It acts on production, not the sandbox. Agent mode: https://docs.whop.com/cli/agent-mode.md
> Plugins: in Claude Code, run `/plugin marketplace add whopio/plugins`, then `/plugin install whop@whop`. Every agent tool: https://docs.whop.com/developer/ai/overview.md
> Environments: build and test in the sandbox (API `https://sandbox-api.whop.com/api/v1`, keys at https://sandbox.whop.com/dashboard/developer, SDK environment `Sandbox`; no real money). Production (API `https://api.whop.com/api/v1`, keys at https://whop.com/dashboard/developer, SDK environment `Production`, the SDK default) moves real money, so use it only at launch. The two share no accounts, keys, products, or webhooks, and their keys look identical: never mix them. Comparison: https://docs.whop.com/developer/quickstart.md
> API: send `Authorization: Bearer <API_KEY>` from your server only, and pin a dated version with the `Api-Version-Date` header. OpenAPI spec: https://api.whop.com/api/v1/openapi.json
> Which API: build on the Current API, whose pages live under https://docs.whop.com/api-reference/ (start at https://docs.whop.com/api-reference/overview.md). Pages under /api-reference/legacy/ are the Legacy API. Use one only when https://docs.whop.com/api-reference/stability.md lists the resource as Legacy-only.

# Update Verification

> Updates editable profile details or submits answers for items returned in `requested_information`. On a business verification still collecting details, company details, `documents`, and `owners` also go to the verification provider; call Create Verification again to send the business for review once everything is in. Under review, `registration_number`, `incorporation_date`, `place_of_incorporation`, and `documents` are refused. While the review waits on owners, owners can still be added, changed, or removed with `remove`; otherwise only an owner's missing documents can still be sent. Once a verification is `approved` its profile details are locked and can no longer be edited.



## OpenAPI

````yaml /openapi/api-v1-native.json patch /verifications/{id}
openapi: 3.1.0
info:
  description: >-
    The Whop REST API. Please see
    https://docs.whop.com/developer/api/getting-started for more details.
  termsOfService: https://whop.com/tos-developer-api/
  title: Whop API
  version: 1.0.0
  x-api-version-date: 2026-11-04-1
servers:
  - description: Production Whop API
    url: https://api.whop.com/api/v1
  - description: Sandbox Whop API
    url: https://sandbox-api.whop.com/api/v1
security: []
tags:
  - description: >
      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 or delete a subaccount
      managed by your platform, and retrieve the account associated with the
      current API key.
    name: Accounts
    x-whop-summary: 'A business on Whop: profile, wallet, capabilities, settings.'
  - description: >
      A User represents a person on Whop. Users have a public profile and can
      buy products, join accounts, and access experiences.


      Use the Users API to search for users, retrieve or update profiles, and
      check whether a user has access to an account, product, or experience.
    name: Users
    x-whop-summary: 'A person on Whop: profile and connected identities.'
  - description: >
      A Member is one buyer's relationship with an account: one record per
      customer, however many memberships they hold. It tracks whether they have
      joined or left, their access level, and when they last opened the
      account's content.


      Use the Members API to list and search an account's members, retrieve a
      single member, and read a member's activity log. Member rows are created
      and maintained by the membership lifecycle; to grant or revoke access,
      work with memberships instead.
    name: Members
    x-whop-summary: One buyer's relationship with an account, across all their purchases.
  - description: >
      A Team Member is a member of an account's team: the link between a user
      and an account, carrying the role that controls what they can do. Roles
      are either system roles (like `admin` or `moderator`) or `custom` roles
      managed from the dashboard.


      Use the Team Members API to list an account's team, add a user to the team
      with a system role, change a member's role, and remove members. Adding a
      user who has not yet accepted sends an invitation instead.
    name: Team Members
    x-whop-summary: An account's team members and the roles that scope their access.
  - description: >
      Search finds one account's records in one call: members, memberships,
      payments, affiliates, reviews, resolution center cases, promo codes and
      accounts. A pasted identifier finds its records exactly and they come
      first, ahead of ranked text matches.


      Use the Search API behind a search box or a command menu over an account's
      data: find the customer behind an email or a card, open a payment from its
      ID or invoice number, or jump to a member by name. To filter one resource
      and page through every match, use that resource's list endpoint instead.
    name: Search
    x-whop-summary: >-
      Find an account's members, payments and other records in one call, by ID,
      email, card, phone, number, link or text.
  - description: >
      An External Account represents an account on another platform linked to a
      Whop account or user, such as a Facebook page, Instagram account, TikTok
      account, or Klaviyo account. You connect it through OAuth or an API key,
      or Whop creates it for you. External account IDs are prefixed `sacc_`.


      Use the External Accounts API to list connected accounts, [connect a
      profile through
      OAuth](/api-reference/external-accounts/connect-an-external-account),
      [create a Whop-managed Facebook page or TikTok account, or connect a
      Klaviyo account with its API
      key](/api-reference/external-accounts/create-an-external-account), and
      disconnect an external account.
    name: External Accounts
    x-whop-summary: Accounts on other platforms linked to an account or user.
  - description: >
      Social Accounts is the former public name for External Accounts. Existing
      integrations can keep calling these deprecated endpoints while they
      migrate; every response points to the matching External Accounts endpoint.


      Use the External Accounts API for all new integrations. External account
      IDs keep their `sacc_` prefix, and the underlying resource is unchanged.
    name: Social Accounts
    x-whop-summary: Deprecated compatibility endpoints for external accounts.
  - description: >
      A Payment is one charge against a buyer, for one or more variants. Create
      an on-session payment with a `confirmation_token` for the method the buyer
      selected, or an off-session payment with an existing member's stored
      payment method.


      Use the Payments API to charge buyers, list and retrieve payments, and
      refund, void, capture, or retry them. Collection runs in the background,
      so the create response is not the outcome. Poll [Retrieve
      status](/api-reference/payments/retrieve-payment-status) for how far the
      payment has gone and, while it is `requires_action`, what the buyer must
      do next: follow a redirect, complete 3D Secure, display transfer
      instructions, or link a bank account. Update the payment's `return_url` to
      change where they land afterwards, up until they come back.
    name: Payments
    x-whop-summary: A charge against a buyer, and the step they still owe.
  - description: >
      An Invoice is a receipt with an invoice number. Create a draft from
      variant-backed items, set its recipient and due date, and edit it until it
      is sent. Its `pay_` ID is also the payment ID when collected.


      Draft creation does not create access or charge the buyer. The recipient's
      contact details live on the account's member. Financial fields and caller
      metadata can only be edited in draft.
    name: Invoices
    x-whop-summary: >-
      A payment request that keeps the same receipt from draft through
      collection.
  - description: >
      A Confirmation Token is a single-use, short-lived reference to a payment
      method and billing details collected from a buyer. Its response never
      returns the underlying payment credential.


      Whop Elements mint the token in your buyer-facing collection flow and hand
      you its `ctok_` ID to send to the Payments API from your server. Retrieve
      a token to display its payment method and billing preview or check whether
      it is still usable.
    name: Confirmation Tokens
    x-whop-summary: A short-lived reference to payment details collected from a buyer.
  - description: >
      A Payment Quote prices a purchase exactly as a payment for it will be
      charged: the same line pricing, promo code, and tax, for a buyer located
      by the address, country, or IP address you send. A quote is priced once,
      can be consumed by one payment, and expires.


      Use the Payment Quotes API to show a buyer the total, tax, and currency
      before they pay, then pass the quote's `id` as `quote_id` when you create
      the payment to charge exactly that quote. Quote again whenever the cart,
      promo code, or address changes.
    name: Payment Quotes
    x-whop-summary: 'A purchase priced before it is paid: its lines, promo code and tax.'
  - description: >
      A Setup Intent saves a buyer's payment method for later without taking
      money now. Create one from a confirmation token the payment elements
      collected in setup mode, or from a payment method already on file to
      re-verify it. It runs the same collection flow a payment does, so the
      buyer may still owe a step: 3D Secure on a card, a hosted enrollment, or
      linking a bank account.


      The create response is the setup intent as created, not its outcome. Hand
      its `client_secret` to the elements' `handleNextAction`, or poll [Retrieve
      status](/api-reference/setup-intents/retrieve-setup-status) for how far
      the setup has gone and what is outstanding. Once it reaches `succeeded`,
      `payment_method_id` names the saved method and Create Payment charges it.
    name: Setup Intents
    x-whop-summary: Saving a buyer's payment method without charging it.
  - description: >
      A Refund is one full or partial reversal of a payment, issued with [Refund
      Payment](/api-reference/payments/refund-payment). It records how much
      moved, through which provider, and whether it succeeded.


      Use the Refunds API to list the refunds on a payment or across an account,
      and to retrieve a single refund.
    name: Refunds
    x-whop-summary: Money returned to a buyer from a payment.
  - description: >
      A Resolution Center Case is opened by a buyer when something is wrong with
      a purchase, such as an unwanted renewal, an item that never arrived, or a
      charge they don't recognize. It is the step before a chargeback: the buyer
      and merchant work it out directly, and Whop decides the case if they
      can't.


      Use the Resolution Center Cases API from either side: as the buyer, open,
      reply to, appeal, or withdraw a case; as the merchant, accept it
      (refunding the payment), deny it, or ask the buyer for more information.
    name: Resolution Center Cases
    x-whop-summary: File or respond to a case against a payment, as the buyer or the merchant.
  - description: >
      A Dispute alert is an early warning from a card issuer that a settled
      payment is being questioned, ahead of any chargeback. `type` separates
      fraud reports (`early_fraud_warning`), pre-dispute notices
      (`dispute_alert`), and Visa RDR cases the network already closed by
      refunding (`rapid_dispute_resolution`).


      Use the Dispute alerts API to list alerts for an account, filter them by
      type or payment, and read `actionable` to see whether refunding can still
      avoid the chargeback.
    name: Dispute alerts
    x-whop-summary: Issuer warnings that arrive before a chargeback does.
  - description: >
      A Dispute is a chargeback a customer files against a payment through their
      bank, or an inquiry that may become one. It carries the disputed payment,
      a deadline to respond, your evidence, and the outcome once the processor
      rules.


      Use the Disputes API to list disputes, edit the evidence packet while a
      dispute is still contestable, and submit it for review, or accept a
      chargeback you don't want to contest.
    name: Disputes
    x-whop-summary: Chargebacks filed against an account, with evidence and outcomes.
  - description: >
      A Payment Rule lets an account act on its own payments before they reach
      the bank: block them, let them through, send them to review, or ask the
      buyer for 3D Secure. Each rule matches on a small set of payment
      attributes, and every condition must hold for it to apply.


      A rule's definition is fixed once created, so the payments it decided keep
      naming the rule that decided them. Use
      [Replace](/api-reference/payment-rules/replace-a-payment-rule) to change
      one, and [List fields](/api-reference/payment-rules/list-fields) for the
      attributes, operators and values a condition can use.
    name: Payment Rules
    x-whop-summary: Rules an account writes to decide its own payments.
  - description: >
      To accept payment-financing methods, an account applies through a
      financing application: a request to review the account for payment
      financing, not a loan or business capital. Create an application, save
      answers to its requirements, then submit it for review. You can manage
      applications for your own account and its direct subaccounts.
    name: Financing Applications
    x-whop-summary: An account's request to accept buy-now-pay-later payment methods.
  - description: >
      Deposits describe the ways to add funds to an account or user balance: a
      hosted deposit page, bank transfer instructions, and crypto wallet
      addresses.


      Use the Deposits API to get deposit instructions for an account or user,
      such as a crypto address to send funds to or bank details for a transfer.
    name: Deposits
    x-whop-summary: Add funds to a balance.
  - description: >
      A Transfer moves money between Whop balances: from one account or user to
      another, from an account's wallet to a person or address, or into a claim
      link anyone with the URL can redeem.


      Use the Transfers API to send money, find recipients you can pay, list and
      retrieve transfers when reconciling money movement, and preview or redeem
      claim links.


      Subscribe to `transfer.completed` and `transfer.failed` for outcomes
      instead of polling. Each participating account can subscribe to these
      events. `transfer.created` is also emitted on success, not when processing
      starts. A failed transfer can be retried under the same ID and later
      succeed; retrieve the transfer to reconcile its current status.


      A successful balance transfer credits the recipient's available balance
      unless a release date applies. Transfers funded from pending balance
      retain a release date and credit pending balance; applicable recipient
      reserves or fraud holds can keep funds unavailable. `succeeded` confirms
      the transfer completed, not that all funds are withdrawable.
    name: Transfers
    x-whop-summary: Move funds between Whop accounts and users.
  - description: >
      Payouts represent money sent from an account or user balance to an
      external destination, such as a bank account, wallet, or other saved
      payout method.


      Use the Payouts API to create and track payouts, manage saved payout
      methods, and show expected arrival details for funds leaving Whop.
    name: Payouts
    x-whop-summary: Send money from a balance to a bank or wallet.
  - description: >
      A Financial Activity row is a single movement of money in or out of an
      account's or user's balance: a payment, payout, refund, transfer, on-chain
      deposit, swap, or card transaction. Each row carries a typed `resource`
      and `source` so you can present and link the event without extra lookups.


      Use the Financial Activity API to build a statement or transaction feed
      for an account or user, and financial reports to summarize balance
      activity, income, and balances over a date range, then break a report
      total down into what drove it.
    name: Ledgers
    x-whop-docs-title: Financial Activity
    x-whop-summary: The activity feed behind an account or user's balance.
  - description: >
      Cards represent virtual payment cards that spend from an account or user
      balance. Cards can be assigned to cardholders and configured with spending
      limits for controlled spending.


      Use the Cards API to issue cards, list cards for an account or user,
      retrieve active card details such as the card number and CVC, and list the
      transactions made with them.
    name: Cards
    x-whop-summary: Issue cards that spend from a balance.
  - description: >
      A Cashback Rule pays a platform's direct subaccounts back a share of their
      card spend, funded by the platform. Each rule sets a rate, an eligibility
      window, and optional merchant filters, and can be limited to one
      subaccount.


      Use the Cashback Rules API to create, update, and list the rules your
      platform funds, then pay out cashback on demand from your available USD
      balance.
    name: Cashback Rules
    x-whop-summary: Configure platform-sponsored card cashback.
  - description: >
      A Swap converts value between supported tokens, chains, or wallet
      destinations, or between fiat currencies at the mid-market rate, for an
      account or user. A swap quote previews the expected output, fees, and
      approval requirements before you create the swap.


      Use the Swaps API to quote a conversion, create the swap, list recent
      swaps, and retrieve a swap's status until it completes.
    name: Swaps
    x-whop-summary: Convert a balance between currencies.
  - description: >
      A Trade is one request on an account's or user's Whop-managed wallet. An
      `order` on a perpetual trades from the trading balance, bridging the USDT0
      it needs from the wallet first when the balance is short; an `order` on
      spot swaps between USDT0 and the asset in the wallet. A `close` closes the
      whole position in one market; when the account is then flat, a `withdraw`
      trade sends the trading balance back to the wallet. A `deposit` or
      `withdraw` moves money between the wallet and the trading balance.
      Perpetuals trade on Hyperliquid.


      Use the Trades API to list the markets you can trade, place orders, close
      positions and move funds, and follow each trade until it finishes. Trades
      run in the background; an order that bridged money in and does not fill
      sends that money back to the wallet, and `funds_location` says where the
      money is.


      The trading API, including `include_trading` on accounts and users, is in
      beta. It can change without a new API version date.
    name: Trades
    x-whop-summary: >-
      Place orders, close positions, and move funds for perpetual and spot
      trading from a Whop-managed wallet.
  - description: >
      A Verification represents a legal identity for a person or business.
      Accounts and users complete verification when Whop needs to confirm who
      they are before enabling payouts or compliance-sensitive workflows.


      Use the Verifications API to start or resume a hosted verification
      session, check review status, and submit requested details or documents.
      If `requested_information` contains items, submit answers with [Update
      Verification](/api-reference/verifications/update-verification).
    name: Verifications
    x-whop-summary: Legal identity required before payouts and card issuing.
  - description: >
      A Product is a digital good or service sold on Whop. Products contain
      variants for pricing and may contain experiences for content delivery.


      Use the Products API to search the public marketplace, list an account's
      products, retrieve a product, and create, update, or delete products.
    name: Products
    x-whop-summary: The things you sell. Each owns variants and a store page.
  - description: >
      A Variant is one purchasable configuration of a product. It controls
      price, billing cadence, stock, SKU, attributes, tax behavior, checkout
      fields, and purchase visibility. Variant IDs remain prefixed `plan_`.


      Use the Variants API to create variants for products, list existing
      variants, retrieve or update variant configuration, calculate tax for
      checkout, and delete variants that should no longer be offered.
    name: Variants
    x-whop-summary: Purchasable configurations of a product.
  - description: >
      A Promo Code is a discount a buyer enters at checkout, either a percentage
      or a fixed amount off. It belongs to an account, can be limited to one
      product, and controls who can redeem it, how many times, until when, and
      for how many billing periods the discount lasts.


      Use the Promo Codes API to create codes for an account, list and retrieve
      them, deactivate a code to pause redemptions or activate it again, and
      archive codes you no longer offer.
    name: Promo Codes
    x-whop-summary: Discounts that creators configure for checkout.
  - description: >
      A Checkout Configuration is a reusable checkout link owned by an account.
      In `payment` mode it sells a specific variant; in `setup` mode it collects
      and saves payment details without charging. Each configuration can also
      override which payment methods are accepted and how 3D Secure is enforced
      for that checkout.


      Use the Checkout Configurations API to create checkout links for an
      existing or inline variant, list configurations for an account, retrieve
      the configuration behind a checkout URL, and delete links that should no
      longer be used.
    name: Checkout Configurations
    x-whop-summary: Turn a variant into a shareable, prefilled checkout link.
  - description: >
      A Waitlist Entry is a user's signup for a variant that requires seller
      approval. Joining doesn't grant a membership or charge a payment method;
      the seller approves or denies each signup.


      Use the Waitlist Entries API to join a waitlist, read or cancel your own
      signups, and approve or deny the signups for accounts you operate.
    name: Waitlist Entries
    x-whop-summary: Join waitlists and manage customer signups awaiting approval.
  - description: >
      A Membership is a customer's purchase of a variant: the subscription or
      one-time grant that gives them access to a product. It tracks billing
      state (`active`, `trialing`, `past_due`, and so on), the current period,
      pending cancellations, custom metadata, and the software license key when
      the product includes licensing.


      Use the Memberships API to list an account's memberships or your own,
      retrieve one by ID or license key, invite a recipient to join through a
      free variant, and manage the lifecycle: cancel immediately or at period
      end, reverse a scheduled cancellation, pause and resume payment
      collection, extend or reactivate access, apply a promo code or affiliate,
      change renewal cadence, resync access, generate a transfer link, and
      update metadata.
    name: Memberships
    x-whop-summary: A customer's purchase of a variant, from checkout through cancellation.
  - description: >
      A Shipment attaches a carrier tracking number to a payment and follows the
      package from label creation to delivery, exposing the current delivery
      status and a customer-facing tracking URL.


      Use the Shipments API to list an account's shipments, retrieve one by its
      ID or the payment it fulfills, attach a tracking number to a payment, and
      update the tracking number on an existing shipment.
    name: Shipments
    x-whop-summary: Track the delivery of an order by its carrier tracking number.
  - description: >
      A Review is a customer's star rating and optional written feedback on a
      product, shown on the product's store page.


      Use the Reviews API to list a product's reviews, filtered by star rating
      or creation date, and retrieve a review by ID.
    name: Reviews
    x-whop-summary: Customer star ratings and written feedback on a product.
  - description: >
      A Review Report is a request from an account's admins for Whop staff to
      review a customer's review. Staff remove the review if it breaks the
      guidelines.


      Use the Review Reports API to list the reports filed on an account's
      reviews, narrowed by review, status, or creation date, and check whether a
      report is still pending.
    name: Review reports
    x-whop-summary: Reports an account's admins filed against customer reviews.
  - description: >
      A Product Affiliate represents a user's enrollment in a product's
      affiliate program. An enrollment can exist before the user makes a
      referral or earns a reward.


      Use the Product Affiliates API to list product affiliates for an account,
      search by affiliate name or username, and narrow the results by product,
      enrollment status, or signup date.
    name: Product Affiliates
    x-whop-summary: >-
      Users enrolled to promote a product, including affiliates with no
      referrals.
  - description: >
      A Domain is a hostname an account holds on Whop. Its capabilities set what
      Whop does with it: `registration` buys the domain through Whop, runs its
      DNS, and renews it every year; `verification` connects a domain registered
      elsewhere once you publish the DNS records it returns, and expires if
      ownership is not proven within 48 hours; `website` serves one of the
      account's apps on it.


      Use the Domains API to search for a domain to buy, buy or connect one,
      serve a website on it, and check its DNS, payment, and renewal state.
      Thirty days before a bought domain expires, Whop opens a renewal charge at
      `purchase_url` and, while `auto_renew` is on, charges the saved card. An
      unpaid domain stops serving when it expires but stays renewable at
      `purchase_url` until the registry's grace period ends, and is then
      removed.
    name: Domains
    x-whop-summary: Custom domains assigned to hosted apps.
  - description: >
      An App is software you build on Whop. It can be a hosted web app served at
      its domains, such as a `whop.site` address or a custom domain, or an API
      integration installed as an experience, and it belongs to the account that
      owns its credentials, settings, builds, and runtime logs.


      Use the Apps API to manage app configuration, deploy an app's working copy
      and follow the run on the app's `deployment` field, and, for hosted apps,
      read server runtime logs for console output, uncaught exceptions, and
      failed requests.


      Apps are also reusable blueprints. List official blueprints with
      `app_type=website&verified=true&order=template_usage`, or community
      blueprints with
      `app_type=website&verified=false&recommended=true&order=template_usage`.
      Pass the returned App `id` as `blueprint_id` when creating an Account.
    name: Apps
    x-whop-summary: 'Apps you build on Whop: metadata, hosted builds, runtime logs.'
  - description: >
      An App Build is a versioned artifact uploaded for an app — a hosted web
      archive, or an iOS/Android bundle. Builds start as drafts, go through
      review, and one approved build per platform is served to users as the
      production build.


      Use the App Builds API to upload a build for an app, list an app's builds
      with platform and status filters, retrieve a build, and promote a draft or
      approved build to production.
    name: App Builds
    x-whop-summary: Versioned build artifacts deployed to an app's platforms.
  - description: >
      An App Installation represents one install of your app on one account. An
      account installs an app once, however many experiences it adds, so an
      installation holds state that belongs to the account rather than to one
      experience, such as a sync cursor or the ID of the account it's linked to
      in another system.


      Use the App Installations API to [list the accounts your app is installed
      on](/api-reference/app-installations/list-app-installations), [retrieve
      one](/api-reference/app-installations/retrieve-app-installation), and
      [update](/api-reference/app-installations/update-app-installation) the
      `metadata` and `external_id` your app keeps on it. An account can also
      list the apps installed on it, and a developer every installation of their
      app. Only the app and its developer see `metadata` and `external_id`, and
      only the app can change them.
    name: App Installations
    x-whop-summary: >-
      Your app's installations on accounts, and the data it keeps about each
      one.
  - description: >
      An Experiment is a feature flag or A/B test owned by an account.
      Treatments take stable percentage ranges of traffic and everyone else gets
      control, so growing an allocation never moves an existing user to another
      arm.


      Use the Experiments API to create a draft, configure its weights,
      targeting, and resource bindings, then activate, pause, or end it, and to
      evaluate which arm a user, account, or anonymous visitor gets. Managing
      experiments requires `experiment:read` or `experiment:manage`; evaluation
      works without authentication.
    name: Experiments
    x-whop-summary: Feature flags and A/B experiments for gradual rollout.
  - description: >
      An Ad Campaign is the top-level container for paid ads. It sets the
      objective and budget strategy shared by its [ad
      groups](/api-reference/ad-groups/ad-group) and ads.


      Use the Ad Campaigns API to create campaigns, list campaigns for an
      account, retrieve or update campaign settings, and pause or resume
      campaign delivery.


      Ads billing combines eligible spend across the account's campaigns. A
      failed payment blocks delivery with `delivery_status: payment_failed`
      while preserving the configured active/paused `status`. Fix the account's
      payment method and [retry its ads
      payment](/api-reference/accounts/retry-failed-ads-payments) once for the
      account. The retry is asynchronous: acceptance does not confirm payment.
      Successful settlement clears the block; active campaigns can resume if
      otherwise eligible, while paused campaigns stay paused. See [billing and
      retries](/developer/ads/overview#paying-for-ads).
    name: Ad Campaigns
    x-whop-summary: Objective and budget for a set of ads.
  - description: >
      An Ad Group sits inside an [ad
      campaign](/api-reference/ad-campaigns/ad-campaign) and controls delivery
      for [ads](/api-reference/ads/ad). It sets the audience, schedule, and
      budget for its ads.


      Use the Ad Groups API to create ad groups in campaigns, list or retrieve
      targeting and delivery settings, update budgets or targeting, delete
      groups that should stop running, and pause or resume delivery.
    name: Ad Groups
    x-whop-summary: Audience, schedule, and budget within a campaign.
  - description: >
      An Ad is the individual creative unit delivered by an [ad
      group](/api-reference/ad-groups/ad-group). It holds the copy, creative
      assets, and destination URL for one ad.


      Use the Ads API to list ads for an account, create ads inside ad groups,
      retrieve or update creative details, delete ads that should stop running,
      and pause or resume delivery.
    name: Ads
    x-whop-summary: 'The creative: copy, assets, and destination URL.'
  - description: >
      An Audience is a reusable group of people to include or exclude when
      targeting ads. Build custom audiences from customer lists or Whop People
      data, and create lookalikes to reach people similar to an existing
      audience.


      Use the Audiences API to create audiences, add people to an uploaded
      customer list, rename or refilter an audience, and monitor asynchronous
      processing. Whop People audiences can refresh automatically or keep a
      snapshot.
    name: Audiences
    x-whop-summary: Reusable targeting lists for ad groups.
  - description: >
      An Ad Pixel connects a pixel you own on an ad platform to a business whose
      campaigns you claimed through the advertiser supplier program. Whop sends
      that pixel the conversions credited to your claimed campaigns for that
      business, using the access token you provide.


      Use the Ad Pixels API to add one pixel per business on each ad platform,
      list or retrieve your pixels, replace an access token the ad platform
      rejected, and remove a pixel to stop deliveries.
    name: Ad Pixels
    x-whop-summary: Your own pixels that receive conversions from campaigns you claimed.
  - description: >
      Stats represent aggregated activity for an account over time. They help
      you understand revenue, transactions, disputes, members, referrals, and
      advertising performance across reporting periods like days, weeks, or
      months.


      Use the Stats API to list the metrics you can chart and retrieve one as a
      time series over a date range, or list reports and retrieve aggregates
      that are not bucketed over time, such as platform-wide payment trends.
    name: Stats
    x-whop-summary: Aggregated financial, audience, and traffic reporting.
  - description: >
      A Person is an identity-linked profile of a visitor or customer of an
      account, assembled from every [event](/api-reference/events/event) the
      person generated, such as pixel page views, ad clicks, leads, and
      payments.


      Use the People API to list and segment the people of an account by
      activity, purchases, traffic source, or marketing touch, and to retrieve
      one person by person ID, user ID, email address, or phone number.
    name: People
    x-whop-summary: >-
      Visitors and customers of an account, with identity, purchase, and traffic
      profiles.
  - description: >
      An Event records conversion or engagement activity for an account, such as
      page views, purchases, or leads. Each event ties the action to the
      [person](/api-reference/people/person) who took it, so activity can be
      attributed to the ads and links that drove it.


      Use the Events API to send new tracking events, list recent
      identity-linked events for an account, and inspect the events recorded for
      a person. The resource also exposes an anonymized read mode — the pulse
      feed — a platform-wide snapshot of recent purchases that carries nothing
      identifying. The pulse feed is public; other Events endpoints require
      authentication and are scoped to an account.


      Events are only as good as the pixel sending them, so [Validate
      Pixel](/api-reference/events/validate-pixel) answers whether an account's
      pixel is working: it reads the events the pixel has sent, and when you
      pass a `url` whose page hasn't sent any lately, it fetches that page and
      looks for the pixel in its source. Use it before launching an ad to
      confirm its destination is tracked, or in a setup flow to tell a merchant
      whether their install is live.
    name: Events
    x-whop-summary: Conversion and engagement events tracked for attribution.
  - description: >
      An Export is a CSV of one of an account's dashboard tables, such as
      members, payments, or disputes. Exports are generated in the background,
      so a new export starts `pending` and becomes `completed` with a download
      link.


      Use the Exports API to start an export, poll it until `download_url` is
      set, and list an account's past exports. Each table requires its own
      export scope, and finished files are deleted after 30 days.
    name: Exports
    x-whop-summary: Asynchronous CSV dumps of an account's dashboard data.
  - description: >
      Economic Intelligence is Whop's recommendation engine for an account. Each
      recommendation is one action: a title the owner sees, a step-by-step brief
      Whop AI carries out, and the result it expects. Whop generates them from
      the account's sales, site, ads, and what its owner has said.


      Use the Economic Intelligence API to list an account's recommendations,
      request new ones for a specific goal, and follow each one from `queued` to
      `ready`, then to `executed` once the owner runs it or `superseded` when a
      newer one replaces it or you retire it.


      Read `economic_intelligence_offers` from account preferences and send one
      of its keys as `economic_intelligence_duration_key` to turn it on.
    name: Economic Intelligence
    x-whop-summary: What an account should do next to grow, generated from its own data.
  - description: >
      A Livestream represents a live video broadcast in an experience. After a
      recorded livestream ends, members can watch the replay, and moderators can
      pin the best recordings to feature them.


      Use the Livestreams API to [list an experience's
      livestreams](/api-reference/livestreams/list-livestreams), [retrieve
      one](/api-reference/livestreams/retrieve-livestream) with its recording,
      and [pin](/api-reference/livestreams/pin-livestream) or
      [unpin](/api-reference/livestreams/unpin-livestream) recordings.
    name: Livestreams
    x-whop-summary: Live video broadcasts in an experience, and their recordings.
  - description: >
      A Notification is a message delivered to a user, such as a new post, a
      payment, or a mention. Each one comes from an experience the user belongs
      to or a team they are on, and falls under a topic, like new sales, that
      users set preferences on.


      Use the Notifications API to list a user's feed, read and clear unread
      badges, send notifications from your app to an experience's users or an
      account's team, and list the topic catalog that notification preferences
      reference.
    name: Notifications
    x-whop-summary: >-
      The user's notification feed: unread badges, mark-read, app sends, and the
      topic catalog.
  - description: >
      An Email address is a mailbox on one of the account's domains, such as
      support@example.com. The domain needs the `email` capability in the
      `ready` state first. A mailbox either belongs to one team member, who
      alone can read it and send from it, or is shared by the account, where
      `email:read` and `email:send` decide who can use it.


      Use the Email addresses API to create, list, reassign and delete
      mailboxes, read the password mail apps sign in with, and download a
      configuration profile that adds the mailbox to Mail on Apple devices.
      Deleting an address keeps its mail, and creating it again in the same
      account brings the mailbox back.
    name: Email addresses
    x-whop-summary: Mailboxes on an account's domains, for sending and receiving email.
  - description: >
      Get started at [whop.com/network](https://whop.com/network). A Partner is
      a user who refers people and businesses to Whop. The partner profile
      includes enrollment, active direct business referral counts, and default
      payout terms.


      Retrieve your profile with `/partners/me`. Use
      `/partner_referral_requests` to create and manage referral links and their
      rewards. You can also enroll in the partner program, review referred users
      and businesses, track earnings, and see the partner leaderboard.
    name: Partners
    x-whop-summary: >-
      Your partner profile, referral links, payout rates, and referred
      businesses.
  - description: >
      A Partner Referral Request is a partner's referral link, or a request to
      be credited as the referrer of an existing business or user. An
      attribution request takes effect only when the recipient accepts it.


      Use the Partner Referral Requests API to create referral links, send
      attribution requests, list the links and requests you've sent or received,
      and accept, decline, or cancel a pending request.
    name: Partner Referral Requests
    x-whop-summary: Request business or partner attribution and manage approval.
  - description: >
      A Bounty is a paid task posted by an account or user. The reward is held
      in escrow when the bounty publishes, workers submit proof of completed
      work, and each accepted submission is paid out until every winner slot
      fills.


      Use the Bounties API to create and publish a bounty, list an account's
      bounties for reporting or dashboards, list the bounties a user can work or
      has participated in, and retrieve a single bounty by ID.
    name: Bounties
    x-whop-summary: Paid tasks with reviewed submissions and escrowed rewards.
  - description: >
      A Bounty Submission is one worker's attempt on a bounty. It starts as an
      in-progress attempt, enters the review queue when proof is submitted, and
      ends approved (paid from the bounty's escrowed pool) or denied.


      Use the Bounty Submissions API to submit proof of completed work to a
      bounty, list the submissions you authored, and review the submissions on
      your bounties — across every bounty or narrowed to one.
    name: Bounty Submissions
    x-whop-summary: Work submitted to a bounty, from attempt to payout.
  - description: >
      A File is an uploaded document or media object, identified by a `file_`
      ID. Creating a file returns a presigned destination; upload the bytes
      there and the file becomes `ready`.


      Use the Files API to create a file, upload its content directly to storage
      (in one PUT, or in parts for large files), and retrieve it while polling
      for readiness. A ready file's ID can be attached wherever Whop accepts
      files.
    name: Files
    x-whop-summary: Upload files and attach them wherever Whop accepts documents.
  - description: >
      A Media Asset is an AI-generated image or video created from a prompt and
      billed from an account balance. When generation finishes, the asset
      includes a file that can be attached anywhere Whop accepts files.


      Use the Media API to start a generation job and retrieve the asset while
      it processes or after it is ready.
    name: Media
    x-whop-summary: >-
      AI-generated assets, billed from a balance, attachable wherever files are
      accepted.
  - description: >
      An API Key is a programmatic credential owned by an account or app. Each
      key carries its own permissions policy — explicit permission statements or
      an inherited system role — and can be restricted with an expiration date
      and an IP allowlist.


      Use the API Keys API to list an account or app's keys, create a key (the
      full secret is returned once, on creation), inspect a key's effective
      grants, update its name or restrictions, rotate its secret, and revoke it.
      These endpoints require a user session — they cannot be called with an API
      key.
    name: API Keys
    x-whop-summary: Programmatic credentials for an account or app.
  - description: >
      A Webhook is an endpoint on your server that Whop sends signed HTTP POST
      requests to when events happen, such as a payment succeeding or a
      membership going active. A webhook is attached to an account or an app and
      subscribes to the events you choose.


      Use the Webhooks API to create and update endpoints, send a test event,
      inspect the delivery log, and replay deliveries your server missed. See
      [Webhooks & Events](/developer/guides/webhooks) for verifying signatures
      and handling retries.
    name: Webhooks
    x-whop-summary: Event notifications pushed to your server as things happen.
  - description: >
      A Permission is one action, such as `stats:read`, paired with whether your
      credential is granted it on a given resource. It answers for whatever you
      authenticated with, so you can decide what to show or attempt instead of
      discovering a `403`.


      Use the Permissions API to check an account, product, experience, or app,
      narrowing to the actions you care about. It reports only your own access —
      to manage who else can reach an account, use the Team Members API.
    name: Permissions
    x-whop-summary: What your credential is allowed to do on a resource.
  - description: >
      An Api Log is a record of a single request made to Whop's API using one of
      your account's API keys — the programmatic counterpart to the dashboard
      audit log, which only records actions taken by signed-in team members.
      Reads and failed requests are logged too.


      Use the Api Logs API to see what your integrations are doing on Whop: the
      operation, HTTP method and status, outcome, and timing of each request,
      newest first.
    name: Api Logs
    x-whop-summary: Requests made to Whop's API with your account's API keys.
  - description: >
      A feedback submission sends an issue, confusing behavior, documentation
      gap, or unanswered question to Whop. It is recorded under the
      authenticated user, account, or app, with an optional account for context,
      and reviewed by Whop.


      User, account, and app credentials can all submit. The response is a
      receipt with an `fbk_` ID: Whop does not reply to submissions, and they
      cannot be listed or retrieved through the API.
    name: Feedback
    x-whop-summary: Issues and unanswered questions sent to Whop for review.
paths:
  /verifications/{id}:
    parameters:
      - $ref: '#/components/parameters/ApiVersionDate'
    patch:
      tags:
        - Verifications
      summary: Update Verification
      description: >-
        Updates editable profile details or submits answers for items returned
        in `requested_information`. On a business verification still collecting
        details, company details, `documents`, and `owners` also go to the
        verification provider; call Create Verification again to send the
        business for review once everything is in. Under review,
        `registration_number`, `incorporation_date`, `place_of_incorporation`,
        and `documents` are refused. While the review waits on owners, owners
        can still be added, changed, or removed with `remove`; otherwise only an
        owner's missing documents can still be sent. Once a verification is
        `approved` its profile details are locked and can no longer be edited.
      operationId: updateVerification
      parameters:
        - description: Verification profile ID, prefixed `idpf_`.
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                requested_information:
                  - id: inrqi_textxxxxxx
                    value: https://example.com
                    value_type: raw
                  - address:
                      city: Austin
                      country: US
                      line1: 4180 Burnet Rd
                      postal_code: '78756'
                      state: TX
                    id: inrqi_addrxxxxxx
                  - file: upload_xxxxxxxxxxxx
                    id: inrqi_filexxxxxx
              oneOf:
                - description: >-
                    Fields that can be updated on an individual (KYC)
                    verification. At least one field is required.
                  properties:
                    business_name:
                      description: >-
                        Legal business name for a sole proprietor or
                        single-member LLC.
                      example: Shine Time Auto Detailing
                      type: string
                    business_structure:
                      description: >-
                        Entity type for sole proprietors, such as
                        `single_member_llc`. Supported values vary by country of
                        incorporation — see [Business
                        structures](/developer/verification/business-structures).
                      example: sole_proprietorship
                      type: string
                    business_tax_identification_number:
                      description: >-
                        The business ID number of the company, as appropriate
                        for the company's country. Examples are an Employer
                        Identification Number (EIN) in the US, a Business Number
                        in Canada, or a Company Number in the UK.
                      example: 12-3456789
                      type: string
                    country:
                      description: >-
                        Two-letter ISO 3166-1 country code, for example `US`,
                        `DE`, or `GB`.
                      example: US
                      type: string
                    date_of_birth:
                      description: Formatted as `YYYY-MM-DD`.
                      example: '2026-01-01'
                      type: string
                    first_name:
                      example: Marcus
                      type: string
                    last_name:
                      example: Webb
                      type: string
                    personal_address:
                      description: Personal address for the individual.
                      properties:
                        city:
                          example: Austin
                          type:
                            - string
                            - 'null'
                        country:
                          description: >-
                            Two-letter ISO 3166-1 country code, for example
                            `US`, `DE`, or `GB`. An address in a [sanctioned
                            country or
                            region](/trust-and-safety/trust-safety-overview/sanctioned-countries)
                            is rejected with the error code
                            `address_country_sanctioned`.
                          example: US
                          type:
                            - string
                            - 'null'
                        line1:
                          description: First line of the street address.
                          example: 4180 Burnet Rd
                          type:
                            - string
                            - 'null'
                        line2:
                          description: Second line of the street address.
                          example: Suite 2
                          type:
                            - string
                            - 'null'
                        postal_code:
                          description: Postal or ZIP code.
                          example: '78756'
                          type:
                            - string
                            - 'null'
                        state:
                          description: State, province, or region code, for example `CA`.
                          example: TX
                          type:
                            - string
                            - 'null'
                      type: object
                    requested_information:
                      description: >-
                        Answers to items in `requested_information`. Each entry
                        pairs the item `id` with one answer payload matching its
                        `type`.
                      items:
                        properties:
                          address:
                            description: Answer for `address` items.
                            properties:
                              city:
                                example: Austin
                                type:
                                  - string
                                  - 'null'
                              country:
                                description: >-
                                  Two-letter ISO 3166-1 country code, for
                                  example `US`, `DE`, or `GB`. An address in a
                                  [sanctioned country or
                                  region](/trust-and-safety/trust-safety-overview/sanctioned-countries)
                                  is rejected with the error code
                                  `address_country_sanctioned`.
                                example: US
                                type:
                                  - string
                                  - 'null'
                              line1:
                                description: First line of the street address.
                                example: 4180 Burnet Rd
                                type:
                                  - string
                                  - 'null'
                              line2:
                                description: Second line of the street address.
                                example: Suite 2
                                type:
                                  - string
                                  - 'null'
                              postal_code:
                                description: Postal or ZIP code.
                                example: '78756'
                                type:
                                  - string
                                  - 'null'
                              state:
                                description: >-
                                  State, province, or region code, for example
                                  `CA`.
                                example: TX
                                type:
                                  - string
                                  - 'null'
                            type: object
                          document_number:
                            description: Identity number for an `id_document` answer.
                            type: string
                          documents:
                            description: >-
                              Answer for an `id_document` item: the same slot
                              keys Create Verification takes, so the key names
                              both the document and the side. Send every slot
                              for the ID you are uploading — `PASSPORT` is
                              `passport_front`; `ID_CARD`, `DRIVERS` and
                              `RESIDENCE_PERMIT` take a front and a back. Each
                              value is a direct upload ID, or a `file_`-prefixed
                              attachment ID to reuse an uploaded document.
                            properties:
                              drivers_back:
                                description: Back of the driver's license.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              drivers_front:
                                description: Front of the driver's license.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              id_card_back:
                                description: Back of the ID card.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              id_card_front:
                                description: Front of the ID card.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              passport_front:
                                description: Photo page of the passport.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              residence_permit_back:
                                description: Back of the residence permit.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              residence_permit_front:
                                description: Front of the residence permit.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                            type: object
                          files:
                            description: >-
                              Answer for a `files` item, optional supporting
                              documents for `text_with_files`, or the document
                              an item's `alternative_document_label` names — a
                              list of pages, first page first. Each entry is a
                              direct upload ID, or a `file_`-prefixed attachment
                              ID to reuse an uploaded document.
                            items:
                              description: >-
                                A direct upload ID, or a `file_`-prefixed
                                attachment ID to reuse an uploaded document.
                              example: file_xxxxxxxxxxxxxx
                              type: string
                            type: array
                          id:
                            description: Item ID from `requested_information`.
                            example: inrqi_xxxxxxxxxxxxxx
                            type: string
                          issuing_country:
                            description: >-
                              Two-letter ISO 3166-1 issuing country for an
                              `id_document` answer.
                            type: string
                          value:
                            description: >-
                              Answer for `text`, `text_with_files`, `date`,
                              `phone`, and `select` items, and the chosen
                              document type for a `file` item that lists
                              `options`.
                            example: Mobile detailing only; no retail storefront.
                            type: string
                          value_type:
                            description: Whether `value` is raw input or a vault token.
                            enum:
                              - raw
                              - vault_token
                            example: raw
                            type: string
                          values:
                            description: >-
                              Every chosen option for a `select` item that
                              accepts more than one answer. Use `value` for
                              every other item.
                            items:
                              type: string
                            type: array
                        required:
                          - id
                        type: object
                      type: array
                    tax_identification_number:
                      description: >-
                        The government-issued ID number of the person being
                        verified — the individual for a KYC verification, or the
                        business representative for a KYB verification — as
                        appropriate for their country. Examples are a Social
                        Security Number (SSN) in the US, or a Social Insurance
                        Number in Canada.
                      example: '123456789'
                      type: string
                  title: UpdateIndividualVerification
                  type: object
                - description: >-
                    Fields that can be updated on a business entity (KYB)
                    verification. At least one field is required.
                  properties:
                    business_address:
                      description: Business address.
                      properties:
                        city:
                          example: Austin
                          type:
                            - string
                            - 'null'
                        country:
                          description: >-
                            Two-letter ISO 3166-1 country code, for example
                            `US`, `DE`, or `GB`. An address in a [sanctioned
                            country or
                            region](/trust-and-safety/trust-safety-overview/sanctioned-countries)
                            is rejected with the error code
                            `address_country_sanctioned`.
                          example: US
                          type:
                            - string
                            - 'null'
                        line1:
                          description: First line of the street address.
                          example: 4180 Burnet Rd
                          type:
                            - string
                            - 'null'
                        line2:
                          description: Second line of the street address.
                          example: Suite 2
                          type:
                            - string
                            - 'null'
                        postal_code:
                          description: Postal or ZIP code.
                          example: '78756'
                          type:
                            - string
                            - 'null'
                        state:
                          description: State, province, or region code, for example `CA`.
                          example: TX
                          type:
                            - string
                            - 'null'
                      type: object
                    business_name:
                      description: Legal business name.
                      example: Shine Time Auto Detailing
                      type: string
                    business_structure:
                      description: >-
                        Legal entity structure of the business, such as
                        `private_corporation` or `sole_proprietorship`.
                        Supported values vary by country of incorporation — see
                        [Business
                        structures](/developer/verification/business-structures).
                      example: sole_proprietorship
                      type: string
                    business_tax_identification_number:
                      description: >-
                        The business ID number of the company, as appropriate
                        for the company's country. Examples are an Employer
                        Identification Number (EIN) in the US, a Business Number
                        in Canada, or a Company Number in the UK.
                      example: 12-3456789
                      type: string
                    country:
                      description: >-
                        Two-letter ISO 3166-1 country code, for example `US`,
                        `DE`, or `GB`.
                      example: US
                      type: string
                    date_of_birth:
                      description: >-
                        Business representative's date of birth, formatted as
                        `YYYY-MM-DD`.
                      example: '2026-01-01'
                      type: string
                    documents:
                      description: >-
                        Company formation documents, each the ID of a file
                        uploaded with Create File and not yet attached to
                        anything else, prefixed `file_`. Send the ID once its
                        `upload_status` is `ready`. Each file must be a PDF,
                        JPEG, or PNG of up to 10MB. They are filed under the
                        business's country, from `country`, `address`, or an
                        earlier request. A document of a kind already on file is
                        kept unless it was rejected, so a retried request does
                        not add a second copy. The hosted session at
                        `session_url` collects anything still missing.
                      properties:
                        articles_of_incorporation:
                          description: >-
                            File ID of the articles of incorporation or
                            organization, prefixed `file_`.
                          example: file_xxxxxxxxxxxxxx
                          type: string
                        certificate_of_incorporation:
                          description: >-
                            File ID of the certificate of incorporation or
                            formation, prefixed `file_`.
                          example: file_xxxxxxxxxxxxxx
                          type: string
                      type: object
                    first_name:
                      description: First name of the business representative.
                      example: Marcus
                      type: string
                    incorporation_date:
                      description: >-
                        Date the business was incorporated, formatted as
                        `YYYY-MM-DD`. Cannot be in the future. Sent to the
                        verification provider and returned in the response;
                        `requested_information` asks for it while it is still
                        missing.
                      format: date
                      type: string
                    last_name:
                      description: Last name of the business representative.
                      example: Webb
                      type: string
                    owners:
                      description: >-
                        Owners of the business, up to 10 per request. Once the
                        company details, the company documents, and the owners
                        are in and every new owner's documents were sent, Create
                        Verification sends the business for review: in the
                        request that completes it, as soon as the last owner's
                        documents finish sending in the background, or when
                        called again after Update Verification. Owners can still
                        be added, changed, or removed while the review waits on
                        them.
                      items:
                        description: >-
                          An owner to add, change, or remove. Send `id` to
                          change an owner already on the verification: new
                          `roles` or `ownership_percentage`; corrected details
                          such as `date_of_birth` or `first_name`, or
                          `document_type` and `documents`, while the owner's
                          verification is waiting on them (see
                          `rejected_checks`). Send `id` with `remove` set to
                          `true` to remove that owner. Without `id`, the entry
                          adds an owner as it does on Create Verification.
                          Owners left out are not changed.
                        properties:
                          address:
                            description: >-
                              The new owner's home address, with `line1`,
                              `city`, `state`, and `postal_code`.
                            properties:
                              city:
                                example: Austin
                                type:
                                  - string
                                  - 'null'
                              country:
                                description: >-
                                  Two-letter ISO 3166-1 country code, for
                                  example `US`, `DE`, or `GB`. An address in a
                                  [sanctioned country or
                                  region](/trust-and-safety/trust-safety-overview/sanctioned-countries)
                                  is rejected with the error code
                                  `address_country_sanctioned`.
                                example: US
                                type:
                                  - string
                                  - 'null'
                              line1:
                                description: First line of the street address.
                                example: 4180 Burnet Rd
                                type:
                                  - string
                                  - 'null'
                              line2:
                                description: Second line of the street address.
                                example: Suite 2
                                type:
                                  - string
                                  - 'null'
                              postal_code:
                                description: Postal or ZIP code.
                                example: '78756'
                                type:
                                  - string
                                  - 'null'
                              state:
                                description: >-
                                  State, province, or region code, for example
                                  `CA`.
                                example: TX
                                type:
                                  - string
                                  - 'null'
                            type: object
                          country:
                            description: >-
                              The new owner's country, as a two-letter ISO
                              3166-1 code.
                            example: US
                            type: string
                          date_of_birth:
                            description: >-
                              The new owner's date of birth, formatted as
                              `YYYY-MM-DD`.
                            example: '2026-01-01'
                            format: date
                            type: string
                          document_type:
                            description: >-
                              Identity document in `documents`. Decides which
                              slots to send: `id_card` → `id_card_front` +
                              `id_card_back`; `drivers` → `drivers_front` +
                              `drivers_back`; `residence_permit` →
                              `residence_permit_front` +
                              `residence_permit_back`; `passport` →
                              `passport_front`. Every type also takes `selfie`.
                            enum:
                              - id_card
                              - drivers
                              - residence_permit
                              - passport
                            example: passport
                            type: string
                          documents:
                            description: >-
                              The owner's identity document and selfie, each the
                              ID of a ready file uploaded with Create File and
                              not yet attached to anything else, prefixed
                              `file_`. Send every slot for `document_type` plus
                              `selfie`. Document files can be a PDF, JPEG, or
                              PNG and the selfie a JPEG or PNG, each up to 10MB.
                              They're sent to the verification provider in the
                              background: the owner reads `processing` until
                              then, and `action_required`, with a
                              `rejection_reason` on each document, if a file
                              couldn't be used.
                            properties:
                              drivers_back:
                                description: >-
                                  File ID of the back of the driver's license.
                                  Required when `document_type` is `drivers`.
                                type: string
                              drivers_front:
                                description: >-
                                  File ID of the front of the driver's license.
                                  Required when `document_type` is `drivers`.
                                type: string
                              id_card_back:
                                description: >-
                                  File ID of the back of the ID card. Required
                                  when `document_type` is `id_card`.
                                type: string
                              id_card_front:
                                description: >-
                                  File ID of the front of the ID card. Required
                                  when `document_type` is `id_card`.
                                type: string
                              passport_front:
                                description: >-
                                  File ID of the passport's photo page. Required
                                  when `document_type` is `passport`.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              residence_permit_back:
                                description: >-
                                  File ID of the back of the residence permit.
                                  Required when `document_type` is
                                  `residence_permit`.
                                type: string
                              residence_permit_front:
                                description: >-
                                  File ID of the front of the residence permit.
                                  Required when `document_type` is
                                  `residence_permit`.
                                type: string
                              selfie:
                                description: >-
                                  File ID of a photo of the owner's face. Must
                                  be a JPEG or PNG. Required, except on Update
                                  Verification for an owner whose selfie already
                                  passed.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                            type: object
                          email:
                            description: The new owner's email address.
                            example: marcus@shinetime.example
                            type: string
                          first_name:
                            description: The new owner's first name.
                            example: Riley
                            type: string
                          id:
                            description: >-
                              An owner already on the verification, prefixed
                              `own_`, from `owners`.
                            example: own_xxxxxxxxxxxxxx
                            type: string
                          last_name:
                            description: The new owner's last name.
                            example: Owner
                            type: string
                          ownership_percentage:
                            description: >-
                              Share of the business the person owns, from 0 to
                              100. Across every owner it can't add up to more
                              than 100.
                            example: 40
                            maximum: 100
                            minimum: 0
                            type: number
                          phone:
                            description: The new owner's phone number, with country code.
                            example: +xxxxxxxxxxx
                            type: string
                          remove:
                            description: >-
                              Set to `true` with `id` to remove that owner from
                              the business. Takes no other fields. The owner's
                              own verification is kept, so a reused owner can be
                              added back with `verification_id` and a person you
                              added by sending their details and documents
                              again.
                            example: true
                            type: boolean
                          roles:
                            description: >-
                              What the person is to the business: `ubo` for an
                              ultimate beneficial owner, `director`,
                              `representative` for someone who acts for the
                              business, or `shareholder`. Required for a new
                              owner.
                            items:
                              enum:
                                - ubo
                                - director
                                - representative
                                - shareholder
                              example: ubo
                              type: string
                            type: array
                          tax_identification_number:
                            description: >-
                              The new owner's government-issued ID number, such
                              as a Social Security Number in the US.
                            example: '123456780'
                            type: string
                          verification_id:
                            description: >-
                              ID of an `approved` individual verification to add
                              as this owner, prefixed `idpf_`. It must be the
                              account's own verification or a team member's.
                              Takes only `roles` and `ownership_percentage`
                              alongside it.
                            example: idpf_xxxxxxxxxxxxxx
                            type: string
                        type: object
                      maxItems: 10
                      type: array
                    place_of_incorporation:
                      description: >-
                        State or region where the business is incorporated. Sent
                        to the verification provider and returned in the
                        response; `requested_information` asks for it while it
                        is still missing.
                      type: string
                    registration_number:
                      description: >-
                        Number the business was registered under in its place of
                        incorporation, such as a state file number in the US or
                        a Company Number in the UK. Sent to the verification
                        provider and returned in the response;
                        `requested_information` asks for it while it is still
                        missing.
                      example: '0803486771'
                      type: string
                    requested_information:
                      description: >-
                        Answers to items in `requested_information`. Each entry
                        pairs the item `id` with one answer payload matching its
                        `type`.
                      items:
                        properties:
                          address:
                            description: Answer for `address` items.
                            properties:
                              city:
                                example: Austin
                                type:
                                  - string
                                  - 'null'
                              country:
                                description: >-
                                  Two-letter ISO 3166-1 country code, for
                                  example `US`, `DE`, or `GB`. An address in a
                                  [sanctioned country or
                                  region](/trust-and-safety/trust-safety-overview/sanctioned-countries)
                                  is rejected with the error code
                                  `address_country_sanctioned`.
                                example: US
                                type:
                                  - string
                                  - 'null'
                              line1:
                                description: First line of the street address.
                                example: 4180 Burnet Rd
                                type:
                                  - string
                                  - 'null'
                              line2:
                                description: Second line of the street address.
                                example: Suite 2
                                type:
                                  - string
                                  - 'null'
                              postal_code:
                                description: Postal or ZIP code.
                                example: '78756'
                                type:
                                  - string
                                  - 'null'
                              state:
                                description: >-
                                  State, province, or region code, for example
                                  `CA`.
                                example: TX
                                type:
                                  - string
                                  - 'null'
                            type: object
                          document_number:
                            description: Identity number for an `id_document` answer.
                            type: string
                          documents:
                            description: >-
                              Answer for an `id_document` item: the same slot
                              keys Create Verification takes, so the key names
                              both the document and the side. Send every slot
                              for the ID you are uploading — `PASSPORT` is
                              `passport_front`; `ID_CARD`, `DRIVERS` and
                              `RESIDENCE_PERMIT` take a front and a back. Each
                              value is a direct upload ID, or a `file_`-prefixed
                              attachment ID to reuse an uploaded document.
                            properties:
                              drivers_back:
                                description: Back of the driver's license.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              drivers_front:
                                description: Front of the driver's license.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              id_card_back:
                                description: Back of the ID card.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              id_card_front:
                                description: Front of the ID card.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              passport_front:
                                description: Photo page of the passport.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              residence_permit_back:
                                description: Back of the residence permit.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                              residence_permit_front:
                                description: Front of the residence permit.
                                example: file_xxxxxxxxxxxxxx
                                type: string
                            type: object
                          files:
                            description: >-
                              Answer for a `files` item, optional supporting
                              documents for `text_with_files`, or the document
                              an item's `alternative_document_label` names — a
                              list of pages, first page first. Each entry is a
                              direct upload ID, or a `file_`-prefixed attachment
                              ID to reuse an uploaded document.
                            items:
                              description: >-
                                A direct upload ID, or a `file_`-prefixed
                                attachment ID to reuse an uploaded document.
                              example: file_xxxxxxxxxxxxxx
                              type: string
                            type: array
                          id:
                            description: Item ID from `requested_information`.
                            example: inrqi_xxxxxxxxxxxxxx
                            type: string
                          issuing_country:
                            description: >-
                              Two-letter ISO 3166-1 issuing country for an
                              `id_document` answer.
                            type: string
                          value:
                            description: >-
                              Answer for `text`, `text_with_files`, `date`,
                              `phone`, and `select` items, and the chosen
                              document type for a `file` item that lists
                              `options`.
                            example: Mobile detailing only; no retail storefront.
                            type: string
                          value_type:
                            description: Whether `value` is raw input or a vault token.
                            enum:
                              - raw
                              - vault_token
                            example: raw
                            type: string
                          values:
                            description: >-
                              Every chosen option for a `select` item that
                              accepts more than one answer. Use `value` for
                              every other item.
                            items:
                              type: string
                            type: array
                        required:
                          - id
                        type: object
                      type: array
                    tax_identification_number:
                      description: >-
                        The government-issued ID number of the person being
                        verified — the individual for a KYC verification, or the
                        business representative for a KYB verification — as
                        appropriate for their country. Examples are a Social
                        Security Number (SSN) in the US, or a Social Insurance
                        Number in Canada.
                      example: '123456789'
                      type: string
                  title: UpdateBusinessVerification
                  type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  account_ids:
                    description: >-
                      Accounts this verification was read for, each prefixed
                      `biz_`: the account you listed by, the account or
                      subaccount it belongs to with `include_subaccounts`, or
                      every account you can read that it belongs to when
                      retrieved by ID. Usually one. Empty for a personal
                      verification.
                    example:
                      - biz_xxxxxxxxxxxxxx
                    items:
                      example: biz_xxxxxxxxxxxxxx
                      type: string
                    type: array
                  address:
                    description: >-
                      Address on the verification profile. `null` when no
                      address is set.
                    properties:
                      city:
                        example: Austin
                        type:
                          - string
                          - 'null'
                      country:
                        description: >-
                          Two-letter ISO 3166-1 country code, for example `US`,
                          `DE`, or `GB`.
                        example: US
                        type:
                          - string
                          - 'null'
                      line1:
                        description: First line of the street address.
                        example: 4180 Burnet Rd
                        type: string
                      line2:
                        description: Second line of the street address.
                        example: Suite 2
                        type:
                          - string
                          - 'null'
                      postal_code:
                        description: Postal or ZIP code.
                        example: '78756'
                        type:
                          - string
                          - 'null'
                      state:
                        description: State, province, or region code, for example `CA`.
                        example: TX
                        type:
                          - string
                          - 'null'
                    type:
                      - object
                      - 'null'
                  business_name:
                    description: Legal business name.
                    example: Shine Time Auto Detailing, LLC
                    type:
                      - string
                      - 'null'
                  business_structure:
                    description: >-
                      Legal entity structure of the business, such as
                      `private_corporation` or `sole_proprietorship`. Supported
                      values vary by country of incorporation — see [Business
                      structures](/developer/verification/business-structures).
                    example: sole_proprietorship
                    type:
                      - string
                      - 'null'
                  country:
                    description: >-
                      Two-letter ISO 3166-1 country code, for example `US`,
                      `DE`, or `GB`.
                    example: US
                    type:
                      - string
                      - 'null'
                  created_at:
                    description: >-
                      When the verification profile was created, as an ISO 8601
                      timestamp.
                    example: '2026-06-01T12:00:00.000Z'
                    type: string
                  date_of_birth:
                    description: Formatted as `YYYY-MM-DD`.
                    example: '1990-01-01'
                    type:
                      - string
                      - 'null'
                  email:
                    description: Email address on the verification profile.
                    example: marcus@shinetime.example
                    type:
                      - string
                      - 'null'
                  first_name:
                    example: Marcus
                    type:
                      - string
                      - 'null'
                  id:
                    description: Verification profile ID, prefixed `idpf_`.
                    example: idpf_xxxxxxxxxxxx
                    type: string
                  incorporation_date:
                    description: >-
                      Date the business was incorporated, formatted as
                      `YYYY-MM-DD`, as on file for the business verification.
                      Business verifications only; `null` until it is sent.
                    example: '2021-03-15'
                    type:
                      - string
                      - 'null'
                  kind:
                    enum:
                      - individual
                      - business
                    example: individual
                    type: string
                  last_name:
                    example: Webb
                    type:
                      - string
                      - 'null'
                  owners:
                    description: >-
                      Owners of the business and the progress of each one's own
                      verification. Empty for individual verifications.
                    items:
                      properties:
                        date_of_birth:
                          description: >-
                            The owner's date of birth on file, formatted as
                            `YYYY-MM-DD`.
                          example: '1985-06-01'
                          type:
                            - string
                            - 'null'
                        first_name:
                          example: Riley
                          type:
                            - string
                            - 'null'
                        id:
                          description: >-
                            Owner ID, prefixed `own_`. Send it in Update
                            Verification's `owners` to change or remove the
                            owner, including one added in the hosted session.
                          example: own_xxxxxxxxxxxxxx
                          type: string
                        last_name:
                          example: Owner
                          type:
                            - string
                            - 'null'
                        ownership_percentage:
                          description: >-
                            Share of the business the person owns, from 0 to
                            100.
                          example: 60
                          type:
                            - number
                            - 'null'
                        rejected_checks:
                          description: >-
                            What the provider rejected when the owner's
                            verification was sent back: `details` (their name,
                            date of birth, or other details don't match their
                            ID), `identity_document`, or `selfie`. Fix only
                            these with Update Verification. Empty otherwise.
                          items:
                            enum:
                              - details
                              - identity_document
                              - selfie
                            example: details
                            type: string
                          type: array
                        required_documents:
                          description: >-
                            The owner's documents and their progress. Empty for
                            an owner added with `verification_id`.
                          items:
                            properties:
                              document:
                                description: >-
                                  Document slot key, such as `id_card_front`,
                                  `id_card_back`, or `selfie`.
                                example: id_card_front
                                type: string
                              rejection_reason:
                                description: >-
                                  Why the previous submission was rejected, when
                                  the provider requested new documents or
                                  declined the verification.
                                example: Document image was too blurry to read.
                                type:
                                  - string
                                  - 'null'
                              status:
                                description: >-
                                  `pending_upload` until the document has been
                                  relayed for review; `submitted` afterwards.
                                enum:
                                  - pending_upload
                                  - submitted
                                example: pending_upload
                                type: string
                            type: object
                          type: array
                        roles:
                          description: What the person is to the business.
                          items:
                            enum:
                              - ubo
                              - director
                              - representative
                              - shareholder
                            example: ubo
                            type: string
                          type: array
                        status:
                          description: >-
                            Where the owner's own verification stands, in the
                            same states as `status`. `action_required` when
                            their documents need sending again.
                          enum:
                            - not_started
                            - pending
                            - processing
                            - manual_review
                            - approved
                            - rejected
                            - action_required
                          example: not_started
                          type: string
                      required:
                        - id
                        - roles
                        - ownership_percentage
                        - first_name
                        - last_name
                        - date_of_birth
                        - status
                        - required_documents
                        - rejected_checks
                      type: object
                    type: array
                  phone:
                    description: Phone number on the verification profile.
                    example: '+15551234567'
                    type:
                      - string
                      - 'null'
                  place_of_incorporation:
                    description: >-
                      State or region where the business is incorporated, as on
                      file for the business verification. Business verifications
                      only; `null` until it is sent.
                    example: Delaware
                    type:
                      - string
                      - 'null'
                  registration_number:
                    description: >-
                      Number the business was registered under in its place of
                      incorporation, such as a state file number in the US or a
                      Company Number in the UK. Business verifications only; as
                      on file for the business verification, or `null` until it
                      is sent.
                    example: '7654321'
                    type:
                      - string
                      - 'null'
                  requested_information:
                    description: >-
                      What Whop still needs before review can continue — one
                      requirement per entry. Answer with Update Verification;
                      nothing from the response is echoed back. Keys that don't
                      apply are omitted. For a business verification created
                      with `documents` or `owners`, this includes the company
                      details and documents still missing before it can be sent
                      for review; each owner's documents are listed under that
                      owner.
                    items:
                      properties:
                        action_url:
                          description: >-
                            URL for a related action, such as completing
                            liveness verification or viewing a payment. Absent
                            when no action is available.
                          type: string
                        alternative_document_label:
                          description: >-
                            A document that answers this item in place of
                            `value`, such as an IRS EIN letter when the EIN
                            could not be matched. Send its pages in `files`,
                            with or without a corrected `value`. Absent when
                            only `value` is accepted.
                          example: >-
                            IRS EIN letter (CP 575 or 147C) that shows your
                            business's legal name and your EIN on the same
                            letter
                          type: string
                        details_label:
                          description: Follow-up prompt shown with this requirement.
                          type: string
                        details_required:
                          description: >-
                            Whether the follow-up response is required when
                            visible.
                          type: boolean
                        details_visible_for:
                          description: >-
                            Selected option values that make the follow-up
                            prompt visible.
                          items:
                            type: string
                          type: array
                        errors:
                          description: Present after a rejected submission.
                          items:
                            properties:
                              code:
                                description: Stable error code.
                                example: document_not_readable
                                type: string
                              reason:
                                description: Why it was rejected.
                                example: The uploaded image was too blurry to read.
                                type: string
                            type: object
                          type: array
                        id:
                          description: Requested information item ID, prefixed `inrqi_`.
                          example: inrqi_xxxxxxxxxxx
                          type: string
                        label:
                          description: >-
                            Instruction to show the user. Carries the reviewer's
                            note verbatim when there is one.
                          example: Bank Statement or a check for account ending in 4242
                          type: string
                        optional:
                          description: '`true` when the item can be skipped.'
                          example: true
                          type: boolean
                        options:
                          description: >-
                            The values `value` may take on a `select` item. On
                            an `id_document` item these are the ID types
                            accepted, and the chosen one decides which
                            `documents` slots to send. Absent when the item has
                            no choice to make.
                          items:
                            example: sole_proprietorship
                            type: string
                          type: array
                        requirement:
                          description: >-
                            What is needed: a document name such as
                            `bank_statement`, or a field key such as `ssn` or
                            `identity_document`. Handle unrecognized values by
                            `type`.
                          example: bank_statement
                          type: string
                        response_type:
                          description: Optional native input format for a text response.
                          enum:
                            - yes_no
                            - yes_no_na
                            - date
                            - url
                            - number
                            - tel
                          example: yes_no
                          type: string
                        selection_mode:
                          description: >-
                            Whether a question with `options` accepts one value
                            or multiple values.
                          enum:
                            - single
                            - multiple
                          example: single
                          type: string
                        supporting_documents:
                          description: Documents supplied with the requirement for context.
                          items:
                            $ref: '#/components/schemas/File'
                          type: array
                        supporting_files_explanation_allowed:
                          description: >-
                            Whether a written explanation may replace required
                            supporting files.
                          type: boolean
                        supporting_files_required:
                          description: >-
                            Whether this requirement also needs supporting
                            files.
                          type: boolean
                        supporting_files_visible_for:
                          description: >-
                            Selected option values that make the supporting-file
                            input visible.
                          items:
                            type: string
                          type: array
                        type:
                          description: >-
                            What to send as the answer, so you never have to
                            infer it: `files` (a document, as a list of its
                            pages), `id_document` (send `documents` with the
                            slot keys for the ID you are uploading), `text`,
                            `date`, `phone` or `select` (send `value`),
                            `text_with_files` (send `value` and optional
                            `files`), `address` (send `address`), or `liveness`
                            (open `action_url`, then send `value` as `true`
                            after completion).
                          example: files
                          type: string
                      required:
                        - id
                        - requirement
                        - type
                        - label
                      type: object
                    type: array
                  required_documents:
                    description: >-
                      Documents for a document-upload verification and their
                      progress. Present only on individual verifications created
                      by sending `documents`. `pending_upload` documents were
                      not accepted yet — send the full set again with another
                      Create Verification call.
                    items:
                      properties:
                        document:
                          description: >-
                            Document slot key, such as `id_card_front`,
                            `id_card_back`, or `selfie`.
                          example: id_card_front
                          type: string
                        rejection_reason:
                          description: >-
                            Why the previous submission was rejected, when the
                            provider requested new documents or declined the
                            verification.
                          example: Document image was too blurry to read.
                          type:
                            - string
                            - 'null'
                        status:
                          description: >-
                            `pending_upload` until the document has been relayed
                            for review; `submitted` afterwards.
                          enum:
                            - pending_upload
                            - submitted
                          example: pending_upload
                          type: string
                      type: object
                    type: array
                  session_url:
                    description: >-
                      Hosted verification session URL for the user to complete
                      identity checks. Expires 7 days after creation.
                    example: https://sumsub.com/session/abc
                    type:
                      - string
                      - 'null'
                  status:
                    description: >-
                      Current verification state. `not_started` before any
                      session exists; `pending` while a session needs the user's
                      input; `processing` while the provider's automated checks
                      run on a fresh submission; `action_required` when
                      `requested_information` needs answers; `manual_review`
                      while information already sent is under review — an audit
                      answer, or a document the payout provider holds — nothing
                      to submit, usually done within 3 business days; `approved`
                      on success; `rejected` on failure. Call Create
                      Verification again to start a new session.
                    enum:
                      - not_started
                      - pending
                      - processing
                      - manual_review
                      - approved
                      - rejected
                      - action_required
                    example: action_required
                    type: string
                  updated_at:
                    description: >-
                      When the verification profile was last updated, as an ISO
                      8601 timestamp.
                    example: '2026-06-02T12:00:00.000Z'
                    type: string
                required:
                  - owners
                  - account_ids
                type: object
          description: verification updated
        '400':
          $ref: '#/components/responses/InvalidParameters'
          description: the request body has unsupported fields
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: missing or invalid authentication
        '403':
          $ref: '#/components/responses/Forbidden'
          description: credential lacks the required identity-write scope
        '404':
          $ref: '#/components/responses/NotFound'
          description: no verification with that ID is visible to the credential
      security:
        - accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth:
            - identity:write
      x-codeSamples:
        - lang: TypeScript
          source: >
            import { WhopClient } from "@whop/sdk";


            const client = new WhopClient({ token: "YOUR_TOKEN", apiVersionDate:
            "2026-08-21-1", idempotencyKey: "YOUR_IDEMPOTENCY_KEY" });

            await client.verifications.update({
                id: "id",
                body: {}
            });
components:
  parameters:
    ApiVersionDate:
      description: Pins the request to a dated API version.
      in: header
      name: Api-Version-Date
      required: false
      schema:
        example: 2026-11-04-1
        type: string
  schemas:
    File:
      properties:
        blurhash:
          description: >-
            BlurHash placeholder for an image or video. Null when unavailable or
            removed by moderation.
          example: null
          type:
            - string
            - 'null'
        content_type:
          description: >-
            The original file's MIME type, preserved when removed by moderation,
            e.g. `application/pdf`.
          example: application/pdf
          type:
            - string
            - 'null'
        created_at:
          description: When the file was created, as an ISO 8601 timestamp.
          example: '2026-01-01T12:00:00.000Z'
          type: string
        duration_seconds:
          description: >-
            Audio or video duration in seconds. Null when unavailable or removed
            by moderation.
          example: null
          type:
            - number
            - 'null'
        filename:
          description: The original filename, including its extension.
          example: evidence.pdf
          type:
            - string
            - 'null'
        height:
          description: >-
            Image or video height in pixels. Null when unavailable or removed by
            moderation.
          example: null
          type:
            - integer
            - 'null'
        id:
          description: The file's ID, prefixed `file_`.
          example: file_xxxxxxxxxxxxxx
          type: string
        multipart_chunk_size:
          description: >-
            The byte size each part (except the last) must be. Present only on
            create, and only for multipart uploads.
          example: 5242880
          type:
            - integer
            - 'null'
        multipart_upload_id:
          description: >-
            The ID of the multipart upload, passed back to `complete`. Present
            only on create, and only for multipart uploads.
          example: upload-id
          type:
            - string
            - 'null'
        multipart_upload_urls:
          items:
            $ref: '#/components/schemas/FileMultipartUrl'
            description: >-
              The presigned URL for each part. Present only on create, and only
              for multipart uploads.
          type:
            - array
            - 'null'
        object:
          description: The type of this object, always `file`.
          example: file
          type: string
        removed_by_moderation:
          description: >-
            Whether moderation removed the file. When true, `url` serves a
            replacement image; filename, size, and content type still describe
            the original file.
          example: false
          type: boolean
        size:
          description: The file size in bytes. `null` until the upload has finished.
          example: 9670
          type:
            - integer
            - 'null'
        upload_headers:
          description: Headers to send with the upload PUT. Present only on create.
          example: {}
          type: object
        upload_status:
          description: Where the file is in its upload lifecycle.
          enum:
            - pending
            - processing
            - ready
            - failed
          example: pending
          type: string
        upload_url:
          description: >-
            Presigned URL to PUT the file's bytes to. Present only on create,
            and only for single-part uploads.
          example: >-
            https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf
          type:
            - string
            - 'null'
        url:
          description: >-
            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; a replacement image URL when removed by moderation.
          example: >-
            https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
          type:
            - string
            - 'null'
        visibility:
          description: >-
            `public` files are served via an unsigned CDN URL; `private` files
            via a signed, expiring URL.
          enum:
            - public
            - private
          example: private
          type: string
        waveform_url:
          description: Audio waveform URL. Null when unavailable or removed by moderation.
          example: null
          type:
            - string
            - 'null'
        width:
          description: >-
            Image or video width in pixels. Null when unavailable or removed by
            moderation.
          example: null
          type:
            - integer
            - 'null'
      required:
        - object
        - id
        - filename
        - content_type
        - size
        - url
        - removed_by_moderation
        - upload_status
        - visibility
        - created_at
        - width
        - height
        - blurhash
        - duration_seconds
        - waveform_url
      type: object
    FileMultipartUrl:
      properties:
        part_number:
          description: The 1-based index of this part within the multipart upload.
          example: 1
          type: integer
        url:
          description: The presigned URL to PUT this part's bytes to.
          example: >-
            https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf
          type: string
      required:
        - part_number
        - url
      type: object
    V1ErrorResponse:
      properties:
        error:
          properties:
            code:
              description: >-
                Machine-readable reason for this specific refusal, such as
                `bank_warning_not_acknowledged`. Only present when the error
                carries one.
              type: string
            message:
              description: Human-readable error message.
              example: account_id is required
              type: string
            type:
              description: Machine-readable error code.
              example: bad_request
              type: string
          required:
            - type
            - message
          type: object
      required:
        - error
      type: object
  responses:
    InvalidParameters:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
      description: Invalid Parameters
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
      description: Unauthorized
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
      description: Forbidden
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
      description: Resource not found
  securitySchemes:
    accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth:
      bearerFormat: auth-scheme
      description: >-
        An Account API key, an account access token, an account-scoped user
        token, or a user OAuth token. Prepend the key or token with `Bearer`,
        for example `Bearer ***************************`. See [Auth & API
        keys](/developer/guides/auth-scoping) for how to get each one.
      scheme: bearer
      type: http

````

## Related topics

- [Verification](https://docs.whop.com/api-reference/verifications/verification.md)
- [Create Verification](https://docs.whop.com/api-reference/verifications/create-verification.md)
- [List Verifications](https://docs.whop.com/api-reference/verifications/list-verifications.md)
