---
title: "Cancel an order"
method: POST
path: "/v1/orders/{id}/cancel"
---

# Cancel an order

`POST /v1/orders/{id}/cancel`

## Request

- Base URL: `https://themassprint.com`
- URL: `https://themassprint.com/v1/orders/{id}/cancel`
- Auth: one of:
  - HTTP bearer
  - none

Any authorized caller may cancel while awaiting_payment. The API key that CREATED the order may also cancel it while confirmed or printing — stopping production before the press finishes. shipped and delivered can never be canceled; that is a refund conversation, not a cancel. Canceling moves no money, and it RELEASES the order's client_reference: replaying that reference afterwards creates a new order and prints it. If the order changes status before the cancel lands, the answer is 409 not_cancellable naming the status it moved to — a cancel never reports success it did not achieve. The same two tiers apply to the MCP cancel_order tool.

## Path parameters

- `id` string, required

## Query parameters

- `token` string

## Headers

- `X-Order-Token` string

## Response `200`

Canceled

## Other responses

- `409`: Status does not allow canceling for this caller, or the order moved before the cancel landed

---

[API](https://skmtc.dev/themassprint/apis/massprint-api.md) · [All operations](https://skmtc.dev/themassprint/apis/massprint-api/llms.txt) · [OpenAPI document](https://skmtc.dev/themassprint/apis/massprint-api/revisions/50555aeed826?raw)
