Perfil y contraseña

Consultar los datos del cliente, editar su perfil y cambiar su contraseña.

3 min de lecturaActualizado el 30 de setiembre de 2026

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.
  • name y last_name vacíos tampoco cambian.
  • phone vacío o null borra el teléfono. Si no quieres tocarlo, no envíes la clave.
  • extras se 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