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

Tạo mới hoặc cập nhật Hợp đồng lao động (HĐLĐ)

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


Mục đích​

Khởi tạo (hoặc cập nhật) một hợp đồng lao động gắn với người lao động đã tồn tại trong hệ thống (xác định qua EmployeeCode, tạo ở API mục 7.1). API trả về LaborContractId (dạng GUID) — giá trị này cần được lưu lại để sử dụng làm đầu vào cho API Tạo chứng từ cho HĐLĐ (mục 7.3).

  • Request URL: /api/labor-contracts/create-or-update
  • HTTP method: POST
  • HTTP content-type: application/json
  • Authorize: Bearer token
  • Parameter:
KeyTypeBắt buộcMô tả
EmployeeCodestringCóMã NLĐ đã được tạo ở API mục 7.1
ContractNumberstringCóSố hợp đồng lao động
JobTitlestringCóChức danh công việc
SalarynumberCóMức lương
WorkingPositionintCóVị trí công việc theo danh mục hệ thống
ContractTypeintCóLoại hợp đồng (2: Xác định thời hạn)
ReportTypeintKhôngHình thức báo cáo (1: Khai báo)
PositionAllowancenumberKhôngPhụ cấp chức vụ
SeniorityAllowancePercentnumberKhôngTỷ lệ % phụ cấp thâm niên
ProfessionalSeniorityPercentnumberKhôngTỷ lệ % phụ cấp thâm niên nghề
SalaryAllowancenumberKhôngPhụ cấp lương
AdditionalCompensationnumberKhôngKhoản bổ sung khác
EffectiveDatestringCóNgày hợp đồng có hiệu lực (định dạng: yyyy-MM-dd)
ExpiredDatestringKhôngNgày hợp đồng hết hạn (định dạng: yyyy-MM-dd)
NotestringKhôngGhi chú hợp đồng
SigningMethodintCóHình thức ký (1: HĐLĐ điện tử)
FilestringKhôngĐường dẫn/tên file mẫu hợp đồng dùng để render nội dung hợp đồng
cẩn thận

Lưu ý: Trong dữ liệu test, trường File truyền theo đường dẫn file cục bộ (local path) trên máy thực hiện test. Khi tích hợp thực tế, đối tác cần xác nhận với đội phát triển hệ thống về cơ chế truyền file hợp đồng chính thức (ví dụ: upload trước qua API tải file, hoặc tham chiếu tới mẫu hợp đồng có sẵn trên hệ thống).

Request mẫu​

{
"EmployeeCode": "NVC20260805062149",
"ContractNumber": "HDLD-NVC-20260805062149",
"JobTitle": "Chuyên viên kinh doanh",
"Salary": 20000000,
"WorkingPosition": 2,
"ContractType": 2,
"ReportType": 1,
"PositionAllowance": 1000000,
"SeniorityAllowancePercent": 0,
"ProfessionalSeniorityPercent": 0,
"SalaryAllowance": 500000,
"AdditionalCompensation": 500000,
"EffectiveDate": "2026-06-24",
"ExpiredDate": "2027-06-24",
"Note": "Hợp đồng lao động xác định thời hạn 12 tháng",
"SigningMethod": 1,
"File": "D:\\...\\Hop-dong-lao-dong-xac-dinh-thoi-han.pdf"
}

Response mẫu — HTTP 200​

