---
title: "POST /v1/bookings/{id}/payment-plan/cancel"
method: POST
path: "/bookings/{id}/payment-plan/cancel"
tags: ["PaymentPlan"]
---

# POST /v1/bookings/{id}/payment-plan/cancel

`POST /bookings/{id}/payment-plan/cancel`

Cancels an active payment plan. Returns 409 if the plan is already
in a terminal state (cancelled / completed / failed) — idempotent
retry is the SDK caller's responsibility once the plan is done.

Uses the model's cancel() helper (Phase 155 T8) which:
  - wraps in a transaction
  - flips pending/due/retrying items to cancelled
  - busts the dashboard summary cache
We do NOT re-send the customer/admin emails here — that path is
reserved for portal-initiated cancellations. API cancels are
operator-initiated; the operator's own system is the authority.

## Path parameters

- `id` string, required

## Response `200`

- string

## Other responses

- `404`
- `409`

---

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