Tạo hóa đơn PDF: Tự động tạo và gửi đúng khách

tạo hóa đơn PDF — ảnh bìa | RevidAPI
Tạo hóa đơn PDF: Tự động tạo và gửi đúng khách

Tạo hóa đơn PDF là chuyển dữ liệu giao dịch thành tài liệu PDF, với quy trình tự động từ nhận dữ liệu, kiểm tra, tính tiền đến điền mẫu, xuất file và gửi khách. Bài viết giúp bạn chọn cách triển khai, phác thảo workflow n8n và xác định những bước cần kiểm thử trước khi xử lý giao dịch thật. Chẳng hạn, một shop nhận đơn qua form cần đưa đúng tên khách, mặt hàng và số tiền vào tài liệu gửi qua email. Với đơn có nhiều dòng hàng, việc xuất được PDF mới chỉ giải quyết một phần công việc. Bạn còn cần biết tài liệu có thiếu sản phẩm, sai tổng tiền hoặc được gửi đến nhầm địa chỉ hay không.

Tóm tắt nhanh

  • Bắt đầu từ một đơn hàng mẫu có tên khách, dòng hàng và địa chỉ email để xác định dữ liệu cần dùng.
  • Theo dõi quy trình n8n từ lúc nhận yêu cầu đến khi gửi PDF đã duyệt cho khách.
  • Trước khi chạy thật, thử các trường hợp thiếu dữ liệu, yêu cầu trùng và gửi email thất bại.

Tạo hóa đơn PDF tự động: dữ liệu đầu vào, mẫu và file đầu ra

Bạn nhập lại tên khách và từng dòng hàng rồi bấm tải PDF thì vẫn đang làm thủ công. Khi hệ thống bán hàng phát sinh yêu cầu và chuyển dữ liệu sang khâu tạo tài liệu, quy trình mới được kích hoạt tự động. Bản PDF cuối cùng có thể trông giống hệt nhau.

Tách dữ liệu, mẫu và file đầu ra Dữ liệu giao dịch → mẫu tài liệu → PDF Dữ liệu chứa tên khách, mã đơn, số lượng, đơn giá và các khoản thuế hoặc giảm giá áp dụng. Mẫu quy định vị trí logo, cột thành tiền, điều khoản thanh toán. PDF là file được xuất

sau khi dữ liệu đã điền vào mẫu; sửa đơn giá trong hệ thống không tự làm file đã gửi thay đổi. Ví dụ, một đơn in áo có thể được dùng để lập báo giá trước khi khách chốt, rồi phục vụ tài liệu thanh toán sau đó. Bạn cần xác định mục đích tài liệu trước khi xây workflow:

Loại tài liệu Mục đích sử dụng Nội dung cần xác định
Báo giá Đề xuất giá và điều kiện cung cấp Hạng mục, giá chào, thời hạn áp dụng
Chứng từ ghi nhận giao dịch Ghi nhận sự việc như thu tiền hoặc giao hàng Sự việc, thời điểm, bên xác nhận
Hóa đơn Ghi nhận việc bán hàng, cung cấp dịch vụ Thông tin và thủ tục theo quy định áp dụng

PDF không tự xác nhận tính hợp lệ Đặt tên file `hoa-don.pdf` hoặc thêm dòng “HÓA ĐƠN” vào mẫu không chứng minh tài liệu hợp lệ về pháp lý. Nếu bạn cần hóa đơn điện tử, phải xác định yêu cầu nghiệp vụ và quy định áp dụng riêng; xuất

được PDF chỉ xác nhận khâu tạo file đã hoàn tất.

Công cụ tạo PDF hỗ trợ nhập liệu, tính tiền và xuất tài liệu đến đâu?

Bản xem trước cập nhật khi nhập liệu của Billsato hữu ích để kiểm tra nội dung trước khi tải PDF. Nhưng tính năng đó chưa chứng minh công cụ nhận được dữ liệu từ hệ thống bán hàng hoặc chạy hàng loạt. Khi chọn công cụ, bạn cần tách thao tác có sẵn trên giao diện khỏi phần tích hợp phải tự xây.

Đối chiếu chức năng với việc bạn cần làm Các mô tả sản phẩm trong bảng dựa trên trích đoạn SERP

được cung cấp, chưa phải kết quả kiểm thử độc lập. Cột cuối là điểm bạn cần xác minh trước khi dùng với đơn hàng thật.

