---
title: "Simulate a chargeback (sandbox)"
method: POST
path: "/v1/sandbox/disputes"
tags: ["Disputes"]
---

# Simulate a chargeback (sandbox)

`POST /v1/sandbox/disputes`

## Request

- Base URL: `https://api.breeze.cash`
- URL: `https://api.breeze.cash/v1/sandbox/disputes`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/breeze/apis/breeze-api/docs/v1/sandbox/disputes/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a simulated Visa chargeback with reason code 10.4 (fraud) on one of your sandbox payment pages. Only sandbox merchants can call this endpoint, and each payment can carry at most one dispute. The dispute appears in `GET /v1/disputes` and triggers the `DISPUTE_STATUS_UPDATE` webhook if you have it enabled.

## Request body

- SimulateSandboxDisputeRequest: The sandbox payment page to raise the simulated chargeback on
  - `pageId` string, required: ID of a sandbox payment page with a completed payment

## Response `200`

Success

- object: The simulated dispute
  - `status` 'SUCCEEDED', required
  - `data` SimulateSandboxDisputeResponse, required
    - `disputeId` string, required: ID of the simulated dispute
    - `paymentId` string, required: ID of the disputed payment

## Other responses

- `400`: Bad request
- `401`: Unauthorized

## Changes

- **2026-11-03** `4af083d182a6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/breeze/apis/breeze-api/changes/v1/sandbox/disputes/post.md)

---

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