---
title: "Revoke a company's plan assignment"
method: POST
path: "/companies/{id}/plan-assignments/{assignmentId}/revoke"
tags: ["Companies"]
---

# Revoke a company's plan assignment

`POST /companies/{id}/plan-assignments/{assignmentId}/revoke`

## Request

- Base URL: `https://api.cavuno.com/v1`
- URL: `https://api.cavuno.com/v1/companies/{id}/plan-assignments/{assignmentId}/revoke`
- Auth: HTTP bearer

Ends an active plan assignment now, the same as **Revoke** in the company plan dialog. The record stays, with `status: revoked`. Revoking an assignment that is already revoked or expired returns it unchanged. Revoking does not cancel a recurring plan invoice. Accepts an optional `Idempotency-Key` header. Requires `plans.manage`.

## Path parameters

- `id` string, required: The company's opaque object `id`: the `id` field returned by the company endpoints (e.g. `p17xq4c2b9r5gz3e8j0r6t4k7m2n9d5w`). This is NOT the `slug` or display name; passing a slug like `antler` returns 404. To look up a company by name or slug, use `GET /v1/companies`, `POST /v1/companies/search`, or `POST /v1/companies/find-or-create` and read the returned `id`.
- `assignmentId` string, required: The plan assignment ID returned by the list or assign call.

## Response `200`

The plan assignment after the revoke.

- CompanyPlanAssignment
  - `id` string, required: The plan assignment ID.
  - `object` 'company_plan_assignment', required
  - `companyId` string, required
  - `planId` string, nullable, required: The assigned plan. Null for a custom level granted in the dashboard without a plan.
  - `planName` string, nullable, required
  - `source` 'manual' | 'purchase' | 'invoice' | 'synced', required: `manual`: assigned by an operator. `purchase`: bought at checkout. `invoice`: granted when a plan invoice was paid. `synced`: set by a membership sync.
  - `status` 'active' | 'expired' | 'revoked', required: Only `active` assignments give the company its plan benefits.
  - `expiresAt` string, nullable, required: ISO-8601 time the assignment ends, or null for no end.
  - `createdAt` string, required: ISO-8601 creation time.
  - `updatedAt` string, required: ISO-8601 time of the last change.

## Other responses

- `404`: Company or plan assignment not found.

## Changes

- **2026-10-20** `de39bd3242e2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/changes/companies/:id/plan-assignments/:assignmentId/revoke/post.md)

---

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