> ## 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.

# Expire Tokens

> Wipe a customer's tokens after the inactivity period

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

Expires every token a customer holds after they've been inactive for longer than the period you configured on your token. The full balance is returned to your token reserve. Check whether expiry should run first with [`/is-expired`](/api-reference/tokens/read/is-expired).

<Info>
  This is irreversible. Run it only when you intend to clear the customer's balance. The `400 Tokens have not expired yet` response is the safety net if you call it early.
</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 expiry
</ResponseField>

```javascript theme={null}
await fetch("https://tokens.shakesco.com/expire-tokens", {
  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": "0xghi789..." }
  ```

  ```json 400 Not Expired theme={null}
  { "error": "Tokens have not expired yet" }
  ```
</ResponseExample>
