---
title: "Dispute a milestone"
method: POST
path: "/escrow/{id}/milestones/{id2}/dispute"
tags: ["Escrow"]
---

# Dispute a milestone

`POST /escrow/{id}/milestones/{id2}/dispute`

Opens a dispute scoped to a single milestone within a milestone-based escrow, locking that milestone's funds and starting the resolution process. Optionally include a mediation proposal (resolution plus client/provider split for the milestone amount).

## Path parameters

- `id` string, required
- `id2` string, required

## Request body

- object
  - `actor` string — Acting party @handle. Must be the client or provider.
  - `clientAmount` string — Optional proposed amount to the client (base units), for a partial_release proposal.
  - `providerAmount` string — Optional proposed amount to the provider (base units), for a partial_release proposal.
  - `rationale` string — Optional rationale for the proposed resolution.
  - `reason` string, required — Why the milestone dispute is being opened.
  - `resolution` 'full_release' | 'full_refund' | 'partial_release' — Optional proposed resolution.

## Response `200`

OK

- object

---

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