Skip to main content
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.

Endpoints

Attributes

string
required
Dispute ID, prefixed dspt_.
string | null
required
The account the dispute was filed against, prefixed biz_.
number
required
The disputed amount, in whole units of currency.
object | null
required
The customer who filed the dispute.

Properties

string | null
required
The customer’s email address. Requires the member:email:read scope; null without it.
string | null
required
The customer’s member row on the account, prefixed mem_.
string | null
required
The customer’s display name.
string | null
required
The customer’s user ID, prefixed user_. null for a guest checkout.
string | null
required
The customer’s Whop username.
string
required
When the dispute was opened, as an ISO 8601 timestamp.
string
required
Three-letter ISO currency code of the disputed amount.
object
required
The evidence packet sent to the processor to contest the dispute.

Properties

string | null
required
Log of the customer’s access to the product, such as sign-in or download activity.
string | null
required
The billing address the customer provided at checkout.
object | null
required
The cancellation policy document. Falls back to Whop’s platform policy when the seller has not uploaded their own.

Properties

string | null
required
The attachment’s ID. null for a Whop-hosted policy, which is not an uploaded file.
string | null
required
The uploaded file’s MIME type.
string | null
required
The uploaded file’s name.
boolean
required
Whether this is Whop’s own hosted policy, standing in because the seller uploaded none. Sending it back on a PATCH changes nothing.
string | null
required
A URL to download the attachment.
string | null
required
How the cancellation policy was shown to the customer before purchase.
object | null
required
Correspondence with the customer, or proof they used the product.

Properties

string | null
required
The attachment’s ID. null for a Whop-hosted policy, which is not an uploaded file.
string | null
required
The uploaded file’s MIME type.
string | null
required
The uploaded file’s name.
boolean
required
Whether this is Whop’s own hosted policy, standing in because the seller uploaded none. Sending it back on a PATCH changes nothing.
string | null
required
A URL to download the attachment.
string | null
required
The email address the customer used at checkout.
string | null
required
The customer’s name as given at checkout.
object[]
required
Additional evidence documents uploaded through POST /disputes/\{id}/upload_evidence, beyond the four fixed slots. Each rides into the submitted packet under its document_type.

Properties

string
required
The attachment’s ID, prefixed file_.
string | null
required
The uploaded file’s MIME type. Uploads are restricted to the types the processor accepts.Available options: application/pdf, application/json, image/jpeg, image/png, image/webp
string
required
What kind of evidence the document is.Available options: return_policy, shipping_policy, physical_fulfillment, customer_order_history, product_image, prior_transactions, customer_session, digital_fulfillment, subscription
string | null
required
The uploaded file’s name.
string | null
required
A URL to download the document.
string | null
required
Any additional context for the processor reviewing the dispute.
string | null
required
What the customer purchased, in the seller’s own words.
object | null
required
The refund policy document. Falls back to Whop’s platform policy when the seller has not uploaded their own.

Properties

string | null
required
The attachment’s ID. null for a Whop-hosted policy, which is not an uploaded file.
string | null
required
The uploaded file’s MIME type.
string | null
required
The uploaded file’s name.
boolean
required
Whether this is Whop’s own hosted policy, standing in because the seller uploaded none. Sending it back on a PATCH changes nothing.
string | null
required
A URL to download the attachment.
string | null
required
How the refund policy was shown to the customer before purchase.
string | null
required
Why a refund was refused, when one was requested and denied.
string | null
required
When the product or service was delivered.
object | null
required
Supporting evidence that does not fit the other categories.

Properties

string | null
required
The attachment’s ID. null for a Whop-hosted policy, which is not an uploaded file.
string | null
required
The uploaded file’s MIME type.
string | null
required
The uploaded file’s name.
boolean
required
Whether this is Whop’s own hosted policy, standing in because the seller uploaded none. Sending it back on a PATCH changes nothing.
string | null
required
A URL to download the attachment.
string | null
required
The deadline to submit evidence, as an ISO 8601 timestamp. Whop reserves the last 24 hours before the processor’s own cutoff to forward the submission.
boolean
required
Whether evidence can still be changed and submitted.
string | null
required
Why evidence can no longer be edited. null while evidence_editable is true.Available options: submitted, response_window_closed, not_contestable
string | null
required
When the evidence was submitted to the processor, as an ISO 8601 timestamp.
object | null
required
The AI-generated representment document filed with the processor on the seller’s behalf, once ready. Null until generation completes, and for disputes not using Whop Dispute Fighter.

