Create User
Description
Create a new user.
Authentication
- Required: Yes
- Roles: Any authenticated user
Request
Headers
POST /v1/customer/user
Authorization: Bearer <token>
Content-Type: application/json
Request Body
{
"firstName": "John",
"lastName": "Doe",
"username": "johndoe",
"password": "password123",
"email": "john@example.com",
"phoneNumber": "0123456789",
"description": "User description",
"roleId": 1
}
Field Descriptions
firstName:
- Type: string
- Required: Yes
- Description: User's first name (1-50 characters)
lastName:
- Type: string
- Required: Yes
- Description: User's last name (1-50 characters)
username:
- Type: string
- Required: Yes
- Description: Unique username (3-50 characters, alphanumeric and underscores only)
password:
- Type: string
- Required: Yes
- Description: User's password (6-100 characters)
email:
- Type: string
- Required: No
- Description: User's email address (valid email format)
phoneNumber:
- Type: string
- Required: No
- Description: User's phone number (minimum 5 characters)
description:
- Type: string
- Required: No
- Description: User description (maximum 500 characters)
roleId:
- Type: number
- Required: Yes
- Description: User's role ID (positive integer)
Response
Success Response (201)
{
"data": {
"id": 1,
"firstName": "John",
"lastName": "Doe",
"username": "johndoe",
"email": "john@example.com",
"phoneNumber": "0123456789",
"description": "User description",
"roleId": 1,
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
}
Error Responses
- 401: Authentication required
- 422: Validation errors (see Error Response Format)
Error Codes
- E001_BAD_MISSING_DATA: Missing required fields
- E003_BAD_USER_EXISTS: Username already exists
- E006_BAD_DUPLICATE_PHONE: Phone number already exists
- E007_BAD_DUPLICATE_EMAIL: Email address already exists
Example Usage
curl -X POST https://api.stepx.io.vn/v1/customer/user \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"firstName": "John",
"lastName": "Doe",
"username": "johndoe",
"password": "password123",
"email": "john@example.com",
"roleId": 1
}'
const response = await fetch('https://api.stepx.io.vn/v1/customer/user', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
firstName: 'John',
lastName: 'Doe',
username: 'johndoe',
password: 'password123',
email: 'john@example.com',
roleId: 1
})
});
const data = await response.json();