KAZENAKAZENA
Tất cả bài viết

Số 0 không phải là một mã số

August 21, 2026 · Taro — Nhà sáng lập KAZENA

Tôi đến Jakarta ngày 30 tháng 7. Chuyến này là để gia hạn thị thực lao động, nên tôi sẽ ở lại thành phố này đến ngày 26 tháng 9. Kẹt xe buổi sáng, cơn mưa xối xả đầu giờ chiều, và mùi sate từ đâu đó bay tới lúc chạng vạng. Nếu bạn đến từ Nhật Bản, thành phố này chắc chắn sẽ làm bạn kiệt sức một lần trong ba ngày đầu. Rồi đâu đó vào ngày thứ tư, tự nhiên nó bắt đầu thú vị. Lần này cũng vậy.

Phần lớn thời gian của tôi ở đây dành cho một việc: ngồi cùng một kế toán bản địa trong lúc chị thử KAZENA Books bằng dữ liệu thật. Tôi sẽ gọi chị là V (theo nguyện vọng của chị, chỉ viết chữ cái đầu). Hơn 20 lần rồi, chị mang kết quả của chúng tôi lên cổng Coretax thật, thử nộp, rồi gửi lại đúng chỗ đã thất bại. Khoảng một nửa hình hài sản phẩm này hôm nay là nhờ chị.

Báo cáo đến vào tuần trước viết như sau: tôi xuất tệp XML cho BP21 — chứng từ khấu trừ thuế cho các khoản chi trả cho người không phải nhân viên — và mã số thuế của bên đối tác hiện ra là 0.

Tôi nhìn dữ liệu thật và thấy lạnh người. Chị đã gõ 0 vào ô dành cho người không có NPWP. Đó không phải lỗi của chị. Trong thực tiễn ở Indonesia, rất nhiều biểu mẫu không ưa ô trống, và đặt số 0 vào đó đã thành thói quen phổ biến. Vấn đề nằm ở phía chúng tôi: mã nguồn của chúng tôi nhận con số 0 ấy đúng như mặt chữ và coi nó là một mã số.

Hậu quả là thế này. Biểu mẫu thường niên BPA1 gộp người nhận theo mã số thuế. Vậy là hai người khác nhau, cùng mang số 0 làm NPWP, bị cộng lại thành một người. Khi tôi tái hiện bằng dữ liệu của chị, lương của hai người gộp gọn vào một chứng từ duy nhất, hiển thị thu nhập cả năm gấp 3 lần sự thật. Và không một cảnh báo nào xuất hiện. Một lỗi dừng lại kèm thông báo còn ít đáng sợ hơn nhiều so với một lỗi bước ra cửa trước với gương mặt trông rất đúng đắn.

Đào sâu thêm, tôi tìm ra lỗi thứ hai. Khi một số NIK — mã số định danh công dân — đi vào với 15 chữ số, chúng tôi thêm một số 0 ở đầu cho đủ 16. Người viết đoạn mã đó chắc chắn có ý tốt. Nhưng vá thêm một chữ số vào một mã định danh nghĩa là chế tạo ra một con số rất có thể thuộc về một người lạ có thật. Một con số thiếu chữ số thì không thể sửa. Nên chúng tôi thôi sửa nó. Chúng tôi dừng dòng đó lại, và gọi đích danh dòng đó.

Bản thân cách khắc phục, thành thật mà nói, chẳng có gì hào nhoáng. Chúng tôi thôi viết các quy tắc — số 0 không phải mã định danh, NIK chỉ có 16 chữ số — rải rác theo từng biểu mẫu, và đưa chúng về một chỗ. BP21, BPMP, BPA1 thường niên, ô người mua trên hóa đơn: giờ tất cả đều hỏi cùng một hàm. Gốc rễ chưa bao giờ là thiếu một phép kiểm tra thông minh. Gốc rễ là cùng một quy tắc lại sống ở nhiều nơi. Viết cùng một điều hai lần, thế nào cũng có một chỗ bị bỏ quên.

