Máy chấm công ở cửa xưởng ghi được 4.180 lượt quẹt trong tháng. Xuất ra file Excel, đối chiếu từng dòng, không thiếu dòng nào. Vậy mà đến ngày 5 kế toán vẫn ngồi sửa tay hơn ba mươi dòng trên bảng lương, và tháng nào cũng có ít nhất một người lên hỏi "sao lương em hụt".

Đó là tình huống chúng tôi được gọi vào nhiều nhất khi khách hàng nói cần phần mềm chấm công tính lương. Vấn đề gần như không bao giờ nằm ở cái máy. Máy vân tay hay máy khuôn mặt ghi giờ rất chính xác. Cái vỡ nằm ở đoạn giữa: từ một dãy mốc thời gian thô đến một con số tiền, doanh nghiệp Việt phải đi qua ba lớp quy tắc chồng lên nhau — luật lao động, nội quy công ty, và thỏa thuận riêng với từng nhóm nhân sự.

Bài này không bàn chuyện nên mua phần mềm nào. Phần đó chúng tôi đã viết trong bài chọn phần mềm HRM và chấm công cho phòng nhân sự. Ở đây chúng tôi đi vào hai chỗ khó thật mà ít bài nào chịu viết: nối dữ liệu từ máy chấm công vật lý vào phần mềm, và những logic lương kiểu Việt mà phần mềm đóng gói bó tay.

Vì sao chấm công đơn giản mà tính lương lại khó

Chấm công là ghi nhận sự kiện. Tính lương là diễn giải sự kiện đó. Hai việc khác nhau về bản chất.

Lấy một lượt quẹt lúc 22:47. Bản thân con số này vô nghĩa cho đến khi hệ thống trả lời được: người này thuộc ca nào tối nay, 22:47 là giờ vào hay giờ ra, ca có kéo qua nửa đêm không, phần giờ sau 22:00 tính phụ cấp ca đêm hay tính tăng ca, và nếu hôm đó là ngày lễ thì hệ số nhân bao nhiêu. Một sự kiện, năm câu hỏi. Nhân với 200 nhân sự và 26 ngày công là chỗ Excel bắt đầu sụp.

Lớp thứ nhất là luật: tăng ca ngày thường tối thiểu 150%, ngày nghỉ hằng tuần 200%, ngày lễ 300%, làm đêm cộng thêm ít nhất 30%, làm thêm vào ban đêm còn cộng thêm 20% đơn giá ban ngày. Lớp thứ hai là nội quy công ty: đi trễ bao nhiêu phút thì trừ bao nhiêu, quên chấm công xử lý ra sao. Lớp thứ ba là thỏa thuận riêng: tổ trưởng có phụ cấp trách nhiệm, thợ hàn có phụ cấp độc hại, nhân viên bán hàng có thưởng doanh số.

Phần mềm đóng gói xử lý rất tốt lớp thứ nhất, xử lý được một phần lớp thứ hai, và gần như luôn thua ở lớp thứ ba. Đó là lý do sau sáu tháng dùng phần mềm, kế toán vẫn mở Excel song song.

Nối máy chấm công vào phần mềm: bốn đường dữ liệu

Đây là phần khiến dự án trễ nhiều nhất vì bị đánh giá quá thấp lúc báo giá. Máy chấm công phổ biến ở Việt Nam — ZKTeco, Ronald Jack, Hikvision, Suprema — đều lưu log quẹt trong bộ nhớ máy. Vấn đề là lấy log đó ra bằng đường nào.

Cách nốiCơ chếĐộ trễ dữ liệuRủi ro chínhCông sức tích hợp
Xuất file thủ côngNhân sự cắm USB hoặc bấm export từ phần mềm hãng, rồi import vào hệ thốngTheo kỳ, thường cuối thángQuên xuất, xuất thiếu, file sai định dạng sau khi hãng update1-2 ngày công
SDK/DLL của hãngỨng dụng chạy trên máy Windows trong mạng LAN, gọi thư viện hãng để kéo log theo lịch5-30 phútChỉ chạy Windows, kẹt khi máy đặt ở chi nhánh khác mạng5-10 ngày công
Push/ADMS qua HTTPMáy tự đẩy log lên server của bạn ngay khi có lượt quẹtGần thời gian thựcCần server có IP công khai, phải tự xử lý xác thực và chống giả mạo8-15 ngày công
API cloud của hãngMáy đẩy lên cloud hãng, phần mềm của bạn gọi API lấy về1-15 phútPhụ thuộc hãng, thường có phí thuê bao theo thiết bị4-8 ngày công