Properties

string | null
required
The attachment’s ID. null for a Whop-hosted policy, which is not an uploaded file.
string | null
required
The uploaded file’s MIME type.
string | null
required
The uploaded file’s name.
boolean
required
Whether this is Whop’s own hosted policy, standing in because the seller uploaded none. Sending it back on a PATCH changes nothing.
string | null
required
A URL to download the attachment.
boolean
required
Whether this is a pre-dispute inquiry rather than a formal chargeback. Inquiries follow the same lifecycle but move no funds unless one escalates.
object[]
required
What the card issuer said when filing the dispute. Only populated when the issuer provides them, and listed in the order they were received.

Properties

string | null
required
When the comment was received, as an ISO 8601 timestamp.
string
required
What the issuer wrote, as received.
object | null
required
The payment being disputed.

Properties

string
required
Payment ID, prefixed pay_.
number | null
required
What the customer was charged, in whole units of the payment’s currency.
string | null
required
Card brand, when the customer paid by card.
string | null
required
Last four digits of the card, when the customer paid by card.
string
required
When the payment was made, as an ISO 8601 timestamp.
string | null
required
Three-letter ISO currency code of the payment. Can differ from the dispute’s currency when the processor settles in another currency.
object | null
required
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.

Properties

object | null
required
Card payments only: the card’s network and last four.

Properties

string
required
The network identifier (visa, amex, …), matching card.networks entries and saved card payment methods.
string | null
required
The card’s last four digits, when captured.
string
required
Buyer-facing instrument name — “Visa •••• 4242” when the card surfaced, else the method’s own name (“Klarna”).
object
required
The standard icon set: square and card shapes, each in light and dark colorways.

Properties

object
required
The credit-card-proportioned tile (48x30).

Properties

object
required
The colorway for dark surfaces.

Properties

string
required
Raster fallback at the shape’s native size.
string
required
Raster fallback at double density.
string
required
Raster fallback at quadruple density.
string
required
The vector file. Prefer this everywhere SVG renders.
object
required
The colorway for light surfaces.

Properties

string
required
Raster fallback at the shape’s native size.
string
required
Raster fallback at double density.
string
required
Raster fallback at quadruple density.
string
required
The vector file. Prefer this everywhere SVG renders.
object
required
The square tile (32x32).

Properties

object
required
The colorway for dark surfaces.

Properties

string
required
Raster fallback at the shape’s native size.
string
required
Raster fallback at double density.
string
required
Raster fallback at quadruple density.
string
required
The vector file. Prefer this everywhere SVG renders.
object
required
The colorway for light surfaces.

Properties

string
required
Raster fallback at the shape’s native size.
string
required
Raster fallback at double density.
string
required
Raster fallback at quadruple density.
string
required
The vector file. Prefer this everywhere SVG renders.
number | null
required
Installment methods only: how many payments the charge splits into. Data, not copy — compose and translate the label client-side.
string
required
The payment method type identifier, e.g. card, klarna, apple_pay.
string | null
required
How the customer paid, such as card or paypal.
string | null
required
The processor that handled the payment, such as stripe.
string | null
required
The plan the disputed payment was made on, prefixed plan_.
string | null
required
The product the disputed payment was for, prefixed prod_.
boolean
required
Whether Visa Rapid Dispute Resolution settled this automatically. These refund the customer without an evidence round.
string
required
Why the customer says they are disputing, normalized across card networks. other covers a code Whop has not categorized yet — read reason_code for the raw value.Available options: fraudulent, unrecognized, declined_authorization, product_not_received, product_unacceptable, subscription_canceled, credit_not_processed, duplicate, processing_error, documentation_request, bank_cannot_process, other
string | null
required
The raw card-network or processor reason code, such as 10.4.
string
required
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 closed ended without a ruling. A dispute past its evidence_due_at reports under_review — the window to respond has closed.Available options: needs_response, under_review, won, lost, closed
string
required
When the dispute was last changed, as an ISO 8601 timestamp.
Dispute