Chức năng Đầu vào Kết quả được giới thiệu Điểm cần kiểm tra
Nhập thông tin Công ty, khách hàng, hạng mục desPDF giới thiệu nhập thông tin, chế độ khách không cần đăng ký Trường nào bắt buộc; có kiểm tra định dạng không
Tính tiền Số lượng, đơn giá, thuế, giảm giá Invoice Studio giới thiệu tính VAT, giảm giá Thứ tự áp dụng giảm giá và thuế; cách làm tròn
Điền và chỉnh mẫu Nội dung tài liệu, lựa chọn thiết kế desPDF giới thiệu tùy chỉnh thiết kế, đánh số tài liệu Có sửa được logo, mã tham chiếu, hạn thanh toán không
Xuất và lưu Tài liệu đã nhập Billsato giới thiệu xem trước cập nhật khi nhập, tải PDF miễn phí; lưu qua Pro Phạm vi lưu của Pro; có bước gửi khách sau duyệt không

Phần tích hợp cần xác minh riêng Các trích đoạn trên chưa xác nhận API, nhận dữ liệu từ n8n, xử lý hàng loạt hay gửi email sau duyệt. Nếu bạn cần lấy đơn từ hệ thống bán hàng rồi gửi PDF cho khách, hãy yêu cầu tài liệu tích hợp; đừng coi nút tải PDF là bằng chứng công cụ đáp ứng cả quy trình.

Workflow n8n bảy bước: từ nhận yêu cầu đến gửi PDF đã duyệt

Một đơn hàng gửi lại webhook có thể làm khách nhận hai email. Bạn cần gắn mỗi yêu cầu với `request_id` và lưu trạng thái theo mã này. Đây là thiết kế đề xuất, chưa phải workflow import dùng ngay; kho trạng thái, dịch vụ render và cơ chế duyệt cần được chọn, kiểm thử.

Thiết lập bảy bước và chốt điều kiện đi tiếp

  1. Nhận yêu cầu bằng Webhook. Nhận mã đơn, loại tài liệu và `request_id` từ form hoặc hệ thống bán hàng. Chỉ chuyển tiếp khi xác định được yêu cầu; thiếu mã thì trả lỗi để bên gửi bổ sung.
  2. Chuẩn hóa bằng Edit Fields hoặc Code. Đưa khách hàng, dòng hàng, email và tiền tệ về cấu trúc thống nhất, chẳng hạn `customer`, `items`, `currency`. Dừng nếu thiếu trường bắt buộc; không tự điền đơn giá còn trống bằng 0.
  3. Tính tiền và kiểm tra trùng bằng Code, If. Áp dụng quy tắc thuế, giảm giá, làm tròn đã duyệt. Dùng kho có ràng buộc duy nhất cho `request_id` để chặn cả yêu cầu đến đồng thời. Dừng khi dữ liệu sai hoặc mã đã được tiếp nhận.
  4. Điền mẫu HTML. Dùng Code hoặc cơ chế template đã chọn, escape nội dung khách nhập và khai báo font tiếng Việt. Chỉ chuyển sang render khi mọi biến bắt buộc đã có giá trị; còn biến chưa thay thì trả về sửa dữ liệu.
  5. Render qua HTTP Request. Trước khi chọn dịch vụ, thử tên có dấu, địa chỉ dài và bảng hàng nhiều trang. Chỉ đi tiếp khi nhận được PDF đọc được; nếu timeout hoặc file hỏng, ghi lỗi render và dừng nhánh gửi.
  6. Lưu nháp và chờ duyệt. Lưu PDF cùng phiên bản dữ liệu, đối chiếu tổng tiền rồi đưa người phụ trách duyệt. Chỉ tiếp tục khi đúng phiên bản được duyệt; sửa dữ liệu thì tạo bản nháp mới và duyệt lại.
  7. Gửi bằng Send Email, ghi trạng thái. Gửi đúng PDF đã duyệt, lưu kết quả gửi vào kho trạng thái. Cấu hình workflow lỗi dùng Error Trigger để ghi nhận lỗi thực thi; nếu gửi thất bại, giữ file đã duyệt để xử lý tiếp.

Chọn đúng điểm chạy lại Các trạng thái sau là tên đề xuất trong kho

của bạn, không phải trạng thái mặc định của n8n.

Trạng thái Hành động phục hồi
`render_failed` Kiểm tra dữ liệu và dịch vụ trước khi chạy lại bước 5
`email_failed` Gửi lại file đã duyệt nếu xác nhận email chưa được nhận để xử lý
`delivery_unknown` Đối chiếu log nhà cung cấp email trước khi gửi lại

