Perfil y contraseña
Consultar los datos del cliente, editar su perfil y cambiar su contraseña.
Consultar el perfil
GET /api/v1/ecommerce/user
No recibe parámetros.
Respuesta
{
"success": true,
"message": "",
"data": {
"id": 152,
"name": "María",
"last_name": "Quispe",
"email": "[email protected]",
"phone": "987654321",
"api_token": "<token-del-cliente>",
"has_verified_email": true,
"avatar": "https://tienda.ejemplo.com/storage/avatars/abc.png",
"extras": { "lang": "es", "theme": "light", "country_id": "PE" },
"country": { "id": "PE", "description": "PERU", "code": "+51" },
"orders": 2,
"created_at": "15-03-2026 10:22:05"
}
}
| Campo | Tipo | Qué es |
|---|---|---|
name, last_name |
texto o null | Nombre y apellidos |
email |
texto | Correo del cliente |
phone |
texto o null | Teléfono |
api_token |
texto | El token del cliente. Trátalo como una contraseña: no lo muestres ni lo guardes en registros |
has_verified_email |
booleano | Si el correo está verificado |
avatar |
texto | Dirección de la foto de perfil, o de una imagen genérica si no tiene |
extras |
objeto | Preferencias del cliente: idioma, tema y país |
country |
objeto | País del cliente: id es el código de 2 letras (PE), description el nombre y code el prefijo telefónico con el signo +, por ejemplo +51. Son los mismos valores que devuelve la lista de países |
orders |
entero | Pedidos en curso del cliente |
created_at |
texto | Fecha de alta, en formato dd-mm-aaaa hh:mm:ss |
Editar el perfil
POST /api/v1/ecommerce/users/update
Cuerpo
| Campo | Tipo | Obligatorio | Reglas |
|---|---|---|---|
country_id |
texto | Sí | Código de un país activo, por ejemplo PE |
name |
texto | No | Máximo 200 caracteres |
last_name |
texto | No | Máximo 200 caracteres |
phone |
texto | No | Exactamente 9 cifras |
avatar |
texto | No | Imagen PNG o JPG en base64 (con o sin el prefijo data:image/png;base64,), de hasta 2 MB. Se guarda a 300 × 300 píxeles |
extras |
objeto | No | Solo admite lang (hasta 10 caracteres), theme (hasta 20) y country_id (2 letras de un país activo) |
{
"country_id": "PE",
"name": "María",
"last_name": "Quispe",
"extras": { "lang": "es", "theme": "dark" }
}
Cómo se aplican los cambios:
- Un campo que no se envía no cambia.
nameylast_namevacíos tampoco cambian.phonevacío onullborra el teléfono. Si no quieres tocarlo, no envíes la clave.extrasse combina con las preferencias que ya había: las claves que no envíes se conservan.- El teléfono se cambia sin verificarlo. Para un cambio verificado, usa cambiar el email o el teléfono.
Respuesta
No devuelve el perfil. Para ver los datos actualizados, vuelve a consultarlo.
{ "success": true, "message": "Información del usuario actualizada de forma correcta.", "data": null }
Si algo sale mal
| HTTP | code | Cuándo | Qué hacer |
|---|---|---|---|
| 422 | VALIDATION_ERROR |
Falta el país, el teléfono no tiene 9 cifras, la imagen no es válida o extras trae una clave desconocida |
Corrige el campo que indica errors |
Cambiar la contraseña
POST /api/v1/ecommerce/users/change-password
Cuerpo
| Campo | Tipo | Obligatorio | Reglas |
|---|---|---|---|
current_password |
texto | Sí | La contraseña actual |
password |
texto | Sí | Entre 6 y 200 caracteres |
password_confirmation |
texto | Sí | Igual a password |
{
"current_password": "clave-actual",
"password": "clave-nueva",
"password_confirmation": "clave-nueva"
}
Respuesta
{ "success": true, "message": "Contraseña del usuario actualizada de forma correcta.", "data": null }
El token del cliente no cambia: las sesiones abiertas en otros dispositivos siguen activas. Para cerrarlas, usa cerrar sesión.
Si algo sale mal
| HTTP | code | Cuándo | Qué hacer |
|---|---|---|---|
| 422 | CURRENT_PASSWORD_INCORRECT |
La contraseña actual no es correcta | Pide al cliente que la revise |
| 422 | VALIDATION_ERROR |
Falta un campo, la nueva es demasiado corta o no coincide con la confirmación | Corrige el campo que indica errors |