Prima-Back
  1. Vendedores Operaciones
Prima-Back
  • API DOCUMENTATION
  • Principal
    • /
      GET
  • Modulo Administradores
    • Vendedores Operaciones
      • Registro de Vendedores
        POST
      • Visualizar Vendedores
        GET
      • Visualizar Vendedores por Mongo ID
        GET
      • Visualizar Vendedores por cedula
        GET
      • Actualizar Vendedor
        PATCH
      • Eliminar Vendedor
        DELETE
    • Estadisticas
      • Estadisticas de documentos
      • Visualizacion de top Vendedores
      • Visualizar Ventas por Vendedor
    • Login Administradores
      POST
    • Recuperacion de contraseña Administrador
      POST
  • Modulo Vendedores
    • Inicio de Sesión Vendedores
      POST
    • Confirmación de Cuenta
      GET
    • Solicitud de restablecimiento de contraseña
      POST
    • Restablecimiento de contraseña
      POST
  • Modulo Clientes
    • Registrar Cliente
      POST
    • Visualizar Clientes
      GET
    • Visualizar Clientes por RUC
      GET
    • Actualizar Cliente
      PATCH
    • Eliminar Cliente
      DELETE
  • Modulo Productos
    • Crear Producto
      POST
    • Visualizar Productos
      GET
    • Visualizar Productos por ID
      GET
    • Actualizar Producto
      PATCH
    • Eliminar Producto
      DELETE
  • Modulo Pedidos
    • Crear Orden
    • Visualizar Ordenes
    • Visualizar Ordenes por ID
    • Actualizar Orden
    • Actualizar Estado de Orden
    • Eliminar Orden
  1. Vendedores Operaciones

Registro de Vendedores

POST
/api/register

📝 POST /register#

Registra un nuevo vendedor en el sistema, genera un nombre de usuario único y una contraseña temporal, y envía un correo de confirmación con las credenciales y enlace de activación.

📍 Ruta#

POST /api/register

📝 Descripción#

Este endpoint permite registrar un nuevo vendedor, creando un nombre de usuario único y una contraseña temporal. Además, se envía un correo de confirmación con las credenciales y un enlace de activación.

🔐 Autenticación#

✅ Requiere token JWT válido de administrador
Encabezado: Authorization: Bearer <token>

🧰 Middleware#

1.
verificarAutenticacion
2.
validateCreateSeller (de auth_validator.js)
3.
validateRequest (manejo de errores de validación)

📦 Request Body#

{
  "email": "string (requerido, único)",
  "cedula": "number (requerido, único)",
  "names": "string (requerido)",
  "lastNames": "string (requerido)",
  "PhoneNumber": "number (requerido)",
  "SalesCity": "string (requerido)"
}

✅ Respuestas#

✔️ 201 Created – Vendedor registrado y correo enviado#

{
  "status": "success",
  "code": "SELLER_REGISTERED",
  "msg": "Vendedor registrado exitosamente.",
  "notification": "Se ha enviado un correo a {email} para confirmar el registro y se ha generado un usuario y una contraseña temporal.",
  "data": {
    "_id": "ObjectId",
    "names": "string",
    "lastNames": "string",
    "cedula": number,
    "email": "string",
    "username": "string",
    "PhoneNumber": number,
    "SalesCity": "string",
    "role": "string",
    "status": false,
    "confirmEmail": false
  },
  "info": {
    "emailDetails": {
      "sent": true,
      "message": "Correo enviado correctamente."
    }
  }
}

⚠️ 201 Created – Vendedor creado, fallo en envío de correo#

{
  "status": "warning",
  "code": "SELLER_CREATED_EMAIL_FAILED",
  "msg": "Vendedor registrado exitosamente, pero hubo un problema al enviar el correo de confirmación.",
  "notification": "Verifica tu bandeja de entrada o contacta a soporte si no recibes el correo.",
  "data": { /* igual que en SELLER_REGISTERED */ },
  "info": {
    "emailDetails": {
      "sent": false,
      "message": "Error específico del servicio de correo (ej: 'Connection refused')."
    }
  }
}

