---
title: "Update Dispute"
method: PATCH
path: "/disputes/{id}"
tags: ["Disputes"]
---

# Update Dispute

`PATCH /disputes/{id}`

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

## Headers

- `Api-Version-Date` string

## Request body

- object
  - `evidence` object — The evidence packet to send to the processor. Only the fields you provide are changed.
    - `access_activity_log` string, nullable — Log of the customer's access to the product, such as sign-in or download activity.
    - `billing_address` string, nullable — The billing address the customer provided at checkout.
    - `cancellation_policy_attachment` object, nullable — The cancellation policy document.
      - `direct_upload_id` string — The ID returned by a direct upload.
      - `id` string — The ID of an already-uploaded file.
    - `cancellation_policy_disclosure` string, nullable — How the cancellation policy was shown to the customer before purchase.
    - `customer_communication_attachment` object, nullable — Correspondence with the customer, or proof they used the product.
      - `direct_upload_id` string — The ID returned by a direct upload.
      - `id` string — The ID of an already-uploaded file.
    - `customer_email_address` string, nullable — The email address the customer used at checkout.
    - `customer_name` string, nullable — The customer's name as given at checkout.
    - `notes` string, nullable — Any additional context for the processor reviewing the dispute.
    - `product_description` string, nullable — What the customer purchased, in the seller's own words.
    - `refund_policy_attachment` object, nullable — The refund policy document.
      - `direct_upload_id` string — The ID returned by a direct upload.
      - `id` string — The ID of an already-uploaded file.
    - `refund_policy_disclosure` string, nullable — How the refund policy was shown to the customer before purchase.
    - `refund_refusal_explanation` string, nullable — Why a refund was refused, when one was requested and denied.
    - `service_date` string, nullable — When the product or service was delivered.
    - `uncategorized_attachment` object, nullable — Supporting evidence that does not fit the other categories.
      - `direct_upload_id` string — The ID returned by a direct upload.
      - `id` string — The ID of an already-uploaded file.

## Response `200`

dispute updated

- Dispute
  - `account_id` string, nullable, required — The account the dispute was filed against, prefixed `biz_`.
  - `amount` number, required — The disputed amount, in whole units of `currency`.
  - `buyer` DisputeBuyer, required
    - `email` string, nullable, required — The customer's email address. Requires the `member:email:read` scope; `null` without it.
    - `member_id` string, nullable, required — The customer's member row on the account, prefixed `mem_`.
    - `name` string, nullable, required — The customer's display name.
    - `user_id` string, nullable, required — The customer's user ID, prefixed `user_`. `null` for a guest checkout.
    - `username` string, nullable, required — The customer's Whop username.
  - `created_at` string, required — When the dispute was opened, as an ISO 8601 timestamp.
  - `currency` string, required — Three-letter ISO currency code of the disputed amount.
  - `evidence` DisputeEvidence, required
    - `access_activity_log` string, nullable, required — Log of the customer's access to the product, such as sign-in or download activity.
    - `billing_address` string, nullable, required — The billing address the customer provided at checkout.
    - `cancellation_policy_attachment` DisputeAttachment, required
      - `content_type` string, nullable, required — The uploaded file's MIME type.
      - `filename` string, nullable, required — The uploaded file's name.
      - `id` string, nullable, required — The attachment's ID. `null` for a Whop-hosted policy, which is not an uploaded file.
      - `platform` 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.
      - `url` string, nullable, required — A URL to download the attachment.
    - `cancellation_policy_disclosure` string, nullable, required — How the cancellation policy was shown to the customer before purchase.
    - `customer_communication_attachment` DisputeAttachment, required
      - `content_type` string, nullable, required — The uploaded file's MIME type.
      - `filename` string, nullable, required — The uploaded file's name.
      - `id` string, nullable, required — The attachment's ID. `null` for a Whop-hosted policy, which is not an uploaded file.
      - `platform` 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.
      - `url` string, nullable, required — A URL to download the attachment.
    - `customer_email_address` string, nullable, required — The email address the customer used at checkout.
    - `customer_name` string, nullable, required — The customer's name as given at checkout.
    - `notes` string, nullable, required — Any additional context for the processor reviewing the dispute.
    - `product_description` string, nullable, required — What the customer purchased, in the seller's own words.
    - `refund_policy_attachment` DisputeAttachment, required
      - `content_type` string, nullable, required — The uploaded file's MIME type.
      - `filename` string, nullable, required — The uploaded file's name.
      - `id` string, nullable, required — The attachment's ID. `null` for a Whop-hosted policy, which is not an uploaded file.
      - `platform` 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.
      - `url` string, nullable, required — A URL to download the attachment.
    - `refund_policy_disclosure` string, nullable, required — How the refund policy was shown to the customer before purchase.
    - `refund_refusal_explanation` string, nullable, required — Why a refund was refused, when one was requested and denied.
    - `service_date` string, nullable, required — When the product or service was delivered.
    - `uncategorized_attachment` DisputeAttachment, required
      - `content_type` string, nullable, required — The uploaded file's MIME type.
      - `filename` string, nullable, required — The uploaded file's name.
      - `id` string, nullable, required — The attachment's ID. `null` for a Whop-hosted policy, which is not an uploaded file.
      - `platform` 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.
      - `url` string, nullable, required — A URL to download the attachment.
  - `evidence_due_at` string, 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_editable` boolean, 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_at` string, nullable, required — When the evidence was submitted to the processor, as an ISO 8601 timestamp.
  - `id` string, required — Dispute ID, prefixed `dspt_`.
  - `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.
  - `issuer_comments` DisputeIssuerComment[], required
    - `received_at` string, nullable, required — When the comment was received, as an ISO 8601 timestamp.
    - `text` string, required — What the issuer wrote, as received.
  - `payment` DisputePayment, required
    - `amount` number, nullable, required — What the customer was charged, in whole units of the payment's currency.
    - `card_brand` string, nullable, required — Card brand, when the customer paid by card.
    - `card_last4` string, nullable, required — Last four digits of the card, when the customer paid by card.
    - `created_at` string, required — When the payment was made, as an ISO 8601 timestamp.
    - `currency` string, nullable, required — Three-letter ISO currency code of the payment. Can differ from the dispute's currency when the processor settles in another currency.
    - `id` string, required — Payment ID, prefixed `pay_`.
    - `payment_method_type` string, nullable, required — How the customer paid, such as `card` or `paypal`.
    - `payment_processor` string, nullable, required — The processor that handled the payment, such as `stripe`.
  - `plan_id` string, nullable, required — The plan the disputed payment was made on, prefixed `plan_`.
  - `product_id` string, nullable, required — The product the disputed payment was for, prefixed `prod_`.
  - `rapid_dispute_resolution` boolean, 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_code` string, 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_at` string, required — When the dispute was last changed, as an ISO 8601 timestamp.

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized
- `404` — Resource not found

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/db0883548bc5/schema)
