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

# Accept Dispute

> Accepts a chargeback, conceding it to the customer instead of contesting it. The payment processor closes the dispute as `lost`. This is final — the dispute cannot be contested afterwards. Only a dispute whose `acceptable` is true can be accepted.



## OpenAPI

````yaml /openapi/api-v1-native.json post /disputes/{id}/accept
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-10-15'
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 connected
      account managed by your platform, and retrieve the account associated with
      the current API key.


      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 connected accounts.
    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 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: >
      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: >
      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.
    name: Economic Intelligence
    x-whop-summary: What an account should do next to grow, generated from its own data.
  - 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: >
      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 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/beta/verifications/update-verification).
    name: Verifications
    x-whop-summary: Legal identity required before payouts and card issuing.
  - 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: >
      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: >
      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/beta/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: >
      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 Refund is one full or partial reversal of a payment, issued with [Refund
      Payment](/api-reference/beta/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 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 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/beta/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 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/beta/payment-rules/replace-a-payment-rule) to
      change one, and [List
      fields](/api-reference/beta/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: >
      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 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 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 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: >
      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: >
      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 connected accounts 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 connected account.


      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 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: >
      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 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` places one order from the trading balance, bridging the USDT0 it
      needs from the wallet first when the balance is short. 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.
      Orders trade Hyperliquid perpetuals and spot pairs priced in USDC.


      Use the Trades API to 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 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 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 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 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 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 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 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 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 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: >
      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 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 Person is an identity-linked profile of a visitor or customer of an
      account, assembled from every [event](/api-reference/beta/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/beta/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/beta/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 Ad is the individual creative unit delivered by an [ad
      group](/api-reference/beta/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: >
      A conversion value rule changes the conversion values Whop sends to ad
      networks while Whop keeps recording the accurate values. Each rule belongs
      to an account and applies one value adjustment to a set of targets (the
      account, an ad campaign, an ad group, or an ad) and events. Every selected
      event applies to every selected target, and the most specific rule
      applies.


      Use the Ad Conversion Value Rules API to create, edit, pause, resume, and
      delete rules, and to find the rules that cover a campaign, ad group, or
      ad. Each write succeeds or fails as one transaction, and each conversion
      send uses the rules saved at that moment.
    name: Ad Conversion Value Rules
    x-whop-summary: Modify how conversion events are delivered to ad networks.
  - 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, 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: >
      An Ad Campaign is the top-level container for paid ads on an ad network.
      It sets the platform, objective, and budget strategy shared by its [ad
      groups](/api-reference/beta/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/beta/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: Platform, objective, and budget for a set of ads.
  - description: >
      An Ad Group sits inside an [ad
      campaign](/api-reference/beta/ad-campaigns/ad-campaign) and controls
      delivery for [ads](/api-reference/beta/ads/ad). It sets the audience,
      placements, schedule, budget, and optimization goal 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. It can also
      search the ad platform's targeting taxonomy for options to target and
      estimate how many people a draft targeting spec can reach.
    name: Ad Groups
    x-whop-summary: Audience, placements, and schedule within a campaign.
  - description: >
      An Audience is a reusable group of people to include or exclude when
      targeting ads. Build custom audiences from customer lists, Whop People
      data, or social engagement, 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. Engagement sources on Meta include videos, lead forms,
      Instagram profiles, and Facebook pages, and their membership updates on
      Meta; Whop People audiences can refresh automatically or keep a snapshot.
    name: Audiences
    x-whop-summary: Reusable targeting lists for ad groups.
  - 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 External Account represents a profile on another platform connected to
      a Whop account or user, such as a Facebook page, Instagram account, or
      TikTok account. Connecting an external account lets Whop run
      [ads](/api-reference/beta/ads/ad) under that profile's identity and
      promote its existing posts. External account IDs are prefixed `sacc_`.


      Use the External Accounts API to list connected accounts, create a
      Whop-managed Facebook page or TikTok account, start an OAuth connection,
      disconnect an external account, list a connected profile's posts or a
      Facebook page's lead forms, and manage the creators an Instagram account
      runs partnership ads with.
    name: External Accounts
    x-whop-summary: Profiles on other platforms connected 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: >
      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: >
      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 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 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: >
      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 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 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: >
      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:
  /disputes/{id}/accept:
    parameters:
      - description: The dispute ID (`dspt_` tag).
        in: path
        name: id
        required: true
        schema:
          type: string
    post:
      tags:
        - Disputes
      summary: Accept Dispute
      description: >-
        Accepts a chargeback, conceding it to the customer instead of contesting
        it. The payment processor closes the dispute as `lost`. This is final —
        the dispute cannot be contested afterwards. Only a dispute whose
        `acceptable` is true can be accepted.
      operationId: acceptDispute
      parameters:
        - $ref: '#/components/parameters/ApiVersionDate'
        - $ref: '#/components/parameters/IdempotencyKey'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dispute'
          description: dispute accepted
        '400':
          $ref: '#/components/responses/InvalidParameters'
          description: the dispute can no longer be accepted
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: missing or invalid authentication
        '403':
          $ref: '#/components/responses/Forbidden'
          description: credential lacks the required dispute scope
        '404':
          $ref: '#/components/responses/NotFound'
          description: no dispute with that ID
        '409':
          $ref: '#/components/responses/Conflict'
      security:
        - bearerAuth:
            - payment:dispute
components:
  parameters:
    ApiVersionDate:
      description: Pins the request to a dated API version.
      in: header
      name: Api-Version-Date
      required: false
      schema:
        example: '2026-10-15'
        type: string
    IdempotencyKey:
      description: >-
        A unique key that makes this request safe to retry. See [Idempotent
        requests](https://docs.whop.com/developer/api/idempotency).
      in: header
      name: Idempotency-Key
      required: false
      schema:
        example: d9105228-4a08-46b1-8b91-42fed586d383
        maxLength: 255
        type: string
  schemas:
    Dispute:
      properties:
        acceptable:
          description: >-
            Whether the dispute can be conceded to the customer with `POST
            /disputes/{id}/accept`. True only for a chargeback still awaiting a
            response, before `evidence_due_at`, whose payment processor supports
            accepting disputes. Inquiries are never acceptable.
          example: false
          type: boolean
        account_id:
          description: The account the dispute was filed against, prefixed `biz_`.
          example: biz_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        amount:
          description: The disputed amount, in whole units of `currency`.
          example: 150
          type: number
        buyer:
          $ref: '#/components/schemas/DisputeBuyer'
          description: The customer who filed the dispute.
        created_at:
          description: When the dispute was opened, as an ISO 8601 timestamp.
          example: '2026-01-01T12:00:00.000Z'
          type: string
        currency:
          description: Three-letter ISO currency code of the disputed amount.
          example: usd
          type: string
        evidence:
          $ref: '#/components/schemas/DisputeEvidence'
          description: The evidence packet sent to the processor to contest the dispute.
        evidence_due_at:
          description: >-
            The deadline to submit evidence, as an ISO 8601 timestamp. `null`
            when the network already auto-resolved the dispute (Visa RDR) with
            no evidence round, or when the processor hasn't reported a deadline
            for this dispute.
          example: '2026-01-01T12:00:00.000Z'
          type:
            - string
            - 'null'
        evidence_editable:
          description: Whether `evidence` can still be changed and submitted.
          example: false
          type: boolean
        evidence_locked_reason:
          description: >-
            Why evidence can no longer be edited. `null` while
            `evidence_editable` is true.
          enum:
            - submitted
            - response_window_closed
            - not_contestable
            - null
          example: submitted
          type:
            - string
            - 'null'
        evidence_submitted_at:
          description: >-
            When the evidence was submitted to the processor, as an ISO 8601
            timestamp.
          example: '2026-01-01T12:00:00.000Z'
          type:
            - string
            - 'null'
        fee:
          description: >-
            The dispute fee charged to the seller, in the currency it was
            collected in. `null` when no fee was charged, such as for an inquiry
            or a Visa RDR resolution.
          oneOf:
            - $ref: '#/components/schemas/Money'
            - type: 'null'
        id:
          description: Dispute ID, prefixed `dspt_`.
          example: dspt_xxxxxxxxxxxxxx
          type: string
        inquiry:
          description: >-
            Whether this is a pre-dispute inquiry rather than a formal
            chargeback. Inquiries follow the same lifecycle but move no funds
            unless one escalates.
          example: false
          type: boolean
        issuer_comments:
          items:
            $ref: '#/components/schemas/DisputeIssuerComment'
            description: >-
              What the card issuer said when filing the dispute. Only populated
              when the issuer provides them, and listed in the order they were
              received.
          type: array
        line_items:
          items:
            $ref: '#/components/schemas/ReceiptLineItem'
            description: >-
              Everything the disputed payment charged for, in purchase order.
              `product_id` and `plan_id` name the first of these; a cart's later
              items appear only here. A payment made before items were recorded
              lists the single item its variant implies. Empty when the payment
              is not linked to a variant.
          type: array
        payment:
          $ref: '#/components/schemas/DisputePayment'
          description: The payment being disputed.
        plan_id:
          description: The variant the disputed payment was made on, prefixed `plan_`.
          example: plan_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        product_id:
          description: The product the disputed payment was for, prefixed `prod_`.
          example: prod_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        reason:
          description: >-
            Why the customer says they are disputing, normalized across
            processors and card networks. `other` covers a processor reason Whop
            has not categorized yet.
          enum:
            - fraudulent
            - unrecognized
            - declined_authorization
            - product_not_received
            - product_unacceptable
            - subscription_canceled
            - credit_not_processed
            - duplicate
            - processing_error
            - documentation_request
            - bank_cannot_process
            - other
          example: other
          type: string
        reason_code:
          description: >-
            The raw card-network or processor reason code, such as `10.4`.
            Informational only — `reason` is not derived from it.
          example: '13.1'
          type:
            - string
            - 'null'
        status:
          description: >-
            Where the dispute stands. `needs_response` is awaiting evidence,
            `under_review` is with the processor, `won` returned the funds to
            the seller, `lost` returned them to the customer, and `prevented`
            means the customer was refunded before any ruling, so it settles
            like `lost`. The `warning_` statuses are the same stages for an
            inquiry, which moves no funds. A dispute past its `evidence_due_at`
            reports `under_review` — the window to respond has closed.
          enum:
            - needs_response
            - warning_needs_response
            - under_review
            - warning_under_review
            - won
            - lost
            - prevented
            - warning_closed
          example: under_review
          type: string
        updated_at:
          description: When the dispute was last changed, as an ISO 8601 timestamp.
          example: '2026-01-01T12:00:00.000Z'
          type: string
      required:
        - id
        - status
        - inquiry
        - amount
        - currency
        - fee
        - reason
        - reason_code
        - issuer_comments
        - account_id
        - product_id
        - plan_id
        - line_items
        - evidence_editable
        - evidence_locked_reason
        - evidence_due_at
        - evidence_submitted_at
        - acceptable
        - buyer
        - payment
        - evidence
        - created_at
        - updated_at
      type: object
    DisputeBuyer:
      properties:
        email:
          description: >-
            The customer's email address. Requires the `member:email:read`
            scope; `null` without it.
          example: marcus@shinetime.example
          type:
            - string
            - 'null'
        member_id:
          description: The customer's member row on the account, prefixed `mem_`.
          example: mber_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        name:
          description: The customer's display name.
          example: Dana Whitfield
          type:
            - string
            - 'null'
        user_id:
          description: >-
            The customer's user ID, prefixed `user_`. `null` for a guest
            checkout.
          example: user_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        username:
          description: The customer's Whop username.
          example: danawhitfield
          type:
            - string
            - 'null'
      required:
        - user_id
        - member_id
        - name
        - username
        - email
      type: object
    DisputeEvidence:
      properties:
        access_activity_log:
          description: >-
            Log of the customer's access to the product, such as sign-in or
            download activity.
          example: >-
            Vehicle checked in 2026-01-04 09:02, released 2026-01-05 16:40.
            Signed release on file.
          type:
            - string
            - 'null'
        billing_address:
          description: The billing address the customer provided at checkout.
          example: 4180 Burnet Rd, Austin, TX 78756, US
          type:
            - string
            - 'null'
        cancellation_policy_attachment:
          description: >-
            The cancellation policy document. Defaults to the account's
            cancellation policy, then its terms of service, then its return
            policy, then Whop's platform policy.
          oneOf:
            - $ref: '#/components/schemas/DisputeAttachment'
            - type: 'null'
        cancellation_policy_disclosure:
          description: >-
            How the cancellation policy was shown to the customer before
            purchase.
          example: Shown at checkout and again in the booking confirmation email.
          type:
            - string
            - 'null'
        customer_communication_attachment:
          description: Correspondence with the customer, or proof they used the product.
          oneOf:
            - $ref: '#/components/schemas/DisputeAttachment'
            - type: 'null'
        customer_email_address:
          description: The email address the customer used at checkout.
          example: marcus@shinetime.example
          type:
            - string
            - 'null'
        customer_name:
          description: The customer's name as given at checkout.
          example: Dana Whitfield
          type:
            - string
            - 'null'
        documents:
          items:
            $ref: '#/components/schemas/DisputeEvidenceDocument'
            description: >-
              Additional evidence documents, beyond the four fixed slots — set
              via `evidence.documents` on `PATCH /disputes/{id}`. Each rides
              into the submitted packet under its `document_type`.
          type: array
        notes:
          description: Any additional context for the processor reviewing the dispute.
          example: >-
            Two-day ceramic coating completed and collected. Before and after
            photos attached.
          type:
            - string
            - 'null'
        product_description:
          description: What the customer purchased, in the seller's own words.
          example: Two-stage paint correction with a three-year ceramic coating.
          type:
            - string
            - 'null'
        refund_policy_attachment:
          description: >-
            The refund policy document. Defaults to the account's return policy,
            then its terms of service, then Whop's platform policy.
          oneOf:
            - $ref: '#/components/schemas/DisputeAttachment'
            - type: 'null'
        refund_policy_disclosure:
          description: How the refund policy was shown to the customer before purchase.
          example: Linked from the booking page and accepted at checkout.
          type:
            - string
            - 'null'
        refund_refusal_explanation:
          description: Why a refund was refused, when one was requested and denied.
          example: >-
            Work was completed and the vehicle collected, so the deposit is
            non-refundable.
          type:
            - string
            - 'null'
        service_date:
          description: When the product or service was delivered.
          example: '2026-01-01'
          type:
            - string
            - 'null'
        uncategorized_attachment:
          description: Supporting evidence that does not fit the other categories.
          oneOf:
            - $ref: '#/components/schemas/DisputeAttachment'
            - type: 'null'
      required:
        - access_activity_log
        - billing_address
        - cancellation_policy_disclosure
        - customer_email_address
        - customer_name
        - notes
        - product_description
        - refund_policy_disclosure
        - refund_refusal_explanation
        - service_date
        - cancellation_policy_attachment
        - customer_communication_attachment
        - refund_policy_attachment
        - uncategorized_attachment
        - documents
      type: object
    Money:
      properties:
        amount:
          description: >-
            The amount in major units, as an exact decimal string — `"10.00"` is
            ten dollars. A string so no float rounds it in transit.
          example: '-1234.56'
          type: string
        currency:
          description: Three-letter ISO 4217 currency code, lowercase.
          example: usd
          type: string
        decimals:
          description: >-
            How many decimal places the amount CARRIES — the precision the
            charge itself runs at.
          example: 2
          type: integer
        display_decimals:
          description: >-
            How many decimal places to SHOW. Usually equal to `decimals`, and
            deliberately not always: COP is charged in centavos but written in
            whole pesos, so it is `2` and `0`. Format the number in your own
            locale using this.
          example: 2
          type: integer
      required:
        - currency
        - amount
        - decimals
        - display_decimals
      type: object
    DisputeIssuerComment:
      properties:
        received_at:
          description: When the comment was received, as an ISO 8601 timestamp.
          example: '2026-01-01T12:00:00.000Z'
          type:
            - string
            - 'null'
        text:
          description: What the issuer wrote, as received.
          example: >-
            Note: Cardholder states the ceramic coating appointment never took
            place

            Cancellation method: By phone
          type: string
      required:
        - received_at
        - text
      type: object
    ReceiptLineItem:
      properties:
        id:
          description: >-
            Line item ID, prefixed `li_`. Null when the payment predates item
            snapshots and the item is read from the payment's variant.
          example: li_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        label:
          description: >-
            The item's name as shown at checkout — the product title, else the
            variant title.
          example: Ceramic Coating Package
          type:
            - string
            - 'null'
        plan_id:
          description: >-
            The variant bought, prefixed `plan_`. Null when the variant has
            since been deleted.
          example: plan_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        plan_title:
          description: >-
            The variant's current title, or `null` when the variant has been
            deleted or has no title.
          example: Ceramic Coating — Full Vehicle
          type:
            - string
            - 'null'
        product_id:
          description: >-
            The product the variant belongs to, prefixed `prod_`. On a payment
            that predates item snapshots this falls back to the variant's
            product, so it can be set where the parent's own `product_id` is
            null. Null for a variant with no product.
          example: prod_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        product_title:
          description: The product's current title, or `null` when the item has no product.
          example: Ceramic Coating Package
          type:
            - string
            - 'null'
        quantity:
          description: How many units were bought.
          example: 1
          type: number
        sku:
          description: >-
            The variant's stock keeping unit, free text set by the seller (e.g.
            `TSHIRT-LARGE-BLUE`). Accounts with billing-reason SKU suffixes
            enabled receive it stamped with why the charge happened: `-S` for a
            first subscription charge, `-R` for a renewal, `-C` for a one-time
            purchase, `-U` when the payment's own metadata carries `upsell:
            true`, `-F` when nothing was charged. Other billing reasons carry
            the bare SKU. `null` when the variant has no SKU or has been
            deleted.
          example: null
          type:
            - string
            - 'null'
        subtotal:
          description: >-
            The recorded amount for this item's full quantity, before discounts,
            tax, and fees, in its purchase currency. Returns `null` when no item
            amount was recorded.
          oneOf:
            - $ref: '#/components/schemas/Money'
            - type: 'null'
      required:
        - id
        - plan_id
        - plan_title
        - product_id
        - product_title
        - label
        - quantity
        - subtotal
        - sku
      type: object
    DisputePayment:
      properties:
        amount:
          description: >-
            What the customer was charged, in whole units of the payment's
            currency.
          example: 249
          type:
            - number
            - 'null'
        card_brand:
          description: Card brand, when the customer paid by card.
          example: visa
          type:
            - string
            - 'null'
        card_last4:
          description: Last four digits of the card, when the customer paid by card.
          example: '4242'
          type:
            - string
            - 'null'
        created_at:
          description: When the payment was made, as an ISO 8601 timestamp.
          example: '2026-01-01T12:00:00.000Z'
          type: string
        currency:
          description: >-
            Three-letter ISO currency code of the payment. Can differ from the
            dispute's currency when the processor settles in another currency.
          example: usd
          type:
            - string
            - 'null'
        id:
          description: Payment ID, prefixed `pay_`.
          example: pay_xxxxxxxxxxxxxx
          type: string
        payment_instrument:
          description: >-
            The instrument this payment was made with, shaped for display: the
            method type, a buyer-facing name, the standard icon set, and the
            card facts when it was a card. Null when the payment names no
            method.
          oneOf:
            - $ref: '#/components/schemas/PaymentInstrument'
            - type: 'null'
        payment_method_type:
          description: How the customer paid, such as `card` or `paypal`.
          example: card
          type:
            - string
            - 'null'
        payment_processor:
          deprecated: true
          description: |-
            Deprecated: no longer populated. Always `null`.
            DEPRECATED: No longer populated. Always null.
          example: null
          type:
            - string
            - 'null'
      required:
        - id
        - amount
        - currency
        - payment_method_type
        - payment_processor
        - card_brand
        - card_last4
        - payment_instrument
        - created_at
      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
    DisputeAttachment:
      properties:
        content_type:
          description: The uploaded file's MIME type.
          example: image/png
          type:
            - string
            - 'null'
        filename:
          description: The uploaded file's name.
          example: booking-confirmation-email.png
          type:
            - string
            - 'null'
        id:
          description: >-
            The attachment's ID. `null` for a Whop-hosted policy, which is not
            an uploaded file.
          example: file_xxxxxxxxxxxxxx
          type:
            - string
            - 'null'
        platform:
          description: >-
            Whether this is Whop's own hosted policy, standing in because the
            seller uploaded none. Sending it back on a PATCH changes nothing.
          example: false
          type: boolean
        url:
          description: A URL to download the attachment.
          example: >-
            https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
          type:
            - string
            - 'null'
      required:
        - id
        - filename
        - content_type
        - url
        - platform
      type: object
    DisputeEvidenceDocument:
      properties:
        blurhash:
          description: >-
            BlurHash placeholder for an image or video. Null when unavailable or
            removed by moderation.
          example: LA6bDXT$E3b:R6i+RibEIWbp%ej1
          type:
            - string
            - 'null'
        content_type:
          description: >-
            The uploaded file's MIME type. Uploads are restricted to the types
            the processor accepts, and rejected without one — never null.
          enum:
            - application/pdf
            - application/json
            - image/jpeg
            - image/png
            - image/webp
            - null
          example: image/png
          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
        document_type:
          description: >-
            What this document proves, in the processor's own evidence
            vocabulary. `return_policy`, `cancellation_policy`, and
            `terms_of_service` are the seller's policy documents — uploading one
            overrides the account's copy for this dispute (`return_policy`,
            `cancellation_policy`, and `customer_communication` also override
            the matching fixed evidence slot). `shipping_policy` is the seller's
            shipping terms. `customer_communication` is correspondence with the
            buyer — a support thread or chat log. `product_image` is a photo of
            the product or service the buyer received. `physical_fulfillment` is
            proof a physical order shipped and arrived; `digital_fulfillment` is
            proof the buyer accessed a digital product. `customer_order_history`
            is the buyer's past orders with this seller; `prior_transactions` is
            their broader payment history across the platform, for a fraud
            defense. `customer_session` is checkout forensics — IP, device
            fingerprint, AVS/CVV, 3D Secure result. `subscription` is membership
            lifecycle evidence — renewals, cancellation, reminders sent.
          enum:
            - return_policy
            - shipping_policy
            - cancellation_policy
            - terms_of_service
            - physical_fulfillment
            - customer_order_history
            - product_image
            - prior_transactions
            - customer_session
            - digital_fulfillment
            - subscription
            - customer_communication
          example: customer_order_history
          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: customer-order-history.png
          type:
            - string
            - 'null'
        height:
          description: >-
            Image or video height in pixels. Null when unavailable or removed by
            moderation.
          example: 100
          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.
          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.
          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: 1024
          type:
            - integer
            - 'null'
        upload_headers:
          description: Headers to send with the upload PUT. Present only on create.
          type: object
        upload_status:
          description: Where the file is in its upload lifecycle.
          enum:
            - pending
            - processing
            - ready
            - failed
          example: ready
          type: string
        upload_url:
          description: >-
            Presigned URL to PUT the file's bytes to. Present only on create,
            and only for single-part uploads.
          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/image/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: public
          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: 100
          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
        - document_type
      type: object
    PaymentInstrument:
      properties:
        card:
          description: >-
            Card payments only: the card's network, last four, and issuer
            identification number.
          oneOf:
            - $ref: '#/components/schemas/PaymentInstrumentCard'
            - type: 'null'
        display_name:
          description: >-
            Buyer-facing instrument name — "Visa •••• 4242" when the card
            surfaced, else the method's own name ("Klarna").
          example: Visa •••• 4242
          type: string
        icons:
          $ref: '#/components/schemas/PaymentMethodIcons'
          description: >-
            The standard icon set: square and card shapes, each in light and
            dark colorways.
        installment_count:
          description: >-
            Installment methods only: how many payments the charge splits into.
            Data, not copy — compose and translate the label client-side.
          example: null
          type:
            - number
            - 'null'
        payment_method_type:
          description: >-
            The payment method type identifier, e.g. `card`, `klarna`,
            `apple_pay`.
          example: card
          type: string
      required:
        - payment_method_type
        - display_name
        - icons
        - card
        - installment_count
      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
    PaymentInstrumentCard:
      properties:
        brand:
          description: >-
            The network identifier (`visa`, `amex`, …), matching `card.networks`
            entries and saved card payment methods. Null when the vault did not
            record the network.
          example: visa
          type:
            - string
            - 'null'
        exp_month:
          description: >-
            The card's expiry month, 1 to 12. Null when the vault did not record
            it.
          example: 10
          type:
            - number
            - 'null'
        exp_year:
          description: >-
            The card's four-digit expiry year. Null when the vault did not
            record it.
          example: 2031
          type:
            - number
            - 'null'
        issuer_identification_number:
          description: >-
            The issuer identification number, also called the BIN: the card's
            leading six or eight digits, which identify the issuing bank. Null
            when the processor did not report it.
          example: '41111111'
          type:
            - string
            - 'null'
        last4:
          description: The card's last four digits, when captured.
          example: '4242'
          type:
            - string
            - 'null'
      required:
        - brand
        - last4
        - issuer_identification_number
        - exp_month
        - exp_year
      type: object
    PaymentMethodIcons:
      properties:
        card:
          $ref: '#/components/schemas/PaymentMethodIconVariants'
          description: The credit-card-proportioned tile (48x30).
        square:
          $ref: '#/components/schemas/PaymentMethodIconVariants'
          description: The square tile (32x32).
      required:
        - square
        - card
      type: object
    PaymentMethodIconVariants:
      properties:
        dark:
          $ref: '#/components/schemas/PaymentMethodIconFiles'
          description: The colorway for dark surfaces.
        light:
          $ref: '#/components/schemas/PaymentMethodIconFiles'
          description: The colorway for light surfaces.
      required:
        - light
        - dark
      type: object
    PaymentMethodIconFiles:
      properties:
        png_1x:
          description: Raster fallback at the shape's native size.
          example: https://content.whop.com/payment_methods/visa/icons/card_dark_30.png
          type: string
        png_2x:
          description: Raster fallback at double density.
          example: https://content.whop.com/payment_methods/visa/icons/card_dark_60.png
          type: string
        png_4x:
          description: Raster fallback at quadruple density.
          example: >-
            https://content.whop.com/payment_methods/visa/icons/card_dark_120.png
          type: string
        svg:
          description: The vector file. Prefer this everywhere SVG renders.
          example: https://content.whop.com/payment_methods/visa/icons/card_dark.svg
          type: string
      required:
        - svg
        - png_1x
        - png_2x
        - png_4x
      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
    Conflict:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
      description: Conflict
  securitySchemes:
    bearerAuth:
      bearerFormat: auth-scheme
      description: >-
        An Account API key, an App 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

- [Disputes](/api-reference/beta/disputes/dispute.md)
- [Refunds and Disputes](/developer/guides/refunds-and-disputes.md)
- [Dispute](/api-reference/disputes/dispute.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.