User
🖊️ Actualizar el prefil
Section titled “🖊️ Actualizar el prefil”🔗 Endpoint
Section titled “🔗 Endpoint”PUT /user-endpoints/update-profile📚 Descripción
Section titled “📚 Descripción”El endpoint permite actualizar perfil, teléfono, direcciones de facturación y direcciones postales del usuario autenticado.
🧪 Ejemplo de uso
Section titled “🧪 Ejemplo de uso”http://localhost:1337/api/user-endpoints/update-profile📦 Body completo
Section titled “📦 Body completo”{ "name": "Juan", "surname": "Pérez", "phone": "+34600111222", "birthday": "1995-04-12", "newsletter": true, "billingAddress": { "address": "Calle Mayor 12", "postalCode": "28013", "city": "Madrid", "countryCode": "ES", "phone": "+34910000000" }, "mailingAddress": { "address": "Av. Libertad 55", "postalCode": "28014", "city": "Madrid", "countryCode": "ES", "phone": "+34910000001" }}📤 Ejemplo de respuesta
Section titled “📤 Ejemplo de respuesta”{ "id": 123, "documentId": "xxxxxx", "email": "user@example.com", "name": "Juan", "surname": "Pérez", "phone": "+34600111222", "billingAddress": { "address": "Calle Mayor 12", "postalCode": "28013", "city": "Madrid", "country": "Spain", "countryCode": "ES", "phone": "+34910000000" }, "mailingAddress": { "address": "Av. Libertad 55", "postalCode": "28014", "city": "Madrid", "country": "Spain", "countryCode": "ES", "phone": "+34910000001" }}📝 Registrar usuario
Section titled “📝 Registrar usuario”🔗 Endpoint
Section titled “🔗 Endpoint”POST /user-endpoints/register📚 Descripción
Section titled “📚 Descripción”Este endpoint permite registrar un usuario:
Valida la estructura y los campos obligatorios del payload.
Normaliza direcciones (billingAddress y mailingAddress) usando countryCode si no hay country.
Verifica que el usuario no exista previamente.
Guarda el usuario en la base de datos Strapi con los campos proporcionados.
Envía un correo de bienvenida según vertical e idioma detectado.
🧪 Ejemplo de uso
Section titled “🧪 Ejemplo de uso”http://localhost:1337/api/user-endpoints/register📦 Body completo
Section titled “📦 Body completo”✅ Obligatorios
Section titled “✅ Obligatorios”| Campo | Tipo | Descripción |
|---|---|---|
email | string | Email del usuario |
password | string | Contraseña (validación de patrón incluida) |
nameLastName | string | Nombre completo del usuario |
identificationNumber | string | Número de identificación del usuario |
⚙️ Opcionales
Section titled “⚙️ Opcionales”| Campo | Tipo | Descripción |
|---|---|---|
phone | string | Teléfono de contacto |
language | string | Código de idioma (en, es, etc.). Se detecta automáticamente si no se proporciona |
vertical | string | Vertical del usuario (ej. fitness). Valor por defecto aplicado si no se proporciona |
billingAddress | object | Dirección de facturación. Puede incluir country, countryCode, street, city, postalCode |
mailingAddress | object | Dirección de envío. Igual estructura que billingAddress |
{ "email": "usuario@example.com", "password": "Str0ngP@ssword!", "nameLastName": "Juan Pérez", "identificationNumber": "123456789", "phone": "+34123456789", "language": "es", "vertical": "fitness", "billingAddress": { "street": "Calle Falsa 123", "city": "Madrid", "postalCode": "28001", "countryCode": "ES" }, "mailingAddress": { "street": "Calle Verdadera 456", "city": "Madrid", "postalCode": "28002", "country": "Spain" }}📤 Ejemplo de respuesta
Section titled “📤 Ejemplo de respuesta”{ "id": 101, "email": "usuario@example.com", "username": "usuario@example.com", "nameLastName": "Juan Pérez", "phone": "+34123456789", "identificationNumber": "123456789", "language": "es", "vertical": "fitness", "billingAddress": { "street": "Calle Falsa 123", "city": "Madrid", "postalCode": "28001", "country": "Spain", "countryCode": "ES" }, "mailingAddress": { "street": "Calle Verdadera 456", "city": "Madrid", "postalCode": "28002", "country": "Spain" }, "role": 1}⚠️📧 Email existente
Section titled “⚠️📧 Email existente”🔗 Endpoint
Section titled “🔗 Endpoint”POST /login-user/exists-email-vertical📚 Descripción
Section titled “📚 Descripción”Verifica si un email ya existe en el sistema y si requiere restablecimiento de contraseña para usuarios importados desde WordPress.
🧪 Ejemplo de uso
Section titled “🧪 Ejemplo de uso”http://localhost:1337/api/login-user/exists-email-vertical📦 Body completo
Section titled “📦 Body completo”| Campo | Tipo | Descripción |
|---|---|---|
email | string | Email del usuario a verificar |
✅ Ejemplo de request
Section titled “✅ Ejemplo de request”{ "email": "usuario@example.com"}📤 Ejemplo de respuesta
Section titled “📤 Ejemplo de respuesta”👤 Usuario existe
Section titled “👤 Usuario existe”{ "status": 200, "code": "EMAIL_EXISTS", "message": "The email exists in the system", "exists": true, "isWordpressUser": false}⚠️👤 Usuario existe en WordPress
Section titled “⚠️👤 Usuario existe en WordPress”{ "status": 200, "code": "PASSWORD_RESET_REQUIRED", "message": "The user needs to reset the password", "exists": true, "isWordpressUser": true}🟥👤 Usuario no existe
Section titled “🟥👤 Usuario no existe”{ "status": 411, "code": "EMAIL_NOT_FOUND", "message": "The email does not exist", "exists": false}🔑 Login
Section titled “🔑 Login”🔗 Endpoint
Section titled “🔗 Endpoint”POST /user-endpoints/login📚 Descripción
Section titled “📚 Descripción”Permite que un usuario inicie sesión en el sistema. Valida credenciales, detecta usuarios importados de WordPress y devuelve un JWT para autenticación.
🧪 Ejemplo de uso
Section titled “🧪 Ejemplo de uso”http://localhost:1337/api/user-endpoints/login📦 Body completo
Section titled “📦 Body completo”| Campo | Tipo | Descripción |
|---|---|---|
email | string | Email del usuario |
password | string | Contraseña del usuario |
✅ Ejemplo de request
Section titled “✅ Ejemplo de request”{ "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": 101, "documentId": "ABC123", "username": "usuario@example.com", "email": "usuario@example.com", "confirmed": true, "phone": "+34123456789", "origin": "internal", "identificationNumber": "123456789", "nameLastName": "Juan Pérez" }}👤🔄 Migracion usuario
Section titled “👤🔄 Migracion usuario”🔗 Endpoint
Section titled “🔗 Endpoint”POST /user-endpoints/migrate📚 Descripción
Section titled “📚 Descripción”Permite migrar un usuario desde WordPress al sistema Strapi, creando un nuevo usuario
🧪 Ejemplo de uso
Section titled “🧪 Ejemplo de uso”http://localhost:1337/api/user-endpoints/migrate📦 Body completo
Section titled “📦 Body completo”| Campo | Tipo | Descripción |
|---|---|---|
email | string | Email del usuario a migrar |
origin | string | Origen del usuario (ej. wordpress) |
nameLastName | string | Nombre completo del usuario |
identificationNumber | string | Número de identificación del usuario |
phone | string | Teléfono del usuario |
billingAddress | object | Dirección de facturación. Puede incluir street, city, postalCode, country, countryCode |
mailingAddress | object | Dirección de envío. Igual estructura que billingAddress |
✅ Ejemplo de request
Section titled “✅ Ejemplo de request”{ "email": "usuario@example.com", "origin": "wordpress", "nameLastName": "Juan Pérez", "identificationNumber": "123456789", "phone": "+34123456789", "billingAddress": { "street": "Calle Falsa 123", "city": "Madrid", "postalCode": "28001", "countryCode": "ES" }, "mailingAddress": { "street": "Calle Verdadera 456", "city": "Madrid", "postalCode": "28002", "country": "Spain" }}📤 Ejemplo de respuesta
Section titled “📤 Ejemplo de respuesta”{ "id": 101, "email": "usuario@example.com", "username": "usuario@example.com", "nameLastName": "Juan Pérez", "identificationNumber": "123456789", "phone": "+34123456789", "origin": "wordpress", "isFromWordpress": true, "billingAddress": { "street": "Calle Falsa 123", "city": "Madrid", "postalCode": "28001", "country": "Spain", "countryCode": "ES" }, "mailingAddress": { "street": "Calle Verdadera 456", "city": "Madrid", "postalCode": "28002", "country": "Spain" }, "role": 1}🔑🔄 Restablecer contraseña
Section titled “🔑🔄 Restablecer contraseña”📚 Descripción
Section titled “📚 Descripción”Permite a un usuario restablecer su contraseña mediante un token de reseteo válido enviado previamente por email.
🔗 Endpoint
Section titled “🔗 Endpoint”POST /user-endpoints/password-reset🧪 Ejemplo de uso
Section titled “🧪 Ejemplo de uso”http://localhost:1337/api/user-endpoints/password-reset📦 Body completo
Section titled “📦 Body completo”| Campo | Tipo | Descripción |
|---|---|---|
password | string | Nueva contraseña del usuario. Debe cumplir el patrón de seguridad definido en FIELD_VALIDATIONS.password. |
code | string | Token de reseteo enviado al email del usuario. |
lang | string (opcional) | Código de idioma para el correo de confirmación (ej. en, es). Si no se proporciona, se usa un valor por defecto. |
✅ Ejemplo de request
Section titled “✅ Ejemplo de request”{ "password": "N3wStr0ngP@ssword!", "code": "abc123resetcode", "lang": "es"}📤 Ejemplo de respuesta
Section titled “📤 Ejemplo de respuesta”{ "code": "PASSWORD_UPDATED", "message": "Password updated successfully."}👤📋 Lista de usuarios
Section titled “👤📋 Lista de usuarios”🔗 Endpoint
Section titled “🔗 Endpoint”GET /user-endpoints/users📚 Descripción
Section titled “📚 Descripción”Permite obtener una lista completa de usuarios en el sistema.
🧪 Ejemplo de uso
Section titled “🧪 Ejemplo de uso”http://localhost:1337/api/user-endpoints/users📤 Ejemplo de respuesta
Section titled “📤 Ejemplo de respuesta”[ { "id": 1, "email": "admin@example.com", "username": "admin@example.com", "nameLastName": "Admin User", "role": { "name": "ADMINISTRATOR", "id": 1 }, "phone": "+34123456789", "origin": "local", "billingAddress": { "street": "Calle Falsa 123", "city": "Madrid", "postalCode": "28001", "country": "Spain", "countryCode": "ES" }, "mailingAddress": { "street": "Calle Verdadera 456", "city": "Madrid", "postalCode": "28002", "country": "Spain" } }, { "id": 2, "email": "user@example.com", "username": "user@example.com", "nameLastName": "User Example", "role": { "name": "USER", "id": 2 }, ... }]