❌ Errores#

🚫 400 Bad Request – Campo faltante#

{
  "status": "error",
  "code": "MISSING_FIELD",
  "msg": "Faltan campos requeridos. Asegúrate de incluir email, cedula, names, lastNames, PhoneNumber y SalesCity.",
  "info": {
    "missingFields": ["email", "cedula"]
  }
}

🚫 400 Bad Request – Error de validación#

{
  "status": "error",
  "code": "VALIDATION_ERROR",
  "msg": "Errores de validación en la solicitud.",
  "errors": [
    {
      "type": "field",
      "value": "correo-invalido",
      "msg": "El email no tiene un formato válido.",
      "path": "email",
      "location": "body"
    },
    {
      "type": "field",
      "value": "123",
      "msg": "La cédula debe ser un número válido.",
      "path": "cedula",
      "location": "body"
    }
    // …
  ]
}

🚫 401 Unauthorized – Token inválido o ausente#

{
  "status": "error",
  "code": "UNAUTHORIZED",
  "msg": "Acceso no autorizado. Se requiere token de autenticación válido."
}

🚫 409 Conflict – Email o cédula ya existe#

{
  "status": "error",
  "code": "RESOURCE_ALREADY_EXISTS",
  "msg": "El email 'ejemplo@correo.com' ya se encuentra registrado.",
  "info": {
    "field": "email",
    "value": "ejemplo@correo.com"
  }
}
{
  "status": "error",
  "code": "RESOURCE_ALREADY_EXISTS",
  "msg": "El número de cédula '1234567890' ya se encuentra registrado.",
  "info": {
    "field": "cedula",
    "value": 1234567890
  }
}

💥 500 Internal Server Error – Error inesperado#

{
  "status": "error",
  "code": "SERVER_ERROR",
  "msg": "Ha ocurrido un error inesperado al registrar el vendedor. Intente de nuevo más tarde.",
  "info": {
    "detail": "Detalle interno (ej: 'Database connection failed')",
    "emailAttempted": true,
    "emailDetails": {
      "sent": false,
      "message": "Error del servicio de correo si ocurrió antes del fallo principal"
    }
  }
}
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://back-prima-s-a.onrender.com/api/register' \
--header 'User-Agent: insomnia/10.3.0' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NjI0ZjkwNzY2OWM5MDZjYTM0YThkZSIsInJvbCI6ImFkbWluIiwiaWF0IjoxNzM4NjI4MjgxLCJleHAiOjE3Mzg2NTcwODF9.0or08xMGWjpppL1Lm2dGM6yX-5Y6ozETnKFwpXPgxxE' \
--header 'Content-Type: application/json' \
--data-raw '{
	"names": "Carlos",
  "lastNames": "González",
  "numberID": 98765432,
  "email": "firol50016@gholar.com",
  "SalesCity": "Barcelona",
  "PhoneNumber": 698765432,
  "role": "Seller",
  "status": false
}'
Response Response Example
{}

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Header Params
Content-Type
string 
optional
Example:
application/json
User-Agent
string 
optional
Example:
insomnia/10.3.0
Authorization
string 
optional
Example:
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NjI0ZjkwNzY2OWM5MDZjYTM0YThkZSIsInJvbCI6ImFkbWluIiwiaWF0IjoxNzM4NjI4MjgxLCJleHAiOjE3Mzg2NTcwODF9.0or08xMGWjpppL1Lm2dGM6yX-5Y6ozETnKFwpXPgxxE
Body Params application/json
names
string 
required
lastNames
string 
required
numberID
integer 
required
email
string 
required
SalesCity
string 
required
PhoneNumber
integer 
required
role
string 
required
status
boolean 
required
Examples

Responses

🟢200Success
application/json
Body
object {0}
Modified at 2025-06-14 22:37:54
Previous
/
Next
Visualizar Vendedores
Built with