Nhảy tới nội dung
Phiên bản: 2.3.0

Tạo mới hoặc cập nhật người lao động

Ngày cập nhật: 18 tháng 8, 2026
Người cập nhật: VNPT eContract's team


Mục đích​

Tạo mới hoặc cập nhật thông tin người lao động trong hệ thống, đồng thời tự động tạo/cập nhật tài khoản người dùng (user) liên kết với NLĐ. Đây là bước đầu tiên, cần thực hiện trước khi khởi tạo hợp đồng lao động cho người lao động tương ứng (mục 7.2).

  • Request URL: /api/employees/create-or-update
  • HTTP method: POST
  • HTTP content-type: application/json
  • Authorize: Bearer token
  • Parameter:
KeyTypeDescription
employeeCodestring[Bắt buộc] Mã định danh người lao động (dùng để xác định tạo mới hay cập nhật)
fullNamestring[Bắt buộc] Họ và tên người lao động
dateOfBirthstring[Bắt buộc] Ngày sinh (định dạng: yyyy-MM-dd)
genderint[Bắt buộc] Giới tính theo danh mục hệ thống:
- 1: Nam
- 2: Nữ
identityNumberstring[Bắt buộc] Số CCCD/CMND
emailstring[Bắt buộc] Email người lao động
phoneNumberstring[Bắt buộc] Số điện thoại
socialInsuranceCodestringMã sổ bảo hiểm xã hội
statusint[Bắt buộc] Trạng thái NLĐ (1: Kích hoạt)
workingPositionint[Bắt buộc] Vị trí công việc theo danh mục hệ thống
contractTypeint[Bắt buộc] Loại hợp đồng (2: Xác định thời hạn)
contractReportTypeintHình thức báo cáo hợp đồng
contractSigningMethodint[Bắt buộc] Hình thức ký hợp đồng (1: HĐLĐ điện tử)
jobTitlestring[Bắt buộc] Chức danh công việc
salarynumber[Bắt buộc] Mức lương
salaryAllowancenumberPhụ cấp lương
contractEffectiveDatestring[Bắt buộc] Ngày hiệu lực hợp đồng hiện tại của NLĐ (định dạng: yyyy-MM-dd)
contractExpiredDatestringNgày hết hạn hợp đồng (định dạng: yyyy-MM-dd, truyền null nếu không xác định thời hạn)
contractNotestringGhi chú hợp đồng
userobject[Bắt buộc] Đối tượng thông tin tài khoản đăng nhập
{
  "code": "string", // [Bắt buộc] Mã tài khoản đăng nhập liên kết
  "username": "string", // [Bắt buộc] Tên đăng nhập (thường là email)
  "name": "string", // [Bắt buộc] Tên hiển thị tài khoản
  "generateSelfSignedCertEnabled": boolean // Tự động sinh CTS tự ký (true/false)
}
ghi chú

Request Body là một mảng (array), cho phép tạo/cập nhật nhiều người lao động trong cùng một lần gọi. Nếu employeeCode đã tồn tại trong hệ thống, bản ghi sẽ được cập nhật; nếu chưa tồn tại, hệ thống sẽ tạo mới.

Request mẫu​

[
{
"employeeCode": "NVC20260805062149",
"fullName": "Nguyễn Văn Cường 2149",
"dateOfBirth": "1997-02-17",
"gender": 1,
"identityNumber": "909218625041",
"email": "nguyenvancuong20260805062149@example.com",
"phoneNumber": "091****109",
"socialInsuranceCode": "BH178591090921862504",
"status": 1,
"workingPosition": 1,
"contractType": 2,
"contractReportType": 1,
"contractSigningMethod": 1,
"jobTitle": "Chuyên viên kinh doanh",
"salary": 20000000,
"salaryAllowance": 4,
"contractEffectiveDate": "2026-01-15",
"contractExpiredDate": null,
"contractNote": "Hợp đồng lao động xác định thời hạn tạo qua API",
"user": {
"code": "NVC20260805062149",
"username": "nguyenvancuong20260805062149@example.com",
"name": "Nguyễn Văn Cường 2149",
"generateSelfSignedCertEnabled": false
}
}
]

Response mẫu — http 200​

{
"data": [
{
"id": 1430,
"createdDate": "2026-08-05T13:21:52.8949042+07:00",
"userId": 70427,
"user": {
"id": 70427,
"createdDate": "2026-08-05T13:21:51.9310169+07:00",
"comId": 7354,
"code": "NVC20260805062149",
"username": "nguyenvancuong20260805062149@example.com",
"name": "Nguyễn Văn Cường 2149",
"phone": "091****109",
"email": "nguyenvancuong20260805062149@example.com",
"identityVerificationStatus": {
"value": 0,
"description": "Not verified"
},
"identityVerifiedType": {
"value": 0,
"description": "Unknown"
},
"identityVerifiedSource": {
"value": 0,
"description": "Unknown"
},
"isValid": false,
"signConfirmationEnabled": true,
"isAccountLocked": false,
"accountId": "5cf86e5e-b873-48a5-9c6b-eb9c3384dcda",
"signMethod": {
"value": 2,
"description": "VNPT SmartCA"
},
"status": {
"value": 1,
"description": "Enabled"
},
"receiveOtpMethod": {
"value": 1,
"description": "Email"
},
"receiveNotificationMethod": {
"value": 0,
"description": "Email"
},
"usedMemory": 0,
"waitingChangeRequest": false,
"twoFactorEnabled": false
},
"employeeCode": "NVC20260805062149",
"fullName": "Nguyễn Văn Cường 2149",
"dateOfBirth": "1997-02-17T00:00:00",
"gender": 1,
"identityNumber": "909218625041",
"email": "nguyenvancuong20260805062149@example.com",
"phoneNumber": "091****109",
"socialInsuranceCode": "BH178591090921862504",
"status": {
"value": 1,
"description": "Enabled"
},
"currentWorkingPosition": 1,
"currentJobTitle": "Chuyên viên kinh doanh",
"currentSalary": 20000000,
"currentSalaryAllowance": 4,
"currentContractType": 2,
"currentReportType": 1,
"currentContractEffectiveDate": "2026-01-15T00:00:00",
"currentContractNote": "Hợp đồng lao động xác định thời hạn tạo qua API",
"currentContractSigningMethod": {
"value": 1,
"description": "Electronic Labor Contract"
},
"syncStatus": {
"value": 1,
"description": "Not Synced"
},
"currentContractNumber": ""
}
],
"success": true,
"code": 0,
"messages": [
"Create 1 employee success, update 0 employee success."
]
}
thông tin