Chi phí vận hành, lỗi làm tròn và rủi ro lộ dữ liệu khách hàng

Tiền đúng, file vẫn có thể sai Làm tròn từng dòng rồi cộng có thể khác cộng trước rồi làm tròn. Bạn cần chốt độ chính xác, thời điểm làm tròn, chiết khấu trước hay sau thuế và cách phân bổ giảm giá toàn đơn. Dùng kiểu số thập phân cho phép tính tiền; đối chiếu tổng trên PDF với dữ liệu đã duyệt. Thử mẫu bằng tên khách có dấu, địa chỉ dài và bảng hàng tràn sang trang sau. Kiểm tra font

được nhúng, tiêu đề bảng lặp lại, dòng hàng bị cắt và phần tổng tiền bị đẩy sang trang riêng. Mẫu đẹp với một dòng hàng chưa đủ để chạy hàng loạt.

Chặn số trùng và đường rò dữ liệu Hai tiến trình cùng đọc “số lớn nhất + 1” có thể cấp trùng số. Dùng bộ cấp số có tính nguyên tử và ràng buộc duy nhất trong cơ sở dữ liệu. Khi retry, tra bản ghi theo mã yêu cầu để dùng lại số đã cấp. Rà log n8n xem có lưu tên, điện thoại, địa chỉ hay toàn bộ nội dung PDF không. Giới hạn quyền xem log và thời gian lưu; liên kết tải cần kiểm soát truy cập hoặc hết hạn. Với dịch vụ render bên ngoài, kiểm tra chính sách lưu, xóa dữ liệu và quyền truy cập file.

Tính cả chi phí bảo trì Tải PDF miễn phí chưa bao gồm lưu trữ, lượt chạy automation, gửi email và sửa mẫu. Chưa có bảng giá xác minh để tính tổng. Nếu chỉ làm vài báo giá mỗi tháng, mẫu đổi liên tục hoặc quy tắc thuế chưa chốt, nhập thủ công kèm bước duyệt có thể ít công bảo trì hơn.

Hai tình huống tại Việt Nam: agency báo giá và shop gửi xác nhận đơn

Agency: từ yêu cầu báo giá đến khách chấp thuận Một agency thiết kế website nhận yêu cầu làm trang giới thiệu doanh nghiệp. Account nhập tên khách hàng, gói dịch vụ, số lượng, đơn giá, tiền tệ VND và hạn báo giá vào form nội bộ. Đây là tình huống mô phỏng để thiết kế quy trình, chưa phải kết quả khách hàng đã xác minh. Bản nháp chuyển cho trưởng bộ phận kinh doanh duyệt phạm vi công việc, giá bán và điều kiện thanh toán. Người này chịu trách nhiệm nội dung thương mại; account chỉ gửi PDF

sau khi được duyệt. Nếu khách yêu cầu thêm trang, account sửa hạng mục và trình duyệt lại trước khi gửi phiên bản mới. Khi khách chấp thuận, bạn giữ mã báo giá và phiên bản đã duyệt, tái sử dụng dữ liệu cho hồ sơ triển khai. Đừng lấy bản nháp mới nhất nếu khách xác nhận một phiên bản trước đó.

Shop: gửi PDF xác nhận đơn để khách kiểm tra Một shop đồ gia dụng nhận đơn gồm nồi, hộp đựng và phí vận chuyển. Trong tình huống mô phỏng này, hệ thống tạo PDF mang tiêu đề “Xác nhận đơn hàng”, rồi chuyển nhân viên kiểm tra mặt hàng, địa chỉ nhận, khoản đã trả và số tiền còn phải thanh toán. Nội dung gửi khách cũng ghi rõ: “Shop gửi PDF xác nhận đơn hàng để bạn kiểm tra sản phẩm, địa chỉ và khoản thanh toán”. Nếu cần hóa đơn điện tử, shop phải tích hợp hệ thống phù hợp qua API đã xác minh tài liệu và quyền truy cập; ví dụ này chưa chỉ định nhà cung cấp. Với cả hai tình huống, bạn ghi số lần sửa, số tài liệu trùng và thời gian từ tiếp nhận đến gửi bản đã duyệt. Chưa có số đo thực tế nên không thể kết luận quy trình giảm

được bao nhiêu thời gian.

Xây bản thử n8n từ tài nguyên RevidAPI và kiểm tra phiên bản mẫu — tạo hóa đơn PDF | RevidAPI

