Từ ngày 01/7/2026, Nghị định 254/2026/NĐ-CP làm rõ một điểm mà Kế toán rất dễ nhầm khi cung cấp dịch vụ. Theo đó, nếu người cung cấp dịch vụ thu tiền trước hoặc thu trong khi đang cung cấp dịch vụ thì thời điểm lập hóa đơn chính là thời điểm thu tiền, riêng khoản đặt cọc theo Bộ luật Dân sự để bảo đảm thực hiện hợp đồng cung cấp dịch vụ thì không thuộc trường hợp này. Vấn đề nằm ở chỗ không phải cứ hợp đồng ghi chữ tiền cọc là doanh nghiệp được phép chưa xuất hóa đơn. Bản chất của khoản tiền mới là thứ quyết định, còn tên gọi ghi trên hợp đồng hay nội dung chuyển khoản chỉ là hình thức.
Đặt Cọc Là Biện Pháp Bảo Đảm, Không Phải Một Đợt Thanh Toán
Điều 328 Bộ luật Dân sự 2015 xác định đặt cọc là việc một bên giao tiền hoặc tài sản có giá trị cho bên kia trong một thời hạn để bảo đảm giao kết hoặc thực hiện hợp đồng. Điểm mấu chốt là đặt cọc mang bản chất của một biện pháp bảo đảm chứ không phải một đợt thanh toán giá dịch vụ. Chính sự khác biệt về bản chất này tạo ra hệ quả khác nhau về nghĩa vụ lập hóa đơn, chứ không phải cách các bên đặt tên cho khoản tiền. Kế toán vì vậy cần đọc kỹ cơ chế xử lý khoản tiền trong hợp đồng trước khi kết luận đây là cọc hay là tiền trả trước.
Khi Nào Khoản Tiền Bị Coi Là Tiền Trả Trước
Nếu khoản tiền được trả vì bên mua phải thanh toán trước 20%, 30% hay 50% giá trị dịch vụ, số tiền lập tức được tính vào nghĩa vụ trả tiền, và hợp đồng không thể hiện cơ chế bảo đảm hay xử lý cọc tương ứng, thì việc gọi đó là đặt cọc cũng không đổi được bản chất. Đây là tiền trả trước và với dịch vụ thông thường, thu tiền đến đâu thì phát sinh nghĩa vụ lập hóa đơn đến đó. Điều 37 Nghị định 21/2021/NĐ-CP còn quy định rõ hơn rằng nếu các bên giao tiền nhưng không xác định rõ đó là đặt cọc hay trả trước thì khoản tiền được coi là tiền trả trước. Nói cách khác, hợp đồng càng mơ hồ thì phần rủi ro càng nghiêng về phía doanh nghiệp cung cấp dịch vụ.
Dấu Hiệu Của Một Khoản Đặt Cọc Đúng Nghĩa
Ngược lại, một khoản đặt cọc đúng nghĩa phải cho thấy mục đích chính là bảo đảm việc thực hiện cam kết giữa hai bên. Khi hợp đồng được thực hiện, tiền cọc có thể được trả lại cho bên đặt cọc hoặc được trừ vào nghĩa vụ thanh toán, và khoản 2 Điều 328 cho phép chính cách xử lý này. Việc sau này cấn trừ tiền cọc vào giá dịch vụ không biến khoản tiền thành thanh toán trước ngay từ ngày nhận cọc. Theo Điều 328, bên đặt cọc từ chối giao kết hoặc thực hiện thì có thể mất cọc, còn bên nhận cọc từ chối thì phải trả lại cọc và một khoản tương đương giá trị cọc, trừ trường hợp có thỏa thuận khác. Thanh toán trước về bản chất không có cơ chế phạt cọc này, và đó là dấu hiệu nhận biết rõ ràng nhất.
Một Điểm Cần Đọc Rất Kỹ Giữa Bộ Luật Dân Sự Và Nghị Định 254/2026
Điều 328 cho phép đặt cọc để bảo đảm giao kết hoặc thực hiện hợp đồng, tức là bao gồm cả khoản cọc chỉ nhằm bảo đảm sẽ ký hợp đồng trong tương lai. Trong khi đó, Nghị định 254/2026/NĐ-CP lại dùng cách diễn đạt hẹp hơn là đặt cọc để bảo đảm thực hiện hợp đồng cung cấp dịch vụ. Vì vậy, không nên suy rộng rằng mọi khoản cọc dân sự đều đương nhiên thuộc ngoại lệ không phải lập hóa đơn. Với những khoản cọc chỉ để bảo đảm việc giao kết, doanh nghiệp nên thận trọng và làm rõ trong hợp đồng, thay vì mặc định áp dụng ngoại lệ của Nghị định 254/2026.
Ba Tình Huống Thực Tế Kế Toán Hay Gặp
Tình huống thứ nhất là hợp đồng đào tạo trị giá 100 triệu đồng, khách chuyển 30 triệu đồng ngay sau khi ký và hợp đồng ghi thanh toán đợt 1 bằng 30%. Hợp đồng không có bất kỳ điều khoản bảo đảm hay xử lý cọc nào, nên đây là thanh toán trước theo đúng bản chất. Dù nội dung chuyển khoản có ghi đặt cọc khóa học, doanh nghiệp vẫn phải xử lý hóa đơn theo thời điểm thu tiền. Đây là lỗi phổ biến nhất vì kế toán thường chỉ nhìn vào nội dung ủy nhiệm chi.
Tình huống thứ hai là khách chuyển 20 triệu đồng để giữ lịch tổ chức sự kiện, hợp đồng ghi rõ đây là khoản bảo đảm thực hiện. Nếu khách hủy trái thỏa thuận thì mất cọc, còn nếu đơn vị tổ chức từ chối thực hiện thì xử lý cọc theo thỏa thuận đã ký. Trường hợp này có cơ sở là đặt cọc, nên khi nhận tiền doanh nghiệp chưa phải lập hóa đơn chỉ vì lý do đã nhận tiền. Đến khi dịch vụ phát sinh, khoản cọc được cấn trừ và hóa đơn được lập theo thời điểm của dịch vụ đó.
Tình huống thứ ba là hợp đồng phần mềm trị giá 600 triệu đồng ghi đặt cọc 180 triệu đồng, nhưng ngay sau đó lại quy định khoản đặt cọc này là thanh toán đợt 1 bằng 30% giá trị hợp đồng và không có bất kỳ cơ chế bảo đảm nào. Đây là trường hợp đặt cọc giả nhưng thanh toán thật, và việc đổi tên khoản ứng trước không làm lùi được thời điểm lập hóa đơn. Khi kiểm tra, cơ quan Thuế đọc cơ chế xử lý tiền trong hợp đồng chứ không đọc nhãn dán trên điều khoản.
Bốn Câu Hỏi Kế Toán Nên Tự Kiểm Tra
Trước khi quyết định có lập hóa đơn hay không, Kế toán có thể tự kiểm tra bằng bốn câu hỏi rất ngắn. Thứ nhất, khoản tiền này dùng để bảo đảm hay để trả giá dịch vụ. Thứ hai, nếu hợp đồng không được thực hiện thì xử lý theo cơ chế phạt cọc hay chỉ đơn giản là hoàn trả và trừ công nợ. Thứ ba, khoản tiền đã trở thành một phần nghĩa vụ thanh toán ngay khi nhận hay chưa, và thứ tư, hồ sơ hợp đồng cùng chứng từ chuyển tiền có nhất quán với nhau không. Nếu bốn câu trả lời đều nghiêng về phía thanh toán, doanh nghiệp nên lập hóa đơn theo thời điểm thu tiền.
Kết Luận
Với hoạt động cung cấp dịch vụ, thu tiền trước và nhận đặt cọc là hai việc hoàn toàn khác nhau: thu tiền trước là thanh toán, còn đặt cọc là biện pháp bảo đảm. Doanh nghiệp không nên đổi tên khoản ứng trước thành đặt cọc rồi cho rằng có thể trì hoãn nghĩa vụ lập hóa đơn, vì tên gọi không đủ khi cơ chế giao dịch cho thấy đó là tiền trả trước. Cũng cần lưu ý không áp nguyên tắc này sang bán hàng hóa, bởi thời điểm lập hóa đơn đối với hàng hóa có quy tắc riêng. Cuối cùng, phải tách bạch rằng nghĩa vụ lập hóa đơn khi thu tiền trước không đồng nghĩa doanh thu kế toán hoặc doanh thu tính thuế TNDN luôn phát sinh cùng thời điểm đó.