Khoảng ngày công là tham khảo thị trường tại thời điểm viết (08/2026), cho một dòng máy duy nhất và chưa gồm thời gian xử lý ngoại lệ. Thêm dòng máy thứ hai của hãng khác thường tốn thêm 50-70% so với dòng đầu, vì mỗi hãng có định dạng log và cách đánh mã nhân viên riêng.

Năm chỗ hay vỡ mà báo giá thường quên

Đồng hồ máy trôi. Máy chấm công dùng đồng hồ nội bộ, sai vài phút mỗi tháng là bình thường. Sau nửa năm không đồng bộ, giờ vào ca lệch đủ để tạo ra hàng loạt lượt "đi trễ" giả. Nên đặt lịch đồng bộ giờ hằng ngày và ghi lại độ lệch mỗi lần.

Mã nhân viên tái sử dụng. Nhân viên nghỉ việc, mã số 105 được cấp lại cho người mới, log tháng cũ và tháng mới cùng mang mã 105. Bắt buộc có bảng ánh xạ mã máy sang mã nhân sự kèm khoảng thời gian hiệu lực.

Quẹt trùng. Người ta hay quẹt hai ba lần trong vài giây vì không nghe tiếng bíp. Quy tắc gộp các lượt cách nhau dưới 60 giây thành một là bắt buộc, nếu không logic vào/ra sẽ đảo ngược.

Bộ nhớ máy đầy. Nhiều dòng máy chỉ lưu khoảng 100.000 bản ghi rồi ghi đè bản ghi cũ nhất. Chi nhánh mất mạng ba tuần cộng máy đầy bộ nhớ bằng mất dữ liệu vĩnh viễn.

Không có bảng log thô. Lỗi thiết kế nghiêm trọng nhất. Dữ liệu quẹt phải được lưu nguyên trạng vào một bảng riêng, chỉ ghi thêm, không sửa, không xóa. Khi nhân viên khiếu nại lương tháng trước, bạn phải chứng minh được bằng dữ liệu gốc chứ không phải bằng lời.

Nếu doanh nghiệp bạn có nhiều điểm bán và bài toán nghiêng về xếp lịch hơn là tính lương, chúng tôi đã bóc riêng phần đó trong bài xếp ca và chấm công cho chuỗi nhiều điểm.

Logic lương mà phần mềm đóng gói không xử được

Đây là chỗ khách hàng phát hiện ra giới hạn của phần mềm mua sẵn, thường vào tháng thứ hai sau khi go-live.

Ca xoay qua đêm và câu hỏi "ngày công thuộc về ai"

Ca đêm 22:00 hôm nay đến 06:00 hôm sau nằm trên hai ngày lịch. Nếu hệ thống tính công theo ngày lịch, một ca liền mạch bị chẻ làm đôi và cả hai nửa đều thiếu giờ. Cách đúng là gán ca theo ngày bắt đầu, rồi định nghĩa "ngày công logic" tách khỏi ngày lịch. Nghe đơn giản, nhưng nó kéo theo cách tính ngày lễ: ca bắt đầu 22:00 ngày 30/4, kết thúc 06:00 ngày 1/5 thì phần nào hưởng hệ số 300%. Câu trả lời là tính theo giờ thực tế rơi vào ngày lễ, không phải theo ca. Rất ít phần mềm đóng gói làm đúng chỗ này.

Thưởng theo sản lượng