Xây bản thử n8n từ tài nguyên RevidAPI và kiểm tra phiên bản mẫu

Trước khi nối bước xuất PDF, bạn cần chốt phiên bản mẫu dùng để thử. Với mẫu báo giá `bao-gia-v1`, hãy giữ bản cũ để đối chiếu khi sửa font, bố cục hoặc cách ngắt trang.

Gắn phiên bản vào từng yêu cầu Bạn có thể tham khảo Hub Workflow và bài Tự động hóa với n8n khi dựng bản thử. Brief chưa cung cấp workflow PDF đã

được xác minh; cần kiểm tra nội dung tài nguyên trước khi chọn mẫu. Nếu cần môi trường chạy, xem trang n8n Hosting để đối chiếu với nhu cầu triển khai. Trong Code node, chọn Run Once for All Items, rồi gắn phiên bản vào mỗi mục dữ liệu:

return $input.all().map(item => ({ json: { ...item.json, templateVersion: "bao-gia-v1", },
}));

Đoạn mã chỉ thêm `templateVersion`, không tạo PDF hay gọi RevidAPI. Chưa có endpoint PDF RevidAPI được xác minh trong brief. Trước khi thêm bước gọi API, bạn cần tài liệu của nhà cung cấp render về xác thực, dữ liệu đầu vào và cách nhận file.

Kiểm tra mẫu và giới hạn chạy lại Dùng ba bộ dữ liệu thử: tên khách có dấu như “Nguyễn Thị Hường”; dòng hàng có mô tả dài; danh sách đủ dài để sang nhiều trang. Kiểm tra dấu tiếng Việt, chữ tràn ô, hàng bị cắt và tổng tiền ở trang cuối. Khi sửa mẫu, tăng thành `bao-gia-v2` và xuất lại cùng dữ liệu để so sánh. Đặt giới hạn thử lại, chẳng hạn tối đa 2 lần với lỗi render tạm thời; hết lượt thì chuyển sang trạng thái chờ xử lý và gửi cảnh báo kèm mã yêu cầu, `templateVersion`, công đoạn lỗi. Đây là cấu hình đề xuất, chưa phải kết quả kiểm thử. Lưu riêng `orderId`, `quotationNumber` và `invoiceNumber` để chạy lại báo giá không làm thay đổi số hóa đơn. Nếu dùng AI diễn đạt mô tả dịch vụ, chỉ đưa phần văn bản qua AI; số lượng, đơn giá, thuế và tổng tiền vẫn tính theo quy tắc. Giữ bước duyệt trước khi gửi khách.

FAQ: miễn phí, dữ liệu cần chuẩn bị và hóa đơn điện tử

Tạo hóa đơn PDF có miễn phí không?

Có. Một số công cụ giới thiệu tải PDF miễn phí; Billsato tách chức năng lưu qua bản Pro, nên kiểm tra điều kiện trước khi dùng.

Có thể tự động tạo hóa đơn PDF bằng n8n không?

Có. Workflow có thể nhận dữ liệu, kiểm tra, tính tiền, điền mẫu, xuất file rồi gửi khách; xem phần quy trình n8n để thiết kế từng bước.

Báo giá PDF khác hóa đơn PDF như thế nào?

Báo giá nêu giá và điều kiện dự kiến; hóa đơn ghi nhận giao dịch theo nghiệp vụ. Chọn đúng loại tài liệu trước khi tạo mẫu.

Hóa đơn PDF có phải hóa đơn điện tử hợp lệ tại Việt Nam không?

Không thể kết luận chỉ từ định dạng PDF. Cần đối chiếu quy định hiện hành và yêu cầu phát hành hóa đơn điện tử; PDF thông thường không tự chứng minh tính hợp lệ.

Cần dữ liệu gì để tự động tạo hóa đơn PDF?

Chuẩn bị bên bán, bên mua, dòng hàng, số lượng, đơn giá, quy tắc thuế, ngày lập và mã tham chiếu. Kiểm tra trường bắt buộc trước khi xuất.

Khám phá workflow miễn phí tại AI Tạo ảnh & Video và lấy API key tại API Marketplace RevidAPI.

Khám phá API Marketplace RevidAPI — lấy API key miễn phí · Nhóm Zalo hỗ trợ · revidapi@gmail.com

Khám phá RevidAPI

API Marketplace · Nhóm Zalo hỗ trợ

Zalo Messenger Phone
Gọi miễn phí 0978382335
Gọi miễn phí 0978382335