---
title: "Dispute a Transaction"
method: POST
path: "/api/v1/transactions/{threadId}/dispute"
tags: ["Transactions"]
---

# Dispute a Transaction

`POST /api/v1/transactions/{threadId}/dispute`

Create a ticket to dispute a transaction. The list of available dispute reason keys can be found in the `GET /api/v1/transactions/dispute` endpoint.
If the dispute reason is `unrecognized_transaction_report_fraudulent`, the user's card will be restricted.

## Path parameters

- `threadId` string, required

## Request body

- object
  - `disputeReason` 'purchase_cancelled_but_no_refund_received' | 'problem_with_the_product_chargeback_' | 'problem_with_service_subscription_chargeback' | 'wrong_installment_number' | 'wrong_value' | 'charged_more_than_once' | 'unrecognized_transaction_report_fraudulent', required — The reason for disputing the transaction

## Response `202`

Dispute submitted for review

- object
  - `message` string

## Other responses

- `400` — Bad request - Thread ID or dispute reason is required/invalid
- `401` — Unauthorized Error
- `404` — Transaction not found or does not belong to user
- `409` — Transaction has already been disputed
- `500` — Internal server error

---

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