Xưởng may trả theo số sản phẩm đạt chuẩn, nhưng vẫn phải bảo đảm không thấp hơn lương tối thiểu vùng quy đổi theo giờ công. Nghĩa là hệ thống phải tính song song hai cách rồi lấy giá trị cao hơn. Thêm nữa, sản lượng thường nằm trong hệ thống sản xuất chứ không nằm trong phần mềm chấm công — phải nối dữ liệu qua. Đây là loại yêu cầu mà không cấu hình nào giải quyết được, buộc phải viết logic riêng.

Phạt lũy tiến

Nội quy kiểu "lần đi trễ thứ nhất trong tháng nhắc nhở, lần thứ hai trừ 50.000đ, lần thứ ba trừ 100.000đ, từ lần thứ tư trừ nửa ngày công" là quy tắc có trạng thái — kết quả phụ thuộc vào lịch sử trong kỳ, không phải vào một sự kiện đơn lẻ. Phần mềm đóng gói thường chỉ hỗ trợ trừ tuyến tính theo số phút. Lưu ý pháp lý: Bộ luật Lao động không cho phép phạt tiền thay cho kỷ luật lao động, nên cách làm an toàn là gắn khoản này vào cơ chế thưởng chuyên cần chứ không đặt tên là "phạt" trên bảng lương. Chúng tôi luôn khuyên khách hàng hỏi ý kiến luật sư lao động trước khi số hóa quy tắc kiểu này.

Phụ cấp có điều kiện

Phụ cấp độc hại chỉ tính cho ngày thực tế làm ở khu vực có yếu tố độc hại. Phụ cấp trách nhiệm chỉ tính khi người đó thực sự trực ca. Phụ cấp ăn ca tính theo số ca đủ giờ chứ không theo ngày có mặt. Mỗi loại là một điều kiện lọc riêng trên dữ liệu chấm công.

Loại quy tắcPhần mềm đóng góiKết luận thực tế
Tăng ca 150/200/300%Có sẵnChỉ cần cấu hình
Phụ cấp ca đêm 30%Có sẵnChỉ cần cấu hình
Ca xoay qua nửa đêmMột phầnCấu hình được nhưng hay sai ở ngày lễ
Trừ đi trễ tuyến tínhCó sẵnChỉ cần cấu hình
Phạt/thưởng chuyên cần lũy tiếnHiếm khi cóPhải viết logic riêng
Thưởng theo sản lượngKhông cóPhải viết riêng và nối dữ liệu sản xuất
Phụ cấp theo điều kiện làm việcMột phầnThường phải mở rộng

Một cách rẻ hơn viết mới hoàn toàn: giữ phần mềm chấm công hiện có để thu thập dữ liệu, viết thêm một lớp tính lương riêng đọc dữ liệu từ đó. Chúng tôi đã bóc chi phí theo từng module trong bài chi phí viết phần mềm theo yêu cầu nếu bạn cần con số cụ thể hơn.

Liên thông BHXH và thuế TNCN

Phần mềm của bạn không nộp hồ sơ trực tiếp cho cơ quan bảo hiểm. Việc nộp đi qua nhà cung cấp dịch vụ I-VAN có chữ ký số. Cái phần mềm cần làm là xuất được bộ hồ sơ đúng cấu trúc để đẩy sang đó — báo tăng, báo giảm, điều chỉnh mức đóng.

Ba điểm hay sai:

  1. Mức lương đóng bảo hiểm khác lương thực nhận. Đóng trên lương theo hợp đồng cộng các khoản bổ sung cố định, không tính tiền ăn ca, xăng xe, điện thoại, tăng ca. Hệ thống phải tách bạch hai con số này ngay từ cấu trúc dữ liệu, không phải xử lý lúc xuất báo cáo.
  2. Thuế TNCN lũy tiến từng phần. Bảy bậc, cộng giảm trừ bản thân và người phụ thuộc. Người thử việc hoặc hợp đồng dưới 3 tháng khấu trừ 10% trên thu nhập từ 2 triệu mỗi lần chi trả, trừ khi có cam kết theo mẫu. Cuối năm phải quyết toán lại theo cả năm, nên hệ thống buộc phải lưu lịch sử từng kỳ chứ không chỉ số hiện tại.
  3. Tham số phải nằm trong dữ liệu, không nằm trong code. Mức lương cơ sở, lương tối thiểu vùng, ngưỡng giảm trừ gia cảnh, tỷ lệ đóng đều thay đổi theo văn bản mới. Nếu những con số này bị viết cứng, mỗi lần nhà nước điều chỉnh là một lần bạn phải trả tiền sửa phần mềm. Chúng tôi luôn đặt chúng vào bảng tham số có hiệu lực theo mốc thời gian, để tính lại kỳ cũ vẫn ra đúng số cũ.

