Recuperar la contraseña

Cambiar la contraseña de un cliente que no la recuerda, con un código enviado a su correo o a su teléfono.

3 min de lecturaActualizado el 30 de setiembre de 2026

Cómo funciona

  1. Pide el código con send-code.
  2. El cliente recibe un código de 6 cifras por correo o por SMS.
  3. Opcional: comprueba el código con validate-code, por ejemplo para pasar a la pantalla de la contraseña nueva. No lo gasta.
  4. Cambia la contraseña con change-password, enviando otra vez el código.

El código:

  • vale 30 minutos;
  • admite 3 intentos fallidos entre validate-code y change-password; en el cuarto, la solicitud se anula.

Estas rutas no piden token. Las cuatro comparten un límite de 10 peticiones por minuto.

Parámetros comunes

Parámetro Dónde Cuándo Reglas
type Ruta Siempre email o phone
email Cuerpo Con type = email Email válido, máximo 200 caracteres. Envíalo en minúsculas
phone Cuerpo Con type = phone El número sin prefijo, tal como está en la cuenta. Máximo 15 caracteres
country_code Cuerpo Con type = phone Prefijo del país, por ejemplo +51. Debe existir

Pedir el código

POST /api/v1/ecommerce/reset-password/send-code/{type}

{ "email": "[email protected]" }
{
  "success": true,
  "message": "Se ha enviado un código de verificación al correo electrónico ingresado, reviselo y siga las instrucciones.",
  "data": null
}

Cada llamada anula el código anterior y reinicia los intentos.

Reenviar el código

POST /api/v1/ecommerce/reset-password/resend-code/{type}

Mismo cuerpo que al pedirlo. Genera un código nuevo y amplía la validez otros 30 minutos. Hay que esperar 30 segundos desde que se pidió el código.

Comprobar el código

POST /api/v1/ecommerce/reset-password/validate-code/{type}

Los parámetros comunes más code (6 cifras).

{ "email": "[email protected]", "code": "482913" }
{
  "success": true,
  "message": "Operación realizada de forma correcta.",
  "data": { "code": "482913", "is_valid": true }
}

Un código incorrecto no devuelve is_valid: false: responde con el error VERIFICATION_CODE_INVALID.

Cambiar la contraseña

POST /api/v1/ecommerce/reset-password/change-password/{type}

Los parámetros comunes más:

Campo Tipo Obligatorio Reglas
code texto Sí Exactamente 6 cifras
password texto Sí Entre 6 y 200 caracteres
password_confirmation texto Sí Igual a password
{ "email": "[email protected]", "code": "482913", "password": "clave-nueva", "password_confirmation": "clave-nueva" }
{ "success": true, "message": "La contraseña ha sido restablecida de forma correcta.", "data": null }

Cambiar la contraseña genera un token nuevo: todas las sesiones abiertas del cliente se cierran. Para seguir, el cliente debe iniciar sesión otra vez.

Si algo sale mal

HTTP code Cuándo Qué hacer
400 BAD_REQUEST type no es email ni phone Usa uno de los dos
422 VALIDATION_ERROR Falta un dato, el país no existe o la confirmación no coincide Corrige el campo que indica errors
404 USER_NOT_FOUND No hay ningún cliente con ese email o teléfono Pide al cliente que revise el dato
404 RESET_REQUEST_NOT_FOUND No hay ninguna solicitud pedida Pide el código
422 RESET_REQUEST_EXPIRED Pasaron los 30 minutos Pide un código nuevo
422 VERIFICATION_CODE_INVALID El código es incorrecto. Gasta un intento Revisa el código
422 VERIFICATION_TOO_MANY_ATTEMPTS Se agotaron los 3 intentos Pide un código nuevo
429 RESEND_TOO_SOON Se reenvió antes de 30 segundos Espera y vuelve a intentarlo
429 RATE_LIMITED Más de 10 peticiones por minuto Espera lo que indica Retry-After
500 INTERNAL_ERROR No se pudo enviar el correo o el SMS Reintenta. Si se repite, reporta la reference