> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shakesco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancel Vesting

> End a vesting grant early. Customer keeps vested portion, you reclaim the rest

<span style={{display:"none"}}>For the complete documentation index, see [llms.txt](/llms.txt).</span>

Cancels an active vesting grant. Whatever has already vested (but not yet been claimed) is credited to the customer's available balance. The remaining unvested portion is returned to your token reserve.

<Info>
  This is irreversible. The customer can no longer earn from this grant. Treat it as a transaction and verify with [`/vesting-info`](/api-reference/tokens/vesting/vesting-info) before any retry.
</Info>

### Request Body

<ParamField body="customer_ref" type="string" required>
  Your unique identifier for this customer
</ParamField>

### Response

<ResponseField name="tx_hash" type="string">
  Reference identifier for the cancellation
</ResponseField>

```javascript theme={null}
await fetch("https://tokens.shakesco.com/cancel-vesting", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ customer_ref: "customer-123" }),
});
```

<ResponseExample>
  ```json 200 OK theme={null}
  { "tx_hash": "0xabc..." }
  ```

  ```json 404 No Grant theme={null}
  { "error": "No active vesting grant found" }
  ```
</ResponseExample>