Chi phí tham khảo

Khoảng giá dưới đây là tham khảo thị trường tại thời điểm viết (08/2026), chưa gồm VAT, và thay đổi mạnh theo độ phức tạp quy tắc lương của từng doanh nghiệp.

Hạng mụcPhạm vi điển hìnhKhoảng tham khảo
Nối dữ liệu một dòng máy chấm côngKéo log, ánh xạ mã nhân viên, đồng bộ giờ, bảng log thô15-40 triệu
Thêm dòng máy hãng thứ haiAdapter riêng, chuẩn hóa dữ liệu8-25 triệu
Bộ quy tắc ca kíp và tăng caCa xoay, ca qua đêm, ngày lễ, nghỉ bù25-60 triệu
Logic lương tùy biếnThưởng sản lượng, lũy tiến, phụ cấp điều kiện30-90 triệu
Xuất hồ sơ BHXH và bảng kê thuế TNCNTheo mẫu hiện hành, có bảng tham số20-50 triệu
Hạ tầng chạy hệ thốngVPS, backup hằng ngày lưu 30 ngàyTừ 199.000đ/tháng

Với doanh nghiệp dưới 30 người và quy tắc lương đơn giản, mua phần mềm sẵn theo thuê bao gần như luôn rẻ hơn viết riêng. Ngưỡng đảo chiều thường rơi vào khoảng 80-150 nhân sự có ca kíp thật, hoặc bất kỳ quy mô nào có logic lương mà phần mềm sẵn không cấu hình nổi.

Thứ tự triển khai chúng tôi khuyên

Đừng làm cùng lúc. Chạy dữ liệu chấm công vào hệ thống trước, cho chạy song song với cách cũ trọn một tháng, đối chiếu từng dòng lệch. Tháng thứ hai mới bật bộ quy tắc lương và vẫn giữ Excel làm đối chứng. Tháng thứ ba mới cắt Excel. Cách làm từng phần này giống nguyên tắc chúng tôi áp dụng khi triển khai ERP cho SME theo lộ trình từng phần, và lý do cũng giống nhau: lương là dữ liệu chạm trực tiếp vào niềm tin của nhân viên, sai một tháng mất nhiều tháng lấy lại.

Một lưu ý về quyền riêng tư: vân tay và khuôn mặt là dữ liệu sinh trắc học. Nên giữ ở dạng đặc trưng đã mã hóa trong máy, không sao chép ảnh gốc ra hệ thống trung tâm nếu không thật sự cần, và phải có văn bản thông báo cho người lao động. Với mô hình có nhân sự trực ca liên tục, chúng tôi luôn tách kho dữ liệu sinh trắc khỏi kho dữ liệu vận hành — cùng nguyên tắc phân tách đã mô tả khi nói về phần mềm quản lý phòng khám.

Nếu bạn đang phân vân, hãy làm một phép thử rẻ tiền: lấy bảng lương tháng gần nhất, đếm xem có bao nhiêu dòng kế toán phải can thiệp tay và vì lý do gì. Danh sách lý do đó chính là bản đặc tả yêu cầu của bạn, chính xác hơn mọi bộ tính năng nhà cung cấp đưa ra.

Gửi cho chúng tôi bảng quy tắc lương hiện tại của bạn — dù nó đang nằm trong một file Word nội quy hay chỉ trong đầu chị kế toán trưởng. Chúng tôi sẽ đọc và nói thẳng phần nào cấu hình được trên phần mềm sẵn, phần nào bắt buộc viết riêng, kèm khoảng chi phí và thời gian. Buổi tư vấn này miễn phí: gọi 0919 788 815 hoặc xem thêm dịch vụ phát triển phần mềm của Microads.