Admin


Perfil de administrador de una compañía. Es el perfil que cuelga de una Account de tipo admin; agrupa los datos de contacto, el AdminType (rol) y los AdminAccess (a qué compañía/grupo/sucursales llega).

Estado en línea (status)

status es un bitmask con un único bit, is_status_online. El accesor de status lo baja automáticamente si online_at tiene más de 15 minutos, de modo que un administrador que no da señales se reporta como offline aunque el bit siguiera puesto. Los endpoints set-online / set-offline lo cambian y actualizan online_at.

Ajustes (settings)

Gestionados con el sub-recurso admins/{id}/settings. Claves visibles y editables:

Clave Descripción
enable_sms Interruptor general de notificaciones por SMS.
enable_order_created_sms / enable_order_canceled_sms SMS al crearse / cancelarse una orden.
enable_payment_registered_sms / enable_manual_payment_reported_sms SMS al registrarse un pago / reportarse un pago manual.
enable_support_sms SMS de soporte.
enable_telegram_rates / enable_telegram_orders / enable_telegram_reminders / enable_telegram_alerts Avisos por Telegram de calificaciones, órdenes, recordatorios y alertas.
preferences Preferencias de la interfaz (por ejemplo audible_notifications).

Notas

  • upgrade / downgrade cambian el type de la cuenta asociada (nivel de administrador).
  • avatar_url se resuelve a URL absoluta y se sube con el endpoint dedicado.

Estructura de Datos

Atributo Tipo Descripción
id int
name string Nombre del administrador.
display_name string Nombre para mostrar (derivado del nombre).
email string Correo del administrador (espejo del de la cuenta).
phone string Teléfono del administrador.
avatar_url string\|null URL del avatar; null si no tiene.
status int Estado en línea como bitmask; ver is_status_online y la nota de expiración arriba.
online_at datetime\|null Última vez que el administrador dio señales de estar en línea (oculto en la respuesta).
created_at datetime\|null Fecha de creación.
updated_at datetime\|null Fecha de última modificación.
deleted_at datetime\|null Fecha de borrado lógico.
account_id int Cuenta ({@link \App\Account}) a la que pertenece el perfil.
company_id int Compañía dueña del administrador (oculto en la respuesta).
admin_type_id int\|null Rol asignado ({@link \App\AdminType}); null si no tiene rol.
city_id int\|null Ciudad a la que se acota el administrador; null si no está acotado.
is_status_online bool BitMask (({@link self::status} & 0x1) !== 0)
setting_enable_sms bool Atajo del ajuste enable_sms: interruptor general de SMS.
setting_enable_order_created_sms bool Atajo del ajuste enable_order_created_sms: SMS al crearse una orden.
setting_enable_payment_registered_sms bool Atajo del ajuste enable_payment_registered_sms: SMS al registrarse un pago.
setting_enable_manual_payment_reported_sms bool Atajo del ajuste enable_manual_payment_reported_sms: SMS al reportarse un pago manual.
setting_enable_order_canceled_sms bool Atajo del ajuste enable_order_canceled_sms: SMS al cancelarse una orden.
setting_enable_support_sms bool Atajo del ajuste enable_support_sms: SMS de soporte.
setting_enable_telegram_rates bool Atajo del ajuste enable_telegram_rates: avisos de calificaciones por Telegram.
setting_enable_telegram_orders bool Atajo del ajuste enable_telegram_orders: avisos de órdenes por Telegram.
setting_enable_telegram_reminders bool Atajo del ajuste enable_telegram_reminders: recordatorios por Telegram.
setting_enable_telegram_alerts bool Atajo del ajuste enable_telegram_alerts: alertas por Telegram.
setting_preferences array Atajo del ajuste preferences: preferencias de la interfaz (por ejemplo audible_notifications).
accesses AdminAccess> Accesos del administrador (a qué compañía, grupo o sucursales llega).
account Account Cuenta a la que pertenece el perfil.
adminType AdminType\|null Rol asignado al administrador.
allLogs ApiLog> Registros de auditoría de la API, incluidos los internos.
allSettings AdminSetting> Todos los ajustes del administrador (oculto en la respuesta).
allowed_settings array Claves de ajuste visibles para el rol actual.
associatedClients Client> Clientes asociados al administrador (soporte), el principal primero.
city City\|null Ciudad a la que se acota el administrador.
company Company Compañía dueña del administrador.
editable_settings array Claves de ajuste editables por el rol actual.
full_name string Nombre completo del administrador.
is_email_valid bool true si el email tiene formato válido.
is_phone_user bool true si la cuenta asociada se registró con teléfono.
logs ApiLog> Registros de auditoría de la API visibles.
names array Nombre separado en [nombre, apellido].
notifications Notification> Notificaciones del administrador.
resources UploadedResource> Archivos subidos asociados al administrador.
roles AdminTypeRole> Roles/permisos efectivos del administrador según su AdminType.
settings array Ajustes del administrador visibles para el rol actual.
{
    "id": 96,
    "name": "Pedro Parra",
    "display_name": "admin_175",
    "email": "pedrop@manzanares.com.ve",
    "phone": "584121198667",
    "avatar_url": "http://127.0.0.1:8000/storage/static/default/avatar_admin.png",
    "status": 0,
    "created_at": "2020-04-20 15:24:38",
    "updated_at": "2026-08-07 23:46:30",
    "deleted_at": null,
    "account_id": 175,
    "admin_type_id": null,
    "city_id": 17,
    "is_status_online": false,
    "settings": {
        "preferences": {
            "audible_notifications": {
                "branch_in_service": "on",
                "order_new": "off",
                "payment_new": "off",
                "order_being_prepared": "on",
                "order_accepted": "off",
                "order_prepared": "on",
                "liver_arrived": "on",
                "liver_in_commerce": "on",
                "liver_on_the_way": "on",
                "order_arrived": "off",
                "order_delivered": "off",
                "order_canceled": "off"
            }
        }
    },
    "admin_type": null
}

