---
title: "Modelo de usuario | Documentación de Ordering.co"
description: "Las rutas de la API usan la base compartida https://api.ordering.co/{version}/{lang}/{project}."
canonical: https://docs.ordering.co/es/api-reference/guides/users-model/
---

# Modelo de usuario

El recurso `User` representa personas y roles operativos dentro de un proyecto de Ordering.co, incluidos administradores, administradores de negocio, clientes, repartidores, meseros, profesionales y agentes del centro de llamadas.

Las rutas de la API usan la base compartida `https://api.ordering.co/{version}/{lang}/{project}`. Reemplaza cada variable con valores autorizados para tu proyecto.

## Operaciones principales

| Acción                | Método   | Recurso         | Propósito                                                                                   |
| --------------------- | -------- | --------------- | ------------------------------------------------------------------------------------------- |
| Listar usuarios       | `GET`    | `/users`        | Devuelve los usuarios visibles para el usuario autenticado.                                 |
| Obtener un usuario    | `GET`    | `/users/{user}` | Devuelve un usuario por ID numérico.                                                        |
| Crear un usuario      | `POST`   | `/users`        | Crea un usuario según reglas específicas de la operación.                                   |
| Actualizar un usuario | `POST`   | `/users/{user}` | Actualiza parcialmente un usuario. Esta API usa `POST`, no `PUT` ni `PATCH`.                |
| Eliminar un usuario   | `DELETE` | `/users/{user}` | Elimina un usuario cuando los permisos del solicitante y el estado del usuario lo permiten. |

Los permisos, campos de solicitud, relaciones, respuestas y errores pueden variar según la operación.

## Ejemplo de solicitud sanitizado

```bash
curl --request GET \
  --url 'https://api.ordering.co/v400/en/YOUR_PROJECT/users/42' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
```

Todos los valores en mayúsculas son placeholders. Nunca incluyas un token real en la documentación, una URL, el control de versiones ni los registros.

## Campos públicos conservadores

La proyección base pública agrupa campos representativos. Una respuesta con selección parcial puede omitir campos, y los campos anulables pueden contener `null`.

| Grupo                | Campos representativos                                                                    |
| -------------------- | ----------------------------------------------------------------------------------------- |
| Identidad            | `id`, `name`, `middle_name`, `lastname`, `second_lastname`, `email`, `photo`, `birthdate` |
| Contacto y dirección | `cellphone`, `country_phone_code`, `address`, `address_notes`, `zipcode`, `location`      |
| Rol y estado         | `level`, `busy`, `available`, `enabled`, `email_verified`, `phone_verified`               |
| Marcas de tiempo     | `created_at`, `updated_at`                                                                |

El modelo puede contener campos, relaciones y extensiones de proyecto adicionales. No necesariamente se incluyen en todas las respuestas públicas.

## Niveles de usuario

| Nivel | Significado                                                                   |
| ----- | ----------------------------------------------------------------------------- |
| `0`   | Administrador                                                                 |
| `1`   | Rol heredado; confirma su significado específico del proyecto antes de usarlo |
| `2`   | Administrador de negocio                                                      |
| `3`   | Cliente                                                                       |
| `4`   | Repartidor                                                                    |
| `5`   | Administrador de repartidores                                                 |
| `6`   | Mesero                                                                        |
| `7`   | Administrador de meseros                                                      |
| `8`   | Profesional                                                                   |
| `9`   | Agente del centro de llamadas                                                 |

La creación de roles, la visibilidad y las acciones permitidas dependen de la operación y del usuario autenticado.

## Comportamiento de los campos

- `id` es el identificador numérico de usuario.
- `country_phone_code` se normaliza sin signos más ni espacios en los flujos pertinentes.
- `location` y otros campos estructurados pueden variar según la operación.
- `created_at` y `updated_at` son valores de fecha y hora en el esquema actual.
- `password` está oculto por el modelo y no forma parte de la respuesta pública de usuario.
- Los tokens de autenticación pertenecen a las respuestas de sesión, no al recurso `User`.

Usa `params` cuando una operación admita selección parcial de campos. Al aplicar una selección válida, `id` permanece en el resultado.

Para el contexto de autenticación, consulta la [guía de autenticación de usuarios](https://docs.ordering.co/es/api-reference/guides/users-authentication/).

## Propiedades del esquema

**Esquema:** `User`

| Nombre               | Tipo            | Descripción                                                                                                                                                                                                                                    |
| -------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address`            | string \| null  | —                                                                                                                                                                                                                                              |
| `address_notes`      | string \| null  | —                                                                                                                                                                                                                                              |
| `available`          | boolean \| null | —                                                                                                                                                                                                                                              |
| `birthdate`          | string \| null  | Fecha que comienza con un año de cuatro dígitos.                                                                                                                                                                                               |
| `busy`               | boolean \| null | —                                                                                                                                                                                                                                              |
| `cellphone`          | string \| null  | —                                                                                                                                                                                                                                              |
| `country_phone_code` | string \| null  | Código telefónico del país, sin signos más ni espacios.                                                                                                                                                                                        |
| `created_at`         | string \| null  | —                                                                                                                                                                                                                                              |
| `email`              | string \| null  | —                                                                                                                                                                                                                                              |
| `email_verified`     | boolean \| null | —                                                                                                                                                                                                                                              |
| `enabled`            | boolean \| null | —                                                                                                                                                                                                                                              |
| `id`                 | integer \| null | —                                                                                                                                                                                                                                              |
| `lastname`           | string \| null  | —                                                                                                                                                                                                                                              |
| `level`              | integer \| null | 0 administrador; 1 significado heredado pendiente de confirmación; 2 administrador de negocio; 3 cliente; 4 repartidor; 5 administrador de repartidores; 6 mesero; 7 administrador de meseros; 8 profesional; 9 agente del centro de llamadas. |
| `location`           | object \| null  | —                                                                                                                                                                                                                                              |
| `middle_name`        | string \| null  | —                                                                                                                                                                                                                                              |
| `name`               | string \| null  | —                                                                                                                                                                                                                                              |
| `phone_verified`     | boolean \| null | —                                                                                                                                                                                                                                              |
| `photo`              | string \| null  | —                                                                                                                                                                                                                                              |
| `second_lastname`    | string \| null  | —                                                                                                                                                                                                                                              |
| `updated_at`         | string \| null  | —                                                                                                                                                                                                                                              |
| `zipcode`            | string \| null  | —                                                                                                                                                                                                                                              |
