---
title: "Admin Revoke Comped Plan"
method: POST
path: "/api/v1/admin/clients/{client_id}/revoke-plan"
tags: ["admin"]
---

# Admin Revoke Comped Plan

`POST /api/v1/admin/clients/{client_id}/revoke-plan`

## Request

- Base URL: `https://api.nudgelink.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nudgelink.co/api/v1/admin/clients/{client_id}/revoke-plan`
- Auth: HTTP bearer

Revoke a comped plan. Revoked comps lose their plan (Ilya, 2026-10-13,
MONEY-11): ``subscription_plan`` and ``plan_comped`` are cleared, the way a
cancelled Stripe subscription clears the plan. Entitlements drop to "no
plan" (email outreach, HubSpot and Scout pause; MCP stays), Billing shows
the account without a plan, and the monthly comp refill stops. The comp's
credits are drained to 0, as before (a revoke ends free usage). Active
sequences pause with
``comp_revoked`` (the client can resume them; a new comp or a paid
checkout resumes them) and ``guarantee_status`` flips to inactive.

Clearing the plan used to be avoided because "no plan" meant "internal
demo, exempt from credit checks". That branch is gone: every account is
credit-governed (``outreach._is_credit_governed``), so a plan-less account
spends its credits like a trial. A second revoke is a 400 (no comp).

## Path parameters

- `client_id` string, uuid, required

## Request body

- RevokePlanRequest
  - `reason` string, required

## Response `200`

Successful Response

- RevokePlanResponse
  - `client_id` string, uuid, required
  - `plan` string, nullable, required
  - `comped` boolean, required
  - `new_balance` integer, required
  - `sequences_paused` integer, required

## Other responses

- `422`: Validation Error

---

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