Endpoints

Insertar Admin

Crear un administrador

Crea una Account de tipo admin y su Admin (name, phone, city_id). La contraseña la establece luego el propio administrador.

Método URI Cabeceras
POST /companies/{companyId}/admins Authorization
{
    "name": "required|max:64|person_name",
    "email": "required|email:rfc,filter",
    "phone": "required|string|min:9",
    "password": "string",
    "city_id": "integer|exists:cities,id"
}

Insertar Admin de BranchGroup

Crear un administrador en un grupo de comercios

Crea un Admin con acceso (AdminAccess) al grupo de comercios indicado.

Método URI Cabeceras
POST /companies/{companyId}/branch-groups/{branchGroupId}/admins Authorization
{
    "name": "required|max:64|person_name",
    "email": "required|email:rfc,filter",
    "phone": "required|string|min:9",
    "password": "string",
    "city_id": "integer|exists:cities,id"
}

Insertar Admin de Branch

Crear un administrador en una sucursal

Crea un Admin con acceso (AdminAccess) a la sucursal indicada.

Método URI Cabeceras
POST /companies/{companyId}/branches/{branchId}/admins Authorization
{
    "name": "required|max:64|person_name",
    "email": "required|email:rfc,filter",
    "phone": "required|string|min:9",
    "password": "string",
    "city_id": "integer|exists:cities,id"
}

Registrar el token de WhatsApp de un administrador

Guarda el token que enlaza al Admin con el chatbot de WhatsApp.

Método URI Cabeceras
POST /companies/{companyId}/admins/{adminId}/whatsapp-token Authorization

Errores de negocio

Código HTTP Cuándo ocurre
ER400 400 El chatbot de WhatsApp no está configurado en la compañía.

Listar Admin

{info} Soporta: Paginación Filters Carga dinámica

Listar administradores

Devuelve los Admin de la compañía, paginados. El filtro branch acota por nombre de sucursal accesible; q busca por nombre, teléfono y correo.

Método URI Cabeceras
GET /companies/{companyId}/admins Authorization

Resolver un administrador por teléfono

{info} Soporta: Paginación Filters Carga dinámica

Devuelve el Admin cuyo teléfono coincide con el indicado (para identificar al remitente de un mensaje).

Método URI Cabeceras
GET /companies/{companyId}/resolve-sender Authorization
{
    "phone": "required|string"
}

Listar Admin de Client

Listar los administradores de un cliente

Devuelve los Admin asociados al cliente indicado (soporte), el principal primero.

