---
title: "Eligibility Check"
method: GET
path: "/v1/disputes/eligibility"
tags: ["Disputes"]
---

# Eligibility Check

`GET /v1/disputes/eligibility`

## Request

- Base URL: `https://api.casaphq.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.casaphq.com/v1/disputes/eligibility`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/casaphq/apis/casap-api/docs/v1/disputes/eligibility/get.ts> (a function with typed inputs; its response is checked against the schema)

Required step between transaction selection and the reasons screen. Checks that each selected transaction is eligible — including the org's own disputability rules — and that the selection uses a single payment rail and a single card. On failure, returns one structured error per failed rule with a machine-readable code and a member-facing message, so the member can adjust their selection without leaving the flow. See "Eligibility error codes" in the Disputes API (Self-Service) introduction for the full list and recommended UI handling.

## Query parameters

- `customerUuid` string
- `accountUuid` string
- `transactionIds` string[]
- `transactionDates` string[]

## Response `200`

A successful response.

- V1CheckDisputeEligibilityResponse: CheckDisputeEligibilityResponse reports whether the member may file the dispute. eligible is true only when errors is empty. Each error carries a machine-readable code, a member-facing message, and — for transaction-scoped codes — the offending transaction ids. A selection can fail several rules at once; errors then has one entry per rule.
  - `eligible` boolean
  - `errors` DtoEligibilityError[]
    - `code` 'ELIGIBILITY_ERROR_CODE_UNKNOWN' | 'RAIL_MISMATCH' | 'TRANSACTION_INELIGIBLE' | 'MEMBER_INELIGIBLE' | 'TRANSACTION_NOT_FOUND' | 'TRANSACTION_NOT_SETTLED' | 'TRANSACTION_ALREADY_DISPUTED' | 'TRANSACTION_OUTSIDE_ELIGIBILITY_WINDOW' | 'CARD_MISMATCH' | 'TRANSACTION_NOT_DISPUTABLE': EligibilityErrorCode is the machine-readable reason a selection is ineligible. Transaction-scoped codes (RAIL_MISMATCH, CARD_MISMATCH, and the TRANSACTION_* values) name the offending ids in transaction_ids; the member can adjust their selection. MEMBER_INELIGIBLE is member-scoped: transaction_ids is empty and no selection change helps. See "Eligibility error codes" in the Disputes API (Self-Service) introduction for handling guidance. - RAIL_MISMATCH: The selection mixes payment rails (e.g. ACH and Debit) that cannot be disputed together. - TRANSACTION_INELIGIBLE: Deprecated: no longer returned. Match the specific TRANSACTION_* codes instead. - MEMBER_INELIGIBLE: The member cannot file any dispute right now (e.g. classified as a dispute abuser), regardless of selection. - TRANSACTION_NOT_FOUND: A selected id matches no transaction on the member's account (stale, mistyped, or superseded). - TRANSACTION_NOT_SETTLED: A selected transaction has not settled yet; it can be disputed once it does. - TRANSACTION_ALREADY_DISPUTED: A selected transaction is already part of an open dispute. - TRANSACTION_OUTSIDE_ELIGIBILITY_WINDOW: A selected transaction is older than the org's configured window for self-service disputes. - CARD_MISMATCH: The selection spans more than one card. - TRANSACTION_NOT_DISPUTABLE: A selected transaction is excluded by the org's disputability rules (e.g. a transaction type the org does not allow to be disputed online).
    - `message` string
    - `transactionIds` string[]

## Other responses

- `default`: An unexpected error response.

---

[API](https://skmtc.dev/casaphq/apis/casap-api.md) - [All operations](https://skmtc.dev/casaphq/apis/casap-api/llms.txt) - [OpenAPI document](https://skmtc.dev/casaphq/apis/casap-api/revisions/f159f2046015?raw)
