Upload Dispute Evidence
Replaces the full set of uploaded evidence documents on a dispute, beyond the four fixed evidence slots. Prefer PATCH /disputes/:id with evidence.documents, which does the same replace alongside every other evidence field in one call.
Authorizations
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 for how to get each one.
Headers
Pins the request to a dated API version.
"2026-10-15-1"
A unique key that makes this request safe to retry. See Idempotent requests.
255"d9105228-4a08-46b1-8b91-42fed586d383"
Path Parameters
The dispute ID (dspt_ tag).
Body
The full set of evidence documents the dispute should carry, beyond the four fixed evidence slots. Replaces all previously uploaded documents; an empty list removes them all. Send up to 10, 10MB each and 25MB in total. Accepted content types: application/pdf, application/json, image/jpeg, image/png, image/webp — any other type is rejected. Upload files through POST /files and reference them by id, or send the files as multipart file parts to upload and attach in one call. Policy documents (return_policy, shipping_policy, cancellation_policy, terms_of_service) default from the account's own documents; uploading one here replaces the account copy for this dispute, and a cancellation_policy or return_policy upload also takes precedence over the matching fixed evidence slot.
10Response
evidence documents attached
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.
false
The account the dispute was filed against, prefixed biz_.
"biz_xxxxxxxxxxxxxx"
The disputed amount, in whole units of currency.
150
The customer who filed the dispute.
When the dispute was opened, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
Three-letter ISO currency code of the disputed amount.
"usd"
The evidence packet sent to the processor to contest the dispute.
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.
"2026-01-01T12:00:00.000Z"
Whether evidence can still be changed and submitted.
false
Why evidence can no longer be edited. null while evidence_editable is true.
submitted, response_window_closed, not_contestable, null "submitted"
When the evidence was submitted to the processor, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
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.
Dispute ID, prefixed dspt_.
"dspt_xxxxxxxxxxxxxx"
Whether this is a pre-dispute inquiry rather than a formal chargeback. Inquiries follow the same lifecycle but move no funds unless one escalates.
false
The payment being disputed.
The variant the disputed payment was made on, prefixed plan_.
"plan_xxxxxxxxxxxxxx"
The product the disputed payment was for, prefixed prod_.
"prod_xxxxxxxxxxxxxx"
Why the customer says they are disputing, normalized across processors and card networks. other covers a processor reason Whop has not categorized yet.
fraudulent, unrecognized, declined_authorization, product_not_received, product_unacceptable, subscription_canceled, credit_not_processed, duplicate, processing_error, documentation_request, bank_cannot_process, other "other"
The raw card-network or processor reason code, such as 10.4. Informational only — reason is not derived from it.
"13.1"
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.
needs_response, warning_needs_response, under_review, warning_under_review, won, lost, prevented, warning_closed "under_review"
When the dispute was last changed, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"

