---
title: "Deactivate a role by ID"
method: DELETE
path: "/roles/{role_id}"
tags: ["Roles"]
---

# Deactivate a role by ID

`DELETE /roles/{role_id}`

Deactivates the role specified by its ID. The role remains queryable with status `DEACTIVATED`.
Only roles whose `entity_type` is `BUSINESS` may be deactivated via this endpoint; account-group roles are rejected with `403 Forbidden`.
Deactivation is a terminal state; once deactivated, a role cannot be reactivated.
Deactivation is idempotent: calling this endpoint on an already-deactivated role returns `202 Accepted` without side effects.
A `ROLE.DEACTIVATED` webhook event is emitted on the first successful deactivation.

## Response `202`

The request has been successfully accepted and will be processed asynchronously.

## Other responses

- `401` — Unauthorized. The caller has not been authenticated.
- `403` — Forbidden. The caller has been authenticated but is not allowed to take the requested action.
- `404` — Not Found. The requested resource could not be found.
- `406` — Not Acceptable. The resource does not have a current representation that would be acceptable to the user agent. "Accept" header defined unsupported value.
- `429` — Too Many Requests. The caller has exceeded their quota for the time period and has been throttled.
- `500` — Internal Server Error. The service encountered an unexpected error.
- `503` — Service Unavailable. The service handling for this request cannot be reached at this time.
- `504` — Gateway Timeout. The service gateway has reached its internal timeout.

---

[API](https://skmtc.net/upvest/apis/upvest-investment-api.md) · [All operations](https://skmtc.net/upvest/apis/upvest-investment-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/upvest/upvest-investment-api/revisions/2c6bc192bc09/schema)
