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

# update_user

> Rename a user, change their role, their currencies or their license. Email, status and managers stay out of reach.

Rename a user, change their role, their currencies or their license, and
return them as they now stand.

Pass at least one of `name`, `role_id`, `payment_currency`,
`calculation_currency` or `licensed` — a call with none of them has nothing to
update. Sending the values the user already has changes nothing, so the same
call can be sent twice. Nothing is written when a call is refused.

The role decides what the user may see and do in Qobra. Only licensed users
have their compensations calculated: giving a license takes one of the
company's free seats and recalculates the user's statements, as in the Qobra
web app. A name or a payment currency an HRIS syncs is kept as set here over
the next syncs, as after an edit in the Qobra web app.

A user's email and status cannot be changed here, nor who they report to,
which [`update_user_managers`](https://docs.qobra.co/mcp_documentation/tools/update_user_managers)
sets.

The call is refused when:

* a currency is not one of the company's, or the company has multiple
  currencies or separate calculation currencies turned off.
* `licensed` is true while the company has no licenses activated, or every
  license is already in use — take one off another user first.
* the caller lacks the permission the argument needs (see below).

Changing the role needs write permission on roles; every other change needs
write permission on users. A caller holding only one of the two can still make
the changes it covers, as in the web app. Available only where the Qobra write
tools beta is enabled. Every write is recorded in the audit trail as the `Qobra
MCP` agent.

```json Example arguments theme={null}
{
  "user_id": "jane.doe@acme.com",
  "role_id": "665f1c2e8a4b3d0012a7e9f1",
  "payment_currency": "USD",
  "licensed": true
}
```

## Parameters

> **Body**
>
> **user\_id** `string` *required*
>
> Id of the user to update — the id list\_users returns. An exact email is
> accepted too.
>
> **name** `string`
>
> New display name of the user. Omit to leave it as it is.
>
> **role\_id** `string`
>
> Id of the role to give the user — the id list\_roles returns, never a name.
> Omit to leave their role as it is.
>
> **payment\_currency** `string`
>
> Currency the user is paid in, as a code (EUR, USD…) among the company's
> currencies. Omit to leave it as it is.
>
> **calculation\_currency** `string`
>
> Currency the user's commissions are computed in, as a code among the
> company's currencies. Omit to leave it as it is.
>
> **licensed** `boolean`
>
> True to give the user a Qobra license (a paid seat), false to take it off.
> Omit to leave it as it is.

## Response

> **Body**
>
> **user** `object`
>
> The user as they now stand, with the role they hold — the same row
> list\_users returns. See
> [`list_users`](https://docs.qobra.co/mcp_documentation/tools/list_users) for the full field
> breakdown.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.