Skip to main content
POST
JavaScript

Authorizations

Authorization
string
header
required

An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.

Headers

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-08-13"

Idempotency-Key
string

A unique key that makes this request safe to retry. See Idempotent requests.

Maximum string length: 255
Example:

"d9105228-4a08-46b1-8b91-42fed586d383"

Path Parameters

id
string
required

The dispute ID (dspt_ tag).

Response

dispute submitted

account_id
string | null
required

The account the dispute was filed against, prefixed biz_.

Example:

"biz_xxxxxxxxxxxxxx"

amount
number
required

The disputed amount, in whole units of currency.

Example:

150

buyer
object | null
required

The customer who filed the dispute.

created_at
string
required

When the dispute was opened, as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"

currency
string
required

Three-letter ISO currency code of the disputed amount.

Example:

"usd"

evidence
object
required

The evidence packet sent to the processor to contest the dispute.

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

Example:

"2026-01-01T12:00:00.000Z"

evidence_editable
boolean
required

Whether evidence can still be changed and submitted.

Example:

false

evidence_locked_reason
enum<string> | null
required

Why evidence can no longer be edited. null while evidence_editable is true.

Available options:
submitted,
response_window_closed,
not_contestable,
null
Example:

"submitted"

evidence_submitted_at
string | null
required

When the evidence was submitted to the processor, as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"

id
string
required

Dispute ID, prefixed dspt_.

Example:

"dspt_xxxxxxxxxxxxxx"

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

Example:

false

issuer_comments
object[]
required
payment
object | null
required

The payment being disputed.

plan_id
string | null
required

The plan the disputed payment was made on, prefixed plan_.

Example:

"plan_xxxxxxxxxxxxxx"

product_id
string | null
required

The product the disputed payment was for, prefixed prod_.

Example:

"prod_xxxxxxxxxxxxxx"

rapid_dispute_resolution
boolean
required

Whether Visa Rapid Dispute Resolution settled this automatically. These refund the customer without an evidence round.

Example:

false

reason
enum<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
Example:

"other"

reason_code
string | null
required

The raw card-network or processor reason code, such as 10.4.

Example:

"13.1"

status
enum<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.

Available options:
needs_response,
under_review,
won,
lost,
closed
Example:

"under_review"

updated_at
string
required

When the dispute was last changed, as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"