{
"data": {
"id": "969bfc9a-570f-4d4e-a98b-42361a73f7e8",
"createdDate": "2026-08-05T13:21:53.7572904+07:00",
"employee": {
"id": 1430,
"createdDate": "2026-08-05T13:21:52.8949042",
"userId": 70427,
"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": "HDLD-NVC-20260805062149"
},
"employeeFullName": "Nguyễn Văn Cường 2149",
"contractNumber": "HDLD-NVC-20260805062149",
"contractName": "Employment contract Nguyễn Văn Cường 2149",
"status": {
"value": 0,
"description": "Draft"
},
"currentRevisionId": "7a2d74b5-140f-4893-8b4b-fc409077e289",
"currentRevision": {
"id": "7a2d74b5-140f-4893-8b4b-fc409077e289",
"createdDate": "2026-08-05T13:21:53.7994921+07:00",
"laborContractId": "969bfc9a-570f-4d4e-a98b-42361a73f7e8",
"version": 1,
"status": {
"value": 0,
"description": "Draft"
},
"actionType": {
"value": 0,
"description": "Initialization"
},
"currentLaborContractRenderId": "576b48e7-5472-4278-9168-11e23b7bec45",
"employeeFullName": "Nguyễn Văn Cường 2149",
"employeeDateOfBirth": "1997-02-17T00:00:00",
"employeeGender": {
"value": 1,
"description": "Male"
},
"employeeIdentityNumber": "909218625041",
"employeeSocialInsuranceNumber": "BH178591090921862504",
"employeeEmail": "nguyenvancuong20260805062149@example.com",
"employeePhoneNumber": "091****109",
"contractNumber": "HDLD-NVC-20260805062149",
"contractName": "Employment contract Nguyễn Văn Cường 2149",
"contractType": {
"value": 2,
"description": "Fixed-term"
},
"jobTitle": "Chuyên viên kinh doanh",
"workingPosition": {
"value": 2,
"description": "High-level Technical Specialist"
},
"salary": 20000000,
"positionAllowance": 1000000,
"seniorityAllowancePercent": 0,
"professionalSeniorityPercent": 0,
"salaryAllowance": 500000,
"additionalCompensation": 500000,
"effectiveDate": "2026-06-24T00:00:00",
"expiredDate": "2027-06-24T00:00:00",
"signingMethod": {
"value": 1,
"description": "Electronic Labor Contract"
},
"reportType": {
"value": 1,
"description": "Declaration"
},
"syncStatus": {
"value": 1,
"description": "Not Synced"
},
"downloadUrl": "{HOST}/Api/Download?token=...",
"contractFile": {
"fileName": "Hop-dong-lao-dong-xac-dinh-thoi-han.pdf",
"fileSize": 358043
}
},
"totalDocumentCount": 0
},
"success": true,
"code": 0,
"messages": [
"Create labor contract success"
]
}
thông tin

Lưu ý: data.id chính là LaborContractId — cần lưu lại để sử dụng cho Tạo chứng từ cho HĐLĐ (mục 7.3). Hợp đồng vừa tạo có status = "Draft" (Nháp) cho đến khi chứng từ tương ứng được tạo và gửi quy trình ký.

Response Parameter​

KeyTypeDescription
dataobjectThông tin chi tiết Hợp đồng lao động vừa được khởi tạo/cập nhật (xem bên dưới)
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
messagesarrayDanh sách thông báo kết quả xử lý từ hệ thống

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

KeyTypeDescription
idstringID hợp đồng lao động (GUID) — dùng làm LaborContractId cho bước tiếp theo
createdDatestringThời gian tạo hợp đồng (định dạng ISO 8601)
employeeobjectChi tiết thông tin người lao động liên kết (xem bên dưới)
employeeFullNamestringHọ và tên người lao động
contractNumberstringSố hợp đồng lao động
contractNamestringTên hợp đồng lao động
statusobjectTrạng thái hợp đồng
0 Draft (Bản nháp)
1 Pending Signature (Chờ ký)
2 Signing (Đang ký)
3 Signed (Đã ký)
4 Effective (Đang hiệu lực)
5 Expired (Đã hết hạn)
6 Terminated (Đã chấm dứt)
7 Cancelled (Đã hủy)
8 Rejected (Bị từ chối)
9 Correcting (Đang chỉnh sửa)
currentRevisionIdstringGUID phiên bản hợp đồng hiện tại
currentRevisionobjectChi tiết thông tin phiên bản hợp đồng (xem bên dưới)
totalDocumentCountintTổng số chứng từ liên quan đã tạo

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

