Máy chấm công: lô dữ liệu, gửi lại và phản hồi
Giới hạn 1.000 lượt, chống trùng và xử lý PARTIAL
Gửi tối đa 1.000 lượt trong một lô. deviceCode phải là máy còn hoạt động thuộc công ty của API key. Mỗi lượt cần externalId duy nhất theo máy, employeeCode và punchedAt. Dùng ISO 8601 có offset để tránh lệch múi giờ.
{"syncRunId":"42","received":2,"accepted":1,"duplicated":0,
"rejected":1,"aggregated":1,"unmatched":0,"status":"PARTIAL",
"replayed":false,"rejections":[{"index":1,"externalId":"MAY-02","reason":"thiếu employeeCode"}]}
- Chỉ tăng con trỏ đọc của agent khi đã lưu phản hồi. Lưu
watermarkcủa máy cùng kết quả lô. - Nếu mạng đứt trước khi nhận phản hồi, gửi lại cùng
Idempotency-Key; kết quả trả lại córeplayed=true. Không tái dùng cùng key cho lô khác. - Nếu
status=PARTIALhoặcFAILED, đọcrejections[].index, sửa các lượt lỗi rồi gửi lại với mã lô mới. Lượt đã nhận được nhận diện trùng theoexternalId. - Nếu
unmatched>0, HR ghép mã máy với nhân viên. Nếuaggregatedít hơn số đã nhận, kiểm tra lượt đang chờ hoặc xung đột trên giao diện.
Lỗi 401: khoá sai hoặc bị thu hồi. Lỗi 404: mã máy chưa khai. Lỗi 400: body, kích thước lô hoặc máy ngưng hoạt động. Không bỏ qua phản hồi từng lượt chỉ vì HTTP 200.