Método URI Cabeceras
GET /companies/{companyId}/clients/{clientId}/admins Authorization

Ver los ajustes de un administrador

Devuelve los settings del Admin visibles para el rol actual (preferences).

Método URI Cabeceras
GET /companies/{companyId}/admins/{adminId}/settings Authorization

Mostrar Admin

{info} Soporta: Carga dinámica

Ver un administrador

Devuelve el Admin indicado.

Método URI Cabeceras
GET /companies/{companyId}/admins/{adminId} Authorization

Actualizar Admin

Actualizar un administrador

Modifica name, phone o city_id del Admin indicado.

Método URI Cabeceras
PATCH /companies/{companyId}/admins/{adminId} Authorization
{
    "name": "max:64|person_name",
    "phone": "",
    "city_id": "nullable|integer|exists:cities,id"
}

Actualizar los ajustes de un administrador

Modifica los settings editables del Admin (interruptores de SMS/Telegram y preferences).

Método URI Cabeceras
PATCH /companies/{companyId}/admins/{adminId}/settings Authorization
{
    "enable_sms": "boolean",
    "enable_order_created_sms": "boolean",
    "enable_payment_registered_sms": "boolean",
    "enable_manual_payment_reported_sms": "boolean",
    "enable_order_canceled_sms": "boolean",
    "enable_support_sms": "boolean",
    "enable_telegram_rates": "boolean",
    "enable_telegram_orders": "boolean",
    "enable_telegram_reminders": "boolean",
    "enable_telegram_alerts": "boolean",
    "preferences": "array"
}

Vincular Admin

Asignar un rol a un administrador

Enlaza el AdminType indicado como rol del Admin.

Método URI Cabeceras
PUT /companies/{companyId}/admins/{adminId}/admin-types/{adminTypeId} Authorization

Desvincular Admin

Quitar un rol de un administrador

Elimina el enlace entre el Admin y el AdminType indicado.

Método URI Cabeceras
DELETE /companies/{companyId}/admins/{adminId}/admin-types/{adminTypeId} Authorization

Sincronizar Admin

Sincronizar Admin de Client

Asignar los administradores de un cliente

Reemplaza el conjunto de Admin asociados al cliente por el enviado.

Método URI Cabeceras
PUT /companies/{companyId}/clients/{clientId}/admins Authorization
[
    "integer"
]

Acciones de Admin

Ver el perfil de cliente de un administrador

{info} Soporta: Carga dinámica

Devuelve el Client asociado a la cuenta del administrador (lo crea si no existe), para que el administrador pueda actuar como cliente.

Método URI Cabeceras
GET /companies/{companyId}/admins/{adminId}/client Authorization

Subir el avatar de un administrador

Guarda el archivo como avatar_url del Admin.

Método URI Cabeceras
POST /companies/{companyId}/admins/{adminId}/upload-avatar Authorization
{
    "avatar": "required|image|mimes:jpeg,png,bmp|max:2048|dimensions:ratio=1/1"
}

Subir de nivel a un administrador

Aumenta el type de la cuenta del Admin (más nivel de acceso).

Método URI Cabeceras
POST /companies/{companyId}/admins/{adminId}/upgrade Authorization

Bajar de nivel a un administrador

Reduce el type de la cuenta del Admin (menos nivel de acceso).

Método URI Cabeceras
POST /companies/{companyId}/admins/{adminId}/downgrade Authorization

Marcar a un administrador en línea

Pone is_status_online y actualiza online_at del Admin.

Método URI Cabeceras
POST /companies/{companyId}/admins/{adminId}/set-online Authorization

Marcar a un administrador desconectado

Quita is_status_online del Admin.

Método URI Cabeceras
POST /companies/{companyId}/admins/{adminId}/set-offline Authorization

Marcar el administrador principal de un cliente

Fija cuál de los Admin asociados al cliente es el principal.

Método URI Cabeceras
POST /companies/{companyId}/clients/{clientId}/admins/{adminId}/set-main Authorization

Ver los ajustes editables de un administrador

Devuelve las claves de settings que el rol actual puede modificar (interruptores de SMS/Telegram y preferences), con sus reglas.

Método URI Cabeceras
GET /companies/{companyId}/admins/{adminId}/allowed-settings Authorization

Relaciones