latestOpenAPI 3.1.02026-08-153864115.7 MB

c301132dbfd7

Disputes

Update Dispute

Edits a dispute's evidence, while it is still editable. Sending it is a separate call.

patch/disputes/{id}

Headers

Api-Version-Datestring
Example:2026-08-13

Pins the request to a dated API version.

Request body

Example request

{
  "evidence": {
    "access_activity_log": "Vehicle checked in 2026-01-04 09:02, released 2026-01-05 16:40. Signed release on file.",
    "billing_address": "4180 Burnet Rd, Austin, TX 78756, US",
    "cancellation_policy_attachment": {
      "direct_upload_id": "eyJfcmFpbHMiOnsiZGF0YSI6MSwicHVyIjoiYmxvYl9pZCJ9fQ==--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "id": "file_xxxxxxxxxxxxxx"
    },
    "cancellation_policy_disclosure": "Shown at checkout and again in the booking confirmation email.",
    "customer_communication_attachment": {
      "direct_upload_id": "eyJfcmFpbHMiOnsiZGF0YSI6MSwicHVyIjoiYmxvYl9pZCJ9fQ==--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "id": "file_xxxxxxxxxxxxxx"
    },
    "customer_email_address": "marcus@shinetime.example",
    "customer_name": "Dana Whitfield",
    "notes": "Two-day ceramic coating completed and collected. Before and after photos attached.",
    "product_description": "Two-stage paint correction with a three-year ceramic coating.",
    "refund_policy_attachment": {
      "direct_upload_id": "eyJfcmFpbHMiOnsiZGF0YSI6MSwicHVyIjoiYmxvYl9pZCJ9fQ==--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "id": "file_xxxxxxxxxxxxxx"
    },
    "refund_policy_disclosure": "Linked from the booking page and accepted at checkout.",
    "refund_refusal_explanation": "Work was completed and the vehicle collected, so the deposit is non-refundable.",
    "service_date": "2026-01-01",
    "uncategorized_attachment": {
      "direct_upload_id": "eyJfcmFpbHMiOnsiZGF0YSI6MSwicHVyIjoiYmxvYl9pZCJ9fQ==--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "id": "file_xxxxxxxxxxxxxx"
    }
  }
}

Response

dispute updated

account_idstring nullable required

The account the dispute was filed against, prefixed biz_.

amountnumber required

The disputed amount, in whole units of currency.

created_atstring required

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

currencystring required

Three-letter ISO currency code of the disputed amount.

evidence_due_atstring nullable 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.

evidence_editableboolean required

Whether evidence can still be changed and submitted.

evidence_locked_reason'submitted' | 'response_window_closed' | 'not_contestable' | 'null' nullable required

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

evidence_submitted_atstring nullable required

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

idstring required

Dispute ID, prefixed dspt_.

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

plan_idstring nullable required

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

product_idstring nullable required

The product the disputed payment was for, prefixed prod_.

rapid_dispute_resolutionboolean required

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

reason'fraudulent' | 'unrecognized' | 'declined_authorization' | 'product_not_received' | 'product_unacceptable' | 'subscription_canceled' | 'credit_not_processed' | 'duplicate' | 'processing_error' | 'documentation_request' | 'bank_cannot_process' | 'other' 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.

reason_codestring nullable required

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

status'needs_response' | 'under_review' | 'won' | 'lost' | 'closed' 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.

updated_atstring required

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

Example response

{
  "account_id": "biz_xxxxxxxxxxxxxx",
  "amount": 150,
  "buyer": {
    "email": "marcus@shinetime.example",
    "member_id": "mber_xxxxxxxxxxxxxx",
    "name": "Dana Whitfield",
    "user_id": "user_xxxxxxxxxxxxxx",
    "username": "danawhitfield"
  },
  "created_at": "2026-01-01T12:00:00.000Z",
  "currency": "usd",
  "evidence": {
    "access_activity_log": "Vehicle checked in 2026-01-04 09:02, released 2026-01-05 16:40. Signed release on file.",
    "billing_address": "4180 Burnet Rd, Austin, TX 78756, US",
    "cancellation_policy_attachment": {
      "content_type": "image/png",
      "filename": "booking-confirmation-email.png",
      "id": "file_xxxxxxxxxxxxxx",
      "url": "https://assets-2-rough.whop.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    },
    "cancellation_policy_disclosure": "Shown at checkout and again in the booking confirmation email.",
    "customer_communication_attachment": {
      "content_type": "image/png",
      "filename": "booking-confirmation-email.png",
      "id": "file_xxxxxxxxxxxxxx",
      "url": "https://assets-2-rough.whop.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    },
    "customer_email_address": "marcus@shinetime.example",
    "customer_name": "Dana Whitfield",
    "notes": "Two-day ceramic coating completed and collected. Before and after photos attached.",
    "product_description": "Two-stage paint correction with a three-year ceramic coating.",
    "refund_policy_attachment": {
      "content_type": "image/png",
      "filename": "booking-confirmation-email.png",
      "id": "file_xxxxxxxxxxxxxx",
      "url": "https://assets-2-rough.whop.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    },
    "refund_policy_disclosure": "Linked from the booking page and accepted at checkout.",
    "refund_refusal_explanation": "Work was completed and the vehicle collected, so the deposit is non-refundable.",
    "service_date": "2026-01-01",
    "uncategorized_attachment": {
      "content_type": "image/png",
      "filename": "booking-confirmation-email.png",
      "id": "file_xxxxxxxxxxxxxx",
      "url": "https://assets-2-rough.whop.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
  },
  "evidence_due_at": "2026-01-01T12:00:00.000Z",
  "evidence_locked_reason": "submitted",
  "evidence_submitted_at": "2026-01-01T12:00:00.000Z",
  "id": "dspt_xxxxxxxxxxxxxx",
  "issuer_comments": [
    {
      "received_at": "2026-01-01T12:00:00.000Z",
      "text": "Note: Cardholder states the ceramic coating appointment never took place\nCancellation method: By phone"
    }
  ],
  "payment": {
    "amount": 249,
    "card_brand": "visa",
    "card_last4": "4242",
    "created_at": "2026-01-01T12:00:00.000Z",
    "currency": "usd",
    "id": "pay_xxxxxxxxxxxxxx",
    "payment_method_type": "card",
    "payment_processor": "stripe"
  },
  "plan_id": "plan_xxxxxxxxxxxxxx",
  "product_id": "prod_xxxxxxxxxxxxxx",
  "reason": "other",
  "reason_code": "13.1",
  "status": "under_review",
  "updated_at": "2026-01-01T12:00:00.000Z"
}