Lưu ý: messages trả về thể hiện số bản ghi được tạo mới/cập nhật thành công, ví dụ: "Create 1 employee success, update 0 employee success."

Response Parameter​

KeyTypeDescription
dataArray[object]Danh sách thông tin người lao động đã tạo mới/cập nhật thành công
successbooleanTrạng thái xử lý yêu cầu (true: Thành công, false: Thất bại)
codeintMã trạng thái phản hồi
messagesArray[string]Danh sách thông báo kết quả xử lý từ hệ thống

Chi tiết các thuộc tính trong data:​

KeyTypeDescription
idintID bản ghi người lao động trong hệ thống
createdDatestringThời gian tạo bản ghi (định dạng ISO 8601)
userIdintID tài khoản người dùng liên kết
userobjectChi tiết thông tin tài khoản đăng nhập liên kết (xem bên dưới)
employeeCodestringMã định danh người lao động
fullNamestringHọ và tên người lao động
dateOfBirthstringNgày sinh (định dạng ISO 8601)
genderintGiới tính (1: Nam, 2: Nữ)
identityNumberstringSố CCCD/CMND
emailstringEmail người lao động
phoneNumberstringSố điện thoại
socialInsuranceCodestringMã số bảo hiểm xã hội
statusobjectTrạng thái người lao động
1: Enabled
-1: Disabled
currentWorkingPositionintVị trí công việc hiện tại
currentJobTitlestringChức danh công việc
currentSalarynumberMức lương hiện tại
currentSalaryAllowancenumberPhụ cấp lương
currentContractTypeintLoại hợp đồng
1: Không định thời hạn
2: Xác định thời hạn
currentReportTypeintHình thức báo cáo hợp đồng
currentContractEffectiveDatestringNgày hiệu lực hợp đồng (định dạng ISO 8601)
currentContractNotestringGhi chú hợp đồng
currentContractSigningMethodobjectHình thức ký hợp đồng
1: Electronic Labor Contract (Hợp đồng lao động điện tử)
2: Paper Labor Contract (Hợp đồng lao động giấy)
syncStatusobjectTrạng thái đồng bộ
1: Not Synced (Chưa đồng bộ)
2: Synced (Đã đồng bộ)
3: Failed (Thất bại)
currentContractNumberstringSố hợp đồng hiện tại

Chi tiết đối tượng user trong Response:​

KeyTypeDescription
idintID tài khoản người dùng
createdDatestringThời gian tạo tài khoản (định dạng ISO 8601)
comIdintID công ty/doanh nghiệp
codestringMã tài khoản người dùng
usernamestringTên đăng nhập
namestringTên hiển thị người dùng
phonestringSố điện thoại
emailstringĐịa chỉ email
identityVerificationStatusobjectTrạng thái xác thực danh tính (0: Not verified)
identityVerifiedTypeobjectLoại xác thực danh tính
identityVerifiedSourceobjectNguồn xác thực danh tính
isValidbooleanTrạng thái hợp lệ của tài khoản
signConfirmationEnabledbooleanBật/tắt xác nhận khi ký
isAccountLockedbooleanTrạng thái khóa tài khoản
accountIdstringGUID định danh tài khoản hệ thống
signMethodobjectPhương thức ký (2: VNPT SmartCA)
statusobjectTrạng thái tài khoản (1: Enabled)
receiveOtpMethodobjectPhương thức nhận OTP (1: Email)
receiveNotificationMethodobjectPhương thức nhận thông báo (0: Email)
usedMemorynumberDung lượng lưu trữ đã sử dụng
waitingChangeRequestbooleanCó yêu cầu thay đổi thông tin đang chờ duyệt hay không
twoFactorEnabledbooleanBật/tắt xác thực 2 yếu tố

Các lỗi thường gặp​

successcodemessagesÝ nghĩa
false400"Identity number already exists for another employee: 0123456XXXXX"Mã số định danh/CCCD này đã được sử dụng cho một nhân viên khác. Cần kiểm tra lại hoặc nhập mã khác.
false0"The user already exists with a different username. Please check again in the User list"Đã tồn tại mã nhân viên (User Code) trong hệ thống gắn với một Username khác. Cần kiểm tra Danh sách người dùng để điều chỉnh lại User Code.
false0"Username example@email.com already exists in the company"Username/Email này đã tồn tại trong công ty. Cần thay đổi Username khác.