---
title: "List Resolution Center Cases"
method: GET
path: "/resolution_center_cases"
tags: ["Resolution Center Cases"]
---

# List Resolution Center Cases

`GET /resolution_center_cases`

Lists resolution center cases. Without `account_id` you get every case you can read — the ones you opened as a buyer and every account you are a team member of; the filters narrow that list.

## Query parameters

- `account_id` string
- `user_id` string
- `first` integer
- `after` string
- `last` integer
- `before` string
- `order` 'created_at' | 'response_due_at'
- `direction` 'asc' | 'desc'
- `status` string[]
- `reason` string[]
- `outcome` string[]
- `created_before` string
- `created_after` string

## Headers

- `Api-Version-Date` string

## Response `200`

cases listed

- object
  - `data` ResolutionCenterCase[], required
    - `account` AccountSummary, required
      - `id` string, required — Account ID, prefixed `biz_`.
      - `title` string, required — Account display name.
    - `amount` number, required — The amount in question, in whole units of `currency`.
    - `available_actions` string[], required
    - `buyer` ResolutionBuyer, 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_`.
      - `username` string, nullable, required — The customer's Whop username.
    - `created_at` string, required — When the case was opened, as an ISO 8601 timestamp.
    - `currency` string, nullable, required — Three-letter ISO currency code of the amount.
    - `customer_appealed` boolean, required — Whether the customer has appealed a decision on this case.
    - `escalated` boolean, required — Whether Whop is involved — either reviewing the case, or waiting on the side named by `status` for something it asked for while reviewing.
    - `id` string, required — Resolution center case ID, prefixed `reso_`.
    - `outcome` 'customer_won' | 'merchant_won' | 'withdrawn' | 'null', nullable, required — Who prevailed on the claim. `null` until the case closes. Read `refund` for whether any money actually moved.
    - `payment` ResolutionPayment, required
      - `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.
      - `id` string, required — Payment ID, prefixed `pay_`.
      - `payment_method_type` string, nullable, required — How the customer paid, such as `card` or `paypal`.
    - `plan_id` string, nullable, required — The plan the payment was made on, prefixed `plan_`.
    - `product_id` string, nullable, required — The product the payment was for, prefixed `prod_`.
    - `reason` 'fraudulent' | 'product_not_received' | 'not_as_described' | 'product_unacceptable' | 'subscription_canceled', required — What the customer says went wrong. Shares the `/disputes` vocabulary, so a case that later becomes a chargeback reports the same complaint.
    - `refund` 'none' | 'merchant' | 'platform' | 'null', nullable, required — Whether money moved and off whose balance: `none`, `merchant`, or `platform` (Whop refunded the customer and the merchant kept the funds). Independent of `outcome` — a case the merchant won can still carry a platform refund. `null` while the case is open, and on older closed cases that predate this being recorded.
    - `response_due_at` string, nullable, required — When the next response is due, as an ISO 8601 timestamp.
    - `status` 'awaiting_merchant' | 'awaiting_customer' | 'under_review' | 'closed', required — Who the case is waiting on. `awaiting_merchant` and `awaiting_customer` name the side that owes a response, `under_review` means Whop is deciding, and `closed` means it is settled — read `outcome` for how.
    - `updated_at` string, required — When the case was last changed, as an ISO 8601 timestamp.
  - `page_info` object, required
    - `end_cursor` string, nullable, required
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `start_cursor` string, nullable, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Resource not found

## Changes

- **2026-08-07** `f1020c3ecda4` — 3 info
  - added the optional property `error/code` to the response with the `401` status
  - added the optional property `error/code` to the response with the `403` status
  - added the optional property `error/code` to the response with the `404` status
- **2026-07-31** `099fdc3be422` — 11 breaking, 12 warning, 43 info
  - the `query` request parameter `direction` was restricted to a list of enum values
  - for the `query` request parameter `direction`, default value `desc` was added
  - the `data/items/created_at` response's property type/format changed from `string`/`date-time` to `string`/`` for status `200`
  - the `data/items/updated_at` response's property type/format changed from `string`/`date-time` to `string`/`` for status `200`
  - …62 more

[Change history](https://skmtc.dev/whop/apis/whop-api/changes/resolution_center_cases/get.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) · [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/whop/whop-api/revisions/9e320991dd2f/schema)
