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

# Crear usuario

> Crea un nuevo usuario en la plataforma y le envía su contraseña por correo. Solo accesible con rol admin.

> [!NOTE]
>
> Requiere sesión activa con rol `admin`. Primero se envía el correo con las
> credenciales y después se guarda el usuario: si el correo no se puede
> enviar, responde `502` y no se crea nada, así que se puede reintentar.

## Parámetros de ruta

**email** `string` *required*

Correo electrónico del nuevo usuario. Si no tiene un formato válido, responde
`400`.

## Cuerpo de la solicitud

Debe traer exactamente estos tres campos, con texto no vacío: si falta, sobra o está vacío alguno, responde `400`.

**institution** `string` *required*

Nombre de la institución a la que pertenece el usuario.

**ror\_id** `string` *required*

Identificador ROR de la institución. Ejemplo: `059yx9a68`. Cada institución
tiene un solo usuario: si ya existe uno para ese `ror_id`, responde `409`.

**role** `string` *required*

Rol del usuario en la plataforma. Ejemplo: `staff`. No puede ser `admin`: responde `403`.

## Respuesta

**success** `boolean`

`true` si el usuario fue creado correctamente.

**msg** `string`

Mensaje de confirmación o error.

```json 201 theme={null}
{
  "success": true,
  "msg": "Usuario usuario@example.com Creado exitosamente y contraseña enviada por correo electrónico."
}
```

```json 400 theme={null}
{ "success": false, "msg": "Faltan: ror_id" }
```

```json 400 — correo inválido theme={null}
{ "success": false, "msg": "El correo 'usuario@example' no es válido." }
```

```json 409 theme={null}
{
  "success": false,
  "msg": "Para la institución: Universidad Ejemplo ya existe un correo registrado: otro@example.com. Si deseas asignar un nuevo correo, edita el usuario existente."
}
```

```json 409 — correo existente theme={null}
{ "success": false, "msg": "El usuario con correo usuario@example.com ya existe." }
```

```json 401 theme={null}
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
```

```json 403 theme={null}
{ "success": false, "msg": "Permiso denegado: No pueden realizar esta acción." }
```

```json 403 — rol admin theme={null}
{ "success": false, "msg": "No se pueden crear usuarios con el role 'admin'." }
```

```json 502 theme={null}
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }
```


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