Cuenta de usuario: es lo que permite registrarse, iniciar sesión e identificarse en la API.
Cada cuenta es de un solo tipo y tiene exactamente un perfil asociado según ese tipo:
Client, Provider o Admin (relación user).
type)type codifica el rol como un valor de bits crecientes: client (0x00), provider (0x0f),
seller_admin (0x30), low_admin (0x70), high_admin (0x77), owner_admin (0x7f) y
super_admin (0xff). type_name (client / provider / admin) resume el grupo y se
calcula al crear. accessLevel() va de 0 (cliente/repartidor) a 5 (super admin).
status, bitmask)El ide-helper expone los bits de status como propiedades; ojo con los invertidos:
is_status_disabled: cuenta deshabilitada por un administrador.is_status_blocked: cuenta bloqueada (por ejemplo por fraude).is_phone_verified / is_email_verified: invertidos — el bit puesto significa "sin
verificar"; la propiedad devuelve true cuando SÍ está verificado.is_identity_verified: identidad (documento) verificada.is_active: true si el grupo de bits de estado (0xf00) está a cero, es decir sin
restricciones. El accesor is_restricted es lo contrario (disabled o blocked).status_info es el resumen legible (disabled, blocked, unverified, unconfirmed,
active). Los endpoints disable / block / activate cambian estos bits.
La cuenta es "balance owner": balance_e2 y derivados (todos en céntimos) son su monedero;
available_balance_e2 suma el crédito setting_balance_credit_e2.
settings)Casi todos los setting_* son tokens internos (Firebase, sesión, sockets, verificación) y no
se editan por la API. El sub-recurso accounts/{id}/settings sólo expone last_seen (lectura)
y permite editar telegram_id y telegram_actions.
password se cifra automáticamente al asignarlo; nunca se devuelve.email lo propaga al perfil.| Atributo | Tipo | Descripción |
|---|---|---|
id |
int |
|
email |
string |
Correo de la cuenta; único por compañía. |
password |
string |
Contraseña cifrada (bcrypt); oculta en la respuesta. |
type |
int |
Rol de la cuenta como valor de bits (ver la lista de tipos arriba). |
status |
int |
Estado de la cuenta como bitmask; ver los bits is_status_* / is_*_verified arriba. |
remember_token |
string\|null |
Token "recordarme" de sesión; 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. |
company_id |
int |
Compañía dueña de la cuenta (oculto en la respuesta). |
type_name |
string\|null |
Grupo del tipo: client, provider o admin. |
is_status_disabled |
bool |
BitMask (({@link self::status} & 0x100) !== 0) |
is_status_blocked |
bool |
BitMask (({@link self::status} & 0x200) !== 0) |
is_phone_verified |
bool |
BitMask (({@link self::status} & 0x400) === 0) |
is_email_verified |
bool |
BitMask (({@link self::status} & 0x800) === 0) |
is_identity_verified |
bool |
BitMask (({@link self::status} & 0x2000) !== 0) |
is_active |
bool |
BitMask ((({@link self::status} & 0xf00) >> 8) === 0) |
setting_last_notification_id |
int |
Atajo del ajuste last_notification_id: última notificación entregada a la cuenta. |
setting_firebase_token |
Token\|null |
Atajo del ajuste firebase_token: token de push de Firebase. |
setting_confirmation_token |
array\|null |
Atajo del ajuste confirmation_token: token de confirmación de correo. |
setting_phone_token |
Token\|null |
Atajo del ajuste phone_token: token de verificación de teléfono. |
setting_email_token |
Token\|null |
Atajo del ajuste email_token: token de verificación de correo. |
setting_session_token |
array\|null |
Atajo del ajuste session_token: token de la sesión activa. |
setting_socket_token |
array\|null |
Atajo del ajuste socket_token: token para el canal de sockets. |
setting_last_seen |
datetime\|null |
Atajo del ajuste last_seen: última conexión de la cuenta. |
setting_telegram_id |
string\|null |
Atajo del ajuste telegram_id: id de Telegram enlazado (editable). |
setting_telegram_actions |
array |
Atajo del ajuste telegram_actions: acciones pendientes del bot de Telegram (editable). |
setting_sockette_token |
string\|null |
Atajo del ajuste sockette_token: token del servicio Sockette. |
setting_sockette_channels |
array |
Atajo del ajuste sockette_channels: canales suscritos en Sockette. |
setting_ignores_city_balance |
bool |
Atajo del ajuste ignores_city_balance: excluye el saldo de la cuenta del cómputo de deudas de la ciudad. |
setting_confirmed_at |
datetime\|null |
Atajo del ajuste confirmed_at: fecha de confirmación del correo. |
setting_balance_credit_e2 |
int\|null |
Atajo del ajuste balance_credit_e2: crédito adicional que suma al saldo disponible (céntimos). |
setting_phone_verified_at |
datetime\|null |
Atajo del ajuste phone_verified_at: fecha de verificación del teléfono. |
setting_identity_verified_at |
datetime\|null |
Atajo del ajuste identity_verified_at: fecha de verificación de la identidad. |
activeBalanceModifiers |
BalanceModifier> |
Modificadores de saldo promocional vigentes de la cuenta. |
admin |
Admin\|null |
Perfil de administrador, si type_name = admin. |
allLogs |
ApiLog> |
Registros de auditoría de la API, incluidos los internos. |
allSettings |
AccountSetting> |
Todos los ajustes de la cuenta (oculto en la respuesta). |
allowed_settings |
array |
Claves de ajuste visibles para el rol actual. |
available_balance_e2 |
int |
Saldo disponible incluyendo el crédito de la cuenta (céntimos). |
available_for_withdrawal_balance_e2 |
int |
Saldo disponible para retiro (céntimos). |
balance_e2 |
int |
Saldo del monedero de la cuenta (céntimos). |
balanceModifiers |
BalanceModifier> |
Modificadores de saldo promocional de la cuenta. |
balanceMovements |
BalanceMovement> |
Movimientos del monedero de la cuenta. |
client |
Client\|null |
Perfil de cliente, si type_name = client. |
company |
Company |
Compañía dueña de la cuenta. |
editable_settings |
array |
Claves de ajuste editables por el rol actual. |
is_email_valid |
bool |
true si el email tiene formato válido. |
is_phone_user |
bool |
true si la cuenta se registró con teléfono (no correo real). |
is_profile_completed |
bool |
true si el perfil asociado tiene los datos mínimos (por ejemplo teléfono del cliente). |
is_restricted |
bool |
true si la cuenta está deshabilitada o bloqueada. |
lastBalanceMovement |
BalanceMovement\|null |
Último movimiento del monedero de la cuenta. |
locked_for_withdrawal_balance_e2 |
int |
Saldo bloqueado para retiro (céntimos). |
logs |
ApiLog> |
Registros de auditoría de la API visibles. |
notifications |
DatabaseNotification> |
Notificaciones de la cuenta. |
provider |
Provider\|null |
Perfil de repartidor, si type_name = provider. |
settings |
array |
Ajustes de la cuenta visibles para el rol actual. |
settingsFirebaseToken |
AccountSetting\|null |
Ajuste con el token de Firebase de la cuenta. |
settingsLastSeen |
AccountSetting\|null |
Ajuste con la última conexión de la cuenta. |
status_info |
array |
Resumen legible del estado (disabled, blocked, unverified, unconfirmed, active). |
tokens |
AccessToken> |
Tokens de acceso emitidos para la cuenta. |
{
"id": 175,
"email": "pedrop@manzanares.com.ve",
"type": 255,
"status": 37104,
"created_at": "2020-04-20 15:24:38",
"updated_at": "2023-11-14 17:15:59",
"deleted_at": null,
"type_name": "admin",
"is_status_disabled": false,
"is_status_blocked": false,
"is_phone_verified": true,
"is_email_verified": true,
"is_identity_verified": false,
"is_active": true,
"status_info": {
"disabled": false,
"blocked": false,
"unverified": false,
"unconfirmed": false,
"active": true
}
}
{info} Soporta: Paginación Filters Carga dinámica
Listar cuentas
Devuelve las Account de la compañía, paginadas. El filtro de texto busca por correo y por los datos del perfil (cliente, repartidor o administrador).
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/accounts |
Authorization |
Devuelve los settings de la Account visibles para el rol actual
(last_seen).
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/accounts/{accountId}/settings |
Authorization |
Ver una cuenta
Devuelve la Account indicada con su status_info.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/accounts/{accountId} |
Authorization |
Modifica los settings editables de la Account (telegram_id,
telegram_actions).
| Método | URI | Cabeceras |
|---|---|---|
| PATCH | /companies/{companyId}/accounts/{accountId}/settings |
Authorization |
{
"telegram_id": "string",
"telegram_actions": "array",
"balance_credit_e2": "nullable|integer|min:0"
}
Eliminar una cuenta
Hace un borrado lógico de la Account y de su perfil asociado.
| Método | URI | Cabeceras |
|---|---|---|
| DELETE | /companies/{companyId}/accounts/{accountId} |
Authorization |
Restaurar una cuenta
Revierte el borrado lógico de la Account y de su perfil asociado.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/restore |
Authorization |
Valida el code enviado por SMS y marca el teléfono de la Account como
verificado (is_phone_verified).
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/verify-phone/{code} |
N/A |
{
"phone": "required|string"
}
| Código | HTTP | Cuándo ocurre |
|---|---|---|
EB107 |
403 | El código de verificación ha caducado. |
EB108 |
403 | El código de verificación no coincide. |
EB109 |
403 | El token de verificación es incorrecto. |
EB121 |
409 | El teléfono ya está en uso por otra cuenta. |
Envía por SMS un código para verificar el teléfono de la Account.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/send-phone-code |
N/A |
{
"phone": "required|string"
}
| Código | HTTP | Cuándo ocurre |
|---|---|---|
EB110 |
400 | Hay que esperar antes de volver a solicitar un código para ese teléfono. |
EB121 |
409 | El teléfono ya está en uso por otra cuenta. |
Devuelve la Account autenticada.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/accounts/me |
Authorization |
Pone is_status_disabled en la Account; la cuenta queda restringida y no
puede operar.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/disable |
Authorization |
Pone is_status_blocked en la Account (bloqueo por fraude u otra causa
grave).
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/block |
Authorization |
Quita los bits is_status_disabled / is_status_blocked de la Account.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/activate |
Authorization |
Fija una nueva contraseña de la Account tras comprobar la anterior.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/update-password |
Authorization |
{
"new_password": "required|min:5"
}
| Código | HTTP | Cuándo ocurre |
|---|---|---|
EB111 |
401 | La contraseña actual (old_password) no coincide. |
Cambia el email de la Account; el cambio se propaga al perfil asociado.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/accounts/{accountId}/update-email |
Authorization |
{
"email": "required|email:rfc,filter"
}
Devuelve las claves de settings que el rol actual puede modificar (telegram_id,
telegram_actions), con sus reglas.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/accounts/{accountId}/allowed-settings |
Authorization |
activeBalanceModifiers HasMany BalanceModifieradmin HasOne AdminallLogs HasMany ApiLogbalanceModifiers HasMany BalanceModifierbalanceMovements HasMany BalanceMovementclient HasOne Clientcompany BelongsTo CompanylastBalanceMovement HasOne BalanceMovementlogs HasMany ApiLogprovider HasOne ProvidersettingsFirebaseToken HasOne AccountSettingsettingsLastSeen HasOne AccountSettingtokens HasMany AccessToken