---
title: "Approve disputes"
method: POST
path: "/api/v1/disputes/approve"
tags: ["Disputes"]
---

# Approve disputes

`POST /api/v1/disputes/approve`

Approve disputes (refund money to the customer). Only 20 disputes can be approved within a single request.

## Request body

- object
  - `dispute_ids` string[], required — Array of dispute ids. Only 20 disputes can be approved within a single request.

## Response `200`

Success. Disputes were approved.

- object
  - `disputes` DisputeNoHistory[]
    - `id` string, uuid, required — ID of the dispute.
    - `attachments` string[], nullable, required — Array of links to images which were uploaded by customer.
    - `payment_id` string, uuid, required — Unique identifier for the payment (UUID), assigned by Tabby. Save it on your side!
    - `amount` string, required — Total disputed amount.
    - `currency` 'AED' | 'SAR', required — ISO 4217 currency code for the payment amount. Currently there are 2 possible currency options - depending on the country where the store is located: - `AED` - United Arab Emirates Dirham - `SAR` - Saudi Riyal
    - `created_at` string, required — Date and time the Dispute was created, in UTC, and displayed in ISO 8601 datetime format.
    - `expired_at` string, required — Date and time of the expiration of the Dispute, in UTC, and displayed in ISO 8601 datetime format.
    - `status` 'new' | 'declined' | 'cancelled' | 'refunded' | 'in_progress' | 'evidence_merchant' | 'evidence_customer', required — The current status of the dispute: - `new` - dispute pending merchant approval for refund or initiate a challenge - `declined` - dispute was declined by Tabby support - `cancelled` - dispute was canceled by customer - `refunded` - dispute was approved or the order was refunded via Payments API - `in_progress` - merchant challenged dispute and need a response from Tabby support - `evidence_merchant` - waiting for evidence from the merchant - `evidence_customer` - waiting for evidence from the customer
    - `reason` 'unreceived_refund' | 'identity_theft' | 'product_issue' | 'not_delivered', required — Cause of the dispute was created (selected by customer). There are only four reasons: - `unreceived_refund` - a refund not received - `identity_theft` - I did not place this order (also known as identity theft) - `product_issue` - there was a problem with the product - `not_delivered` - the order was not delivered
    - `days_left` integer, required — How many days left before dispute will be automatically approved.
    - `items` DisputeOrderItem[], required
      - `reference_id` string, required — Reference id from payment.
      - `title` string, required — Order item title.
      - `unit_price` string, required — Order item unit price.
    - `order_number` string, required — Merchant-assigned order number.
    - `comment` string, required — The customer additional comments on the causes of the dispute.

## Other responses

- `400` — One of the required fields is missing or request is not formatted correctly.
- `401` — The request cannot be authorized.
- `404` — You are using an incorrect ID.
- `500` — Something bad happened. We're notified.

## Changes

- **2026-08-28** `cff62a2a6ee9` — 1 breaking, 4 info
  - the response's body type/format changed from `string`/`` to `object`/`` for status `500`
  - added the optional property `error` to the response with the `500` status
  - added the optional property `errorType` to the response with the `500` status
  - added the optional property `status` to the response with the `500` status
  - …1 more

[Change history](https://skmtc.dev/tabby/apis/tabby-api-reference/changes/api/v1/disputes/approve/post.md)

---

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