Skip to main content

POST /api/user/register

Registers a new user in the system with their personal information and credentials. All user data is validated before creating the account, and passwords are securely hashed before storage.

Headers

Content-Type
string
required
Must be application/json

Request Body

document
string
required
User’s identification document number. Must be unique in the system.
email
string
required
User’s email address. Must be unique in the system and will be used for login.
password
string
required
User’s password. Will be hashed using bcrypt before storage.
name
string
required
User’s first name.
last_name
string
required
User’s last name.
cellphone
string
required
User’s mobile phone number.
user_type
string
required
Type of user account (e.g., “admin”, “client”, “contractor”).

Request Example

curl -X POST http://localhost:3000/api/user/register \
  -H "Content-Type: application/json" \
  -d '{
    "document": "1234567890",
    "email": "[email protected]",
    "password": "securePassword123",
    "name": "John",
    "last_name": "Doe",
    "cellphone": "+57 300 123 4567",
    "user_type": "client"
  }'

Response

message
string
Success message confirming user registration.
user
object
The newly created user object.
user.document
string
User’s identification document number.
user.email
string
User’s email address.
user.password
string
Hashed password (bcrypt).
user.name
string
User’s first name.
user.last_name
string
User’s last name.
user.cellphone
string
User’s mobile phone number.
user.user_type
string
Type of user account.
user._id
string
MongoDB generated user ID.
Example Response
{
  "message": "Usuario registrado correctamente",
  "user": {
    "document": "1234567890",
    "email": "[email protected]",
    "password": "$2a$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "name": "John",
    "last_name": "Doe",
    "cellphone": "+57 300 123 4567",
    "user_type": "client",
    "_id": "507f1f77bcf86cd799439011"
  }
}
Returned when validation fails or required fields are missing.
message
string
Error message describing the validation failure.
Missing Required Fields
{
  "message": "Email y contraseña son obligatorios"
}
Email Already Registered
{
  "message": "El correo electrónico ya está registrado"
}
Document Already Registered
{
  "message": "La cédula ya está registrada"
}
Returned when an unexpected server error occurs.
message
string
Error message.
error
string
Detailed error information.
Example Response
{
  "message": "Error al registrar el usuario",
  "error": "Database connection failed"
}

Validation Rules

  • email and password are mandatory fields
  • document must be unique across all users
  • email must be unique across all users
  • All fields defined in the request body are required
  • Password is hashed using bcrypt with a salt round of 10

Implementation Reference

The registration endpoint is implemented in:
  • Route: /home/daytona/workspace/source/src/routes/userRoutes.js:7
  • Controller: /home/daytona/workspace/source/src/controllers/userController.js:4

Build docs developers (and LLMs) love