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).
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.
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). |
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.| 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
}
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"
}
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"
}
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"
}
Guarda el token que enlaza al Admin con el chatbot de WhatsApp.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/admins/{adminId}/whatsapp-token |
Authorization |
| Código | HTTP | Cuándo ocurre |
|---|---|---|
ER400 |
400 | El chatbot de WhatsApp no está configurado en la compañía. |
{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 |
{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 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 |
Devuelve los settings del Admin visibles para el rol actual
(preferences).
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/admins/{adminId}/settings |
Authorization |
{info} Soporta: Carga dinámica
Ver un administrador
Devuelve el Admin indicado.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/admins/{adminId} |
Authorization |
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"
}
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"
}
Enlaza el AdminType indicado como rol del Admin.
| Método | URI | Cabeceras |
|---|---|---|
| PUT | /companies/{companyId}/admins/{adminId}/admin-types/{adminTypeId} |
Authorization |
Elimina el enlace entre el Admin y el AdminType indicado.
| Método | URI | Cabeceras |
|---|---|---|
| DELETE | /companies/{companyId}/admins/{adminId}/admin-types/{adminTypeId} |
Authorization |
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"
]
{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 |
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"
}
Aumenta el type de la cuenta del Admin (más nivel de acceso).
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/admins/{adminId}/upgrade |
Authorization |
Reduce el type de la cuenta del Admin (menos nivel de acceso).
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/admins/{adminId}/downgrade |
Authorization |
Pone is_status_online y actualiza online_at del Admin.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/admins/{adminId}/set-online |
Authorization |
Quita is_status_online del Admin.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/admins/{adminId}/set-offline |
Authorization |
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 |
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 |
accesses HasMany AdminAccessaccount BelongsTo AccountadminType BelongsTo AdminTypeallLogs HasMany ApiLogassociatedClients HasMany Clientcity BelongsTo Citycompany BelongsTo Companylogs HasMany ApiLogroles HasMany AdminTypeRole