# List disputes

List disputes for a profile with optional filters.

Endpoint: GET /spend/profiles/{profileId}/disputes
Version: 2026Q4
Security: UserToken

## Security:

  - `UserToken` (unknown)
    http bearer JWT

## Path parameters:

  - `profileId` (integer, required)
    Your profile ID.

## Query parameters:

  - `status` (string)
    Filter by dispute status.

  - `transactionId` (integer)
    Filter by card transaction ID.

  - `pageSize` (integer)
    The maximum number of disputes to return per page. Between 10 and 100, defaults to 10.

  - `pageNumber` (integer)
    The page number to retrieve. Must be at least 1, defaults to 1.

## Header parameters:

  - `X-External-Correlation-Id` (string)
    Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

## Response 200:

  - `200` (unknown)
    Paginated list of disputes.

## Response 200 fields (application/json):

  - `totalCount` (integer)
    Total number of disputes matching the filters.
    Example: 2

  - `disputes` (array)

  - `disputes.id` (string)
    Unique identifier of the dispute.
    Example: b4eae16c-b3a9-4327-b0bd-6a2ad430d803

  - `disputes.transactionId` (integer)
    Card transaction ID.
    Example: 476873

  - `disputes.profileId` (integer)
    Profile ID.
    Example: 14547572

  - `disputes.reason` (string)
    Dispute reason code.
    Example: WRONG_AMOUNT

  - `disputes.status` (string)
    Dispute overall status.
    Enum: "ACTIVE", "CLOSED"

  - `disputes.subStatus` (string)
    Dispute detailed status.
    Enum: "SUBMITTED", "IN_REVIEW", "REFUNDED", "REJECTED", "WITHDRAWN", "CONFIRMED", "REFUND_IN_PROGRESS", "ATTEMPTING_RECOVERY", "RECOVERY_UNSUCCESSFUL"

  - `disputes.statusMessage` (string)
    Explanation for `subStatus`.
    Example: Withdrawn

  - `disputes.createdAt` (string)
    Time when the dispute was created.
    Example: 2024-03-18T03:47:52.493Z

  - `disputes.createdBy` (string)
    Creator of the dispute. Currently set to the user ID.
    Example: 9867661

  - `disputes.lastUpdatedAt` (string)
    Time when the dispute was last updated.
    Example: 2024-03-27T02:30:27.374Z

  - `disputes.canWithdraw` (boolean)
    Whether the dispute can be withdrawn.
    Example: false

## Response 200 headers (application/json):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 429:

  - `429` (unknown)
    Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.

## Response 429 headers (application/json):

  - `Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 5

  - `X-Rate-Limited-By` (string)
    Identifies the rate limiter that triggered the 429 response.
    Example: wise-public-api

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