KeyTypeDescription
idintID người lao độ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
employeeCodestringMã 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
emailstringĐịa chỉ email 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)
currentWorkingPositionintVị trí công việc hiện tại
currentJobTitlestringChức danh công việc hiện tại
currentSalarynumberMức lương hiện tại
currentSalaryAllowancenumberPhụ cấp lương hiện tại
currentContractTypeintLoại hợp đồng hiện tại (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 hiện tại (định dạng ISO 8601)
currentContractNotestringGhi chú hợp đồng hiện tại
currentContractSigningMethodobjectHình thức ký hợp đồng
1: Electronic Labor Contract
syncStatusobjectTrạng thái đồng bộ
1: Not Synced
currentContractNumberstringSố hợp đồng hiện tại

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

KeyTypeDescription
idstringGUID phiên bản
createdDatestringThời gian tạo phiên bản (định dạng ISO 8601)
laborContractIdstringGUID hợp đồng lao động
versionintSố phiên bản hợp đồng
statusobjectTrạng thái phiên bản
0 Draft (Bản nháp)
1 Pending Signature (Chờ ký)
2 Signing (Đang ký)
3 Signed (Đã ký)
4 Effective (Đang hiệu lực)
5 Expired (Đã hết hạn)
6 Terminated (Đã chấm dứt)
7 Cancelled (Đã hủy)
8 Rejected (Bị từ chối)
9 Correcting (Đang chỉnh sửa)
actionTypeobjectLoại hành động: {"value": int, "description": string}
0 Initialization (Khởi tạo)
1 Salary Adjustment (Điều chỉnh lương)
2 Renew Contract (Gia hạn hợp đồng)
3 Terminate Contract (Chấm dứt hợp đồng)
4 Change Position (Thay đổi vị trí công việc)
5 Update Social Insurance Information (Cập nhật thông tin bảo hiểm xã hội)
20 Recreate (Tạo lại)
currentLaborContractRenderIdstringGUID bản ghi render hợp đồng
employeeFullNamestringHọ tên người lao động
employeeDateOfBirthstringNgày sinh NLĐ (định dạng ISO 8601)
employeeGenderobjectGiới tính (1: Male)
employeeIdentityNumberstringSố CCCD/CMND
employeeSocialInsuranceNumberstringMã số BHXH
employeeEmailstringEmail người lao động
employeePhoneNumberstringSố điện thoại
contractNumberstringSố hợp đồng
contractNamestringTên hợp đồng
contractTypeobjectLoại hợp đồng
2: Fixed-term
jobTitlestringChức danh công việc
workingPositionobjectVị trí công việc
2: High-level Technical Specialist
salarynumberMức lương
positionAllowancenumberPhụ cấp chức vụ
seniorityAllowancePercentnumberTỷ lệ % phụ cấp thâm niên
professionalSeniorityPercentnumberTỷ lệ % phụ cấp thâm niên nghề
salaryAllowancenumberPhụ cấp lương
additionalCompensationnumberKhoản bổ sung khác
effectiveDatestringNgày hiệu lực (định dạng ISO 8601)
expiredDatestringNgày hết hạn (định dạng ISO 8601)
signingMethodobjectHình thức ký
1: Electronic Labor Contract
reportTypeobjectHình thức báo cáo
1: Declaration
syncStatusobjectTrạng thái đồng bộ
1: Not Synced
downloadUrlstringĐường dẫn tải xuống file hợp đồng nháp
contractFileobjectThông tin file hợp đồng (fileName, fileSize)

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

successcodemessagesÝ nghĩa
false0"Cannot create a new labor contract because the employee already has a labor contract that has not been terminated"Nhân viên này đã có hợp đồng lao động đang hiệu lực (chưa thanh lý/chấm dứt). Cần truyền thêm Id hợp đồng để thực hiện cập nhật.
false0"Employee of an existing labor contract cannot be changed"Không thể thay đổi thông tin nhân viên của một hợp đồng lao động đã tồn tại.
false0"Document number 'TEST.2026.001' has been used."Số/mã chứng từ này đã được sử dụng trên hệ thống. Cần nhập số chứng từ khác.