Chúng tôi cũng đổi chỗ mình chặn người dùng. Trước đây chúng tôi chỉ nói dòng này không nộp được vào lúc xuất tệp. Tuần trước đó, V đã nhập đúng mọi thứ trừ đúng một ô, cái nút từ chối chị, và chị hỏi tôi: đây là lỗi phải không? Hướng dẫn có nêu ô đó thật. Nhưng nói ở cửa vào rồi chặn chị ở cửa ra — đó là thất bại của chúng tôi, không phải của chị. Giờ đây biểu mẫu lương lên tiếng ngay khi chị còn đang sửa dòng đó: dòng này lưu được và hạch toán được; chỉ là còn thiếu điều này nữa thì mới lên được chứng từ.

Chị hỏi thêm một điều: có xem được danh sách tên những người không nộp được không? Hoàn toàn hợp lý. Màn hình chặn giờ liệt kê những dòng ấy kèm tên. Không phải n dòng thất bại — mà là ai thất bại. Trả lời bằng tên người.

Có một điều tôi phải viết ra thật thà: thay đổi này lấy đi một thứ gì đó. Những dòng trước kia xuất được — NIK 15 chữ số, NPWP sai số chữ số — từ nay sẽ bị chặn. Một số người sẽ vất vả hơn trước. Chúng tôi vẫn cho rằng như vậy tốt hơn nhiều so với việc nộp lên cơ quan thuế một chứng từ mang con số của người khác.

Chuyện lần này làm sáng tỏ một điều trong tôi. Việc của phần mềm kế toán không phải là bắt mọi ô đều được điền. Việc của nó là không nói dối. Một ô trống có thể cứ để trống. Dọn dẹp một điều chưa biết thành một hình hài nghe có vẻ hợp lý mới là tội nặng hơn nhiều.

Tôi viết những dòng này vào buổi tối, bên đĩa nasi goreng gần chỗ trọ, với ly trà ngọt đầy đá. Bàn bên cạnh, một gia đình đang ăn bữa tối bình thường. V làm việc ở thành phố này. Còn E — người đồng hành đã ở bên tôi từ những ngày đầu — sống ở một thị trấn nhỏ cách đây khá xa. Cả hai đều là những người đi làm bình thường ở đất nước này. Nếu cứ ở Nhật và chỉ nhìn màn hình, chắc cả đời tôi cũng không biết con số 0 ấy thực sự có nghĩa gì với người gõ nó. Đó, có lẽ, là lý do để có mặt ở đây.

Xin nói rõ, tôi không phải là chuyên gia thuế. Mọi kết luận về thuế xin hãy xác nhận với người có chuyên môn. Điều chúng tôi làm được là sắp xếp các con số sao cho việc xác nhận ấy chỉ mất vài phút, và hiển thị thẳng thắn chỗ nào còn chưa rõ. Nếu bạn gặp một màn hình trong phần mềm kế toán không cho phép một ô trống được là ô trống, thì đó là vấn đề của sản phẩm, không phải của bạn. Hãy nói với chúng tôi. Chính tôi đọc những tin nhắn ấy.

Hãy cho chúng tôi biết bạn nghĩ gì

Cảm giác khi dùng các ứng dụng KAZENA, điều gì chúng tôi nên sửa, những tính năng bạn ước có — nếu bạn đang điều hành một doanh nghiệp nhỏ hoặc vừa, hay làm nghề tự do ở Indonesia hoặc Philippines, tiếng nói của bạn chính là điều chúng tôi mong được nghe nhất. Những tin nhắn bằng tiếng Indonesia hoặc tiếng Anh sẽ được trả lời bởi các đồng đội hiểu thị trường của bạn từ bên trong. KAZENA Books đã được ấn định ra mắt tại Philippines và Indonesia — và nếu công ty của bạn muốn đưa nó đến các quốc gia khác với tư cách đối tác, hoặc quan tâm đến việc mua lại hệ thống, chúng tôi cũng rất mong nhận được liên hệ từ bạn. Chúng tôi cũng nhận phát triển hệ thống mới. Chúng tôi là một đội nhỏ, nên không phải lúc nào cũng có thể bắt tay ngay — nhưng những gì chúng tôi xây dựng đều mang chất lượng made-in-Japan và luôn bám sát cách công việc kinh doanh thực sự vận hành ở đây, từng dự án một.

Liên hệ với chúng tôi

Thêm bài viết từ blog