Xác thực và quy tắc
tenantCode giống hệt API Danh mục.
Mã người dùng là khoá đồng bộ
Mọi endpoint ở đây định danh người dùng bằngcode — với người dùng do hệ thống nhân sự đẩy sang, đó chính là mã nhân viên bên bạn.
code là một trường duy nhất cho mọi người dùng, không phải trường riêng của tích hợp nhân sự. Người dùng bên ngoài (đối tác ký) cũng mang code, nhưng do econtractid tự sinh theo định dạng riêng. Hai nhóm người dùng tách biệt nên không bao giờ giành nhau một mã.1. Danh sách người dùng
Query
hasCode=false là cách rà những tài khoản được tạo thẳng trên giao diện web mà hệ thống nhân sự chưa biết. Đối chiếu nhóm này trước khi chạy đồng bộ hàng loạt, tránh tạo trùng người.updatedFrom cho phép đồng bộ tăng dần: mỗi lần chạy chỉ kéo về phần đã đổi kể từ lần chạy trước, thay vì tải lại toàn bộ danh sách.Response
2. Chi tiết một người
items ở trên. Không có mã đó trong tenant → 404 USER_CODE_NOT_FOUND.
3. Tạo người dùng
Body
Người dùng được tạo với
type = internal, đặt ở gốc tenant, và ở trạng thái chờ đặt mật khẩu — họ tự đặt mật khẩu qua luồng quên mật khẩu của econtractid.
Response
HTTP201; thân phản hồi là object người dùng như mục 1 (trường statusCode trong envelope luôn là 200, giống mọi endpoint khác của hệ thống).
4. Cập nhật
5. Khoá / bật lại tài khoản
Chỉ nhận hai giá trị này; các trạng thái nội bộ khác không đặt được từ bên ngoài.
Không có endpoint xoá người dùng. Nhân sự nghỉ việc thì khoá tài khoản — hồ sơ họ đã ký vẫn phải truy vết được, nên bản ghi người dùng không được biến mất.
6. Đồng bộ hàng loạt
code: chưa có thì tạo, đã có thì cập nhật. Tối đa 200 dòng mỗi request.
Response
Luôn200 khi request hợp lệ — lỗi nằm ở từng dòng, không phải cả lần gọi.
Mỗi dòng chạy trong một transaction riêng nên một dòng hỏng không kéo theo dòng đã ghi. Ngược lại, trùng
code ngay trong một payload làm hỏng cả request (400 USER_CODE_DUPLICATED_IN_PAYLOAD) và chưa ghi dòng nào — nếu xử lý tiếp thì dòng sau sẽ ghi đè dòng trước và kết quả phụ thuộc thứ tự mảng.Mã lỗi
Danh sách đầy đủ: Mã lỗi.

