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

# Update User

> Update user account details and settings

Update user account information, permissions, and settings.

<Note>
  Only certain fields can be updated depending on the user's role and
  permissions. Some fields require special privileges to modify.
</Note>

## Request

<ParamField path="id" type="string" required>
  The unique identifier of the user to update
</ParamField>

<ParamField body="name" type="string">
  The full name of the user
</ParamField>

<ParamField body="role" type="string">
  The role of the user within the organization
</ParamField>

<ParamField body="department" type="string">
  The department the user belongs to
</ParamField>

<ParamField body="phone" type="string">
  The phone number of the user
</ParamField>

<ParamField body="status" type="string">
  User account status (active, inactive, suspended)
</ParamField>

<ParamField body="permissions" type="array">
  Array of permissions to grant to the user
</ParamField>

<ParamField body="metadata" type="object">
  Additional metadata for the user account
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer token for API authentication
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request PUT \
       --url https://api.credira.com/v1/users/user_123456789 \
       --header 'Authorization: Bearer YOUR_API_KEY' \
       --header 'Content-Type: application/json' \
       --data '{
         "name": "John Smith",
         "role": "senior_billing_manager",
         "department": "finance",
         "phone": "+1987654321",
         "status": "active",
         "permissions": [
           "calls:read",
           "calls:write",
           "emails:read",
           "emails:write",
           "callouts:read",
           "callouts:write",
           "users:read"
         ],
         "metadata": {
           "subscription_plan": "enterprise",
           "timezone": "America/Los_Angeles",
           "language": "en",
           "notes": "Promoted to senior role"
         }
       }'
  ```

  ```typescript TypeScript theme={null}
  const userId = "user_123456789";
  const response = await fetch(`https://api.credira.com/v1/users/${userId}`, {
    method: "PUT",
    headers: {
      Authorization: "Bearer YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      name: "John Smith",
      role: "senior_billing_manager",
      department: "finance",
      phone: "+1987654321",
      status: "active",
      permissions: [
        "calls:read",
        "calls:write",
        "emails:read",
        "emails:write",
        "callouts:read",
        "callouts:write",
        "users:read",
      ],
      metadata: {
        subscription_plan: "enterprise",
        timezone: "America/Los_Angeles",
        language: "en",
        notes: "Promoted to senior role",
      },
    }),
  });

  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample status="200" summary="Success">
  ```json theme={null}
  {
    "success": true,
    "data": {
      "id": "user_123456789",
      "email": "john.doe@company.com",
      "name": "John Smith",
      "company": "Acme Corporation",
      "role": "senior_billing_manager",
      "department": "finance",
      "phone": "+1987654321",
      "account_id": "acc_789123456",
      "status": "active",
      "created_time": "2024-01-15T10:30:00Z",
      "updated_time": "2024-01-15T10:30:00Z",
      "last_login": "2024-01-20T09:15:00Z",
      "permissions": [
        "calls:read",
        "calls:write",
        "emails:read",
        "emails:write",
        "callouts:read",
        "callouts:write",
        "users:read"
      ],
      "activity_stats": {
        "total_calls_made": 45,
        "total_emails_sent": 120,
        "total_callouts_created": 8,
        "last_activity": "2024-01-20T09:15:00Z"
      },
      "metadata": {
        "subscription_plan": "enterprise",
        "timezone": "America/Los_Angeles",
        "language": "en",
        "notes": "Promoted to senior role"
      }
    },
    "meta": {
      "timestamp": "2024-01-15T10:30:00Z",
      "request_id": "req_123456789",
      "message": "User updated successfully"
    }
  }
  ```
</ResponseExample>

<ResponseExample status="400" summary="Bad Request">
  ```json theme={null}
  {
    "success": false,
    "error": {
      "code": "INVALID_REQUEST",
      "message": "Invalid request data"
    },
    "meta": {
      "timestamp": "2024-01-15T10:30:00Z",
      "request_id": "req_123456789"
    }
  }
  ```
</ResponseExample>

<ResponseExample status="401" summary="Unauthorized">
  ```json theme={null}
  {
    "success": false,
    "error": {
      "code": "UNAUTHORIZED",
      "message": "Invalid or missing API key"
    },
    "meta": {
      "timestamp": "2024-01-15T10:30:00Z",
      "request_id": "req_123456789"
    }
  }
  ```
</ResponseExample>

<ResponseExample status="403" summary="Forbidden">
  ```json theme={null}
  {
    "success": false,
    "error": {
      "code": "FORBIDDEN",
      "message": "You don't have permission to update this user"
    },
    "meta": {
      "timestamp": "2024-01-15T10:30:00Z",
      "request_id": "req_123456789"
    }
  }
  ```
</ResponseExample>

<ResponseExample status="404" summary="Not Found">
  ```json theme={null}
  {
    "success": false,
    "error": {
      "code": "NOT_FOUND",
      "message": "User not found"
    },
    "meta": {
      "timestamp": "2024-01-15T10:30:00Z",
      "request_id": "req_123456789"
    }
  }
  ```
</ResponseExample>

<ResponseExample status="422" summary="Unprocessable Entity">
  ```json theme={null}
  {
    "success": false,
    "error": {
      "code": "VALIDATION_ERROR",
      "message": "Invalid phone number format"
    },
    "meta": {
      "timestamp": "2024-01-15T10:30:00Z",
      "request_id": "req_123456789"
    }
  }
  ```
</ResponseExample>
