Cách tự động đối chiếu thanh toán ngân hàng với hóa đơn trong Odoo
Tự động hóa đối chiếu thanh toán — email ngân hàng và các khoản thanh toán Revolut/Wise được đối chiếu với hóa đơn Odoo còn mở, theo lịch bạn đặt
Mỗi khoản thanh toán đến phải được đối chiếu với một hóa đơn còn mở trước khi sổ sách của bạn chính xác và khách hàng của bạn ngừng nhận nhắc nhở. Nếu đội của bạn vẫn làm việc này bằng cách đọc thông báo ngân hàng và tìm kiếm thủ công trong Odoo, hướng dẫn này sẽ chỉ ra cách tự động hóa đối chiếu thanh toán từ đầu đến cuối: thu thập thanh toán từ email thông báo ngân hàng và API Revolut và Wise, tự động trích xuất số tiền và mã hóa đơn tham chiếu, và ghi nhận khoản thanh toán vào Odoo — kèm tự động đối chiếu và nhật ký kiểm toán đầy đủ.
💸 Vì sao đối chiếu thanh toán thủ công gây đau đầu
Đối chiếu thủ công trông có vẻ vô hại — mở thông báo ngân hàng, tìm số hóa đơn, ghi nhận khoản thanh toán vào Odoo, đối chiếu. Hai phút. Nhưng nhân điều đó với mỗi khoản thanh toán, mỗi ngày làm việc, và nó trở thành một trong những công việc thường nhật tốn kém nhất trong quy trình tài chính của bạn:
- Nó không bao giờ kết thúc. Thanh toán đến hằng ngày. Bỏ lỡ một ngày và lượng công việc tồn đọng sẽ chồng chất — và việc chốt sổ cuối tháng biến thành một dự án khảo cổ.
- Các mã tham chiếu lộn xộn. Khách hàng thanh toán với số hóa đơn bị cắt ngắn, tham chiếu thanh toán, mã đơn đặt hàng riêng của họ, hoặc không có mã tham chiếu nào cả. Con người giải mã điều này chậm chạp; vào những ngày tồi tệ, sai lệch.
- Một khoản thanh toán, nhiều hóa đơn. Khách hàng B2B thích thanh toán gộp — một lần chuyển khoản duy nhất bao gồm năm, mười, hoặc hai mươi hóa đơn. Tìm đúng tổ hợp bằng tay thực sự khó.
- Khách hàng đã thanh toán vẫn tiếp tục bị nhắc nợ. Cho đến khi khoản thanh toán được ghi nhận vào Odoo, quy trình nhắc nợ của bạn vẫn thấy một hóa đơn quá hạn. Không gì làm tổn hại thiện chí nhanh hơn việc nhắc nợ một khách hàng đã thanh toán rồi.
- Thông báo đa ngôn ngữ. Nếu bạn bán hàng xuyên biên giới, thông báo thanh toán sẽ đến bằng tiếng Đức, tiếng Séc, tiếng Anh và hàng chục định dạng khác. Mỗi ngân hàng mới đồng nghĩa với một định dạng mới cần học.
🔧 Các cách khắc phục thông thường — và chỗ chúng chưa đủ
Nhập sao kê ngân hàng thủ công
Odoo có thể nhập sao kê ngân hàng (CAMT, CSV, hoặc qua dịch vụ luồng ngân hàng), và màn hình đối chiếu của nó khá tốt khi mã tham chiếu khớp hoàn hảo. Nhưng sao kê mang tính theo đợt — bạn đối chiếu khi có người ngồi xuống làm việc đó, không phải khi tiền về. Các mã tham chiếu không hoàn hảo, thanh toán một phần, và chuyển khoản gộp vẫn rơi vào hàng chờ thủ công.
Script tùy chỉnh
Một lập trình viên có thể viết trình phân tích cho email thông báo của ngân hàng bạn. Nó hoạt động cho đến khi ngân hàng thay đổi mẫu của mình, một khách hàng thanh toán từ một ngân hàng khác, hoặc lập trình viên đó nghỉ việc. Giờ bạn phải duy trì mã regex như một hạ tầng chưa được chi trả — và nó vẫn không thể giải quyết việc khớp tổ hợp nhiều hóa đơn.
Trình kết nối kiểu Zapier
Các nền tảng tự động hóa chung có thể chuyển một thông báo thanh toán vào bảng tính hoặc kích hoạt một webhook. Điều chúng không thể làm là phần khó: trích xuất tham chiếu thanh toán (số hóa đơn hoặc ký hiệu biến đổi) từ văn bản ngân hàng dạng tự do bằng 12 ngôn ngữ, đối chiếu nó với các hóa đơn còn mở của bạn kể cả những tổ hợp thanh toán gộp, và ghi một khoản thanh toán đã đối chiếu đúng vào Odoo.
🚀 Cách tự động hóa: Pay2ERP + Odoo
Pay2ERP là một bot đối chiếu thanh toán từ bộ ứng dụng BOTS4.me. Nó theo dõi các nguồn thanh toán của bạn theo lịch bạn đặt và biến mỗi khoản thanh toán đến thành một mục đã được ghi nhận và đối chiếu trong Odoo.
Thanh toán đến
(email ngân hàng hoặc API Revolut/Wise)
Số tiền + mã tham chiếu được trích xuất
(34 mẫu, 12 ngôn ngữ)
Đối chiếu với hóa đơn còn mở
(kể cả thanh toán gộp)
Được ghi nhận vào Odoo
kèm tự động đối chiếu
Trích xuất ưu tiên quy tắc: 34 mẫu tích hợp sẵn nhận diện tham chiếu thanh toán, số hóa đơn và số tiền trong các định dạng thông báo trên 12 ngôn ngữ. Khi các quy tắc không thể tìm thấy mã tham chiếu, một cơ chế AI dự phòng sẽ phân tích văn bản thanh toán như giải pháp cuối cùng — nhờ vậy phần lớn các khoản thanh toán được khớp một cách tất định, và những trường hợp biên vẫn được xử lý. Bot cũng học từ mỗi khoản thanh toán mà nó khớp được, nên độ chính xác càng được cải thiện khi chạy càng lâu.
Thiết lập trong khoảng 5 phút
- Bước 1 — Bắt đầu tháng Discovery miễn phí: Đăng nhập tại bots4.me/bots, nhấp Bắt đầu tháng Discovery miễn phí trên thẻ Pay2ERP và chấp nhận Điều khoản một lần — không cần thẻ tín dụng.
- Bước 2 — Kết nối nguồn thanh toán: Mở Cài đặt (bánh răng) → Pay2ERP → Trình quản lý truy cập → Thêm Nguồn và thêm hộp thư nhận thông báo thanh toán của ngân hàng — Secure Quick Connect cho Gmail và Outlook / Microsoft 365, IMAP cho mọi tài khoản khác. Tài khoản Wise Business kết nối bằng API token chỉ đọc (Revolut Business theo yêu cầu). Không muốn chia sẻ hộp thư? Hãy thêm Hộp thư BOTS4.me thay vào đó và chuyển tiếp thông báo ngân hàng đến pay2erp@bots4.me.
- Bước 3 — Kết nối Odoo: Cài đặt module miễn phí “BOTS4.me Connect” từ apps.odoo.com (Odoo.sh và on-premise, phiên bản 13–19), hoặc trên Odoo Online, dùng module trợ giúp không cần mã với API key tạo tại Settings → Users & Companies → Users → người dùng của bạn → Account Security (bật chế độ nhà phát triển nếu tab bị ẩn). Odoo Online cần gói Custom của Odoo để truy cập API. Người dùng Odoo mà Pay2ERP sử dụng cần quyền Invoicing (Billing) và Accounting (Accountant), nếu không Odoo sẽ từ chối ghi nhận thanh toán. Không cần middleware, không cần phát triển tùy chỉnh.
- Bước 4 — Dạy nó ngân hàng của bạn: Chuyển một thông báo ngân hàng vào thư mục
_Pay2ERP/NHAPtrong hộp thư của bạn. Từ đó trở đi, Pay2ERP đọc mọi email từ ngân hàng đó — và không đọc gì khác trong hộp thư đến của bạn. - Bước 5 — Bắt đầu ở Chế độ Demo: Pay2ERP hiển thị chính xác khoản thanh toán nào sẽ khớp với hóa đơn nào — và không ghi gì cả. Xem lại báo cáo sau mỗi lần chạy.
- Bước 6 — Chuyển sang chạy thật an toàn: khi Odoo đã được kết nối, DEMO đã đối chiếu thanh toán với các hóa đơn thật của bạn mà không ghi gì cả. Khi báo cáo DEMO trông đúng, hãy đặt Chế độ thành LIVE trên tab Điều khiển — tùy chọn này được mở khóa sau email báo cáo DEMO đầu tiên. Từ đó trở đi, Pay2ERP ghi nhận thanh toán.
🤝 Kết hợp tốt nhất: Pay2ERP + AutoCASH
Pay2ERP ghi nhận các khoản thanh toán đến; AutoCASH gửi nhắc nhở thanh toán leo thang dần cho các hóa đơn Odoo quá hạn. Cùng nhau, chúng khép kín vòng lặp: ngay khi Pay2ERP ghi nhận một khoản thanh toán, AutoCASH sẽ ngừng nhắc nợ khách hàng đó. Không còn nhắc nợ những người đã thanh toán rồi.
🎁 Dùng thử trong tháng Discovery miễn phí
Tháng Pay2ERP đầu tiên của bạn là tháng Discovery miễn phí: hạn mức sử dụng của gói Personal, với Xuất dữ liệu hàng ngày, Tiền xử lý và Ảnh Raster được mở khóa để dùng thử, và không cần thẻ tín dụng. Đây là cách đi từ con số không đến khoản thanh toán đầu tiên được ghi nhận tự động ngay trong tháng đó.
- Ngày 1 — Khởi động: đăng nhập tại bots4.me/bots, nhấp Bắt đầu tháng Discovery miễn phí trên thẻ Pay2ERP và chấp nhận Điều khoản một lần — không cần thẻ tín dụng. Dashboard xác nhận tháng Discovery miễn phí của bạn đang hoạt động và hiển thị số ngày còn lại.
- Ngày 1 — Kết nối một nguồn thanh toán: mở Cài đặt (bánh răng) → Pay2ERP → Trình quản lý truy cập → Thêm Nguồn và thêm hộp thư nhận thông báo ngân hàng, hoặc một tài khoản Wise Business với API token chỉ đọc. Không có hộp thư để chia sẻ? Hãy thêm Hộp thư BOTS4.me và chuyển tiếp thông báo ngân hàng đến pay2erp@bots4.me.
- Ngày 1 — Kết nối Odoo: nhấp Thêm Đích đến → ERP → Odoo và làm theo hướng dẫn cài đặt trình kết nối. Người dùng Odoo mà Pay2ERP sử dụng cần quyền Invoicing (Billing) và Accounting (Accountant), nếu không Odoo sẽ từ chối ghi nhận thanh toán.
- Ngày 1 — Dạy nó nhận biết ngân hàng của bạn: kéo một thông báo ngân hàng vào
_Pay2ERP/NHAP. Từ lần chạy tiếp theo, mọi email từ ngân hàng đó đều được đọc, kể cả năm ngày gần nhất; không có gì khác trong INBOX của bạn bị mở. Người gửi không phải ngân hàng thì đưa vào_Pay2ERP/KHONG_NHAP. - Ngày 1–3 — Theo dõi ở DEMO: Pay2ERP bắt đầu ở DEMO. Nó đọc các thông báo thanh toán thật của bạn, đối chiếu chúng với các hóa đơn đang mở thật và gửi email cho bạn báo cáo lần chạy về những gì nó sẽ ghi nhận — không có gì được ghi vào Odoo và hộp thư của bạn vẫn giữ nguyên. Mọi quyết định cũng xuất hiện trong tab Nhật ký và trong thư mục
_Pay2ERP/LOGScủa hộp thư. - Ngày 2–5 — Bật những gì Discovery mở khóa: các công tắc có nhãn Discovery trên tab Điều khiển đã bao gồm trong tháng miễn phí của bạn và mặc định ở trạng thái tắt — hãy bật những công tắc bạn muốn dùng thử. Đáng thử: Xuất dữ liệu hàng ngày (một tệp Excel các khoản thanh toán đã xử lý trong tháng được gửi qua email mỗi ngày, dành cho kế toán của bạn), Ảnh Raster (giấy báo chuyển tiền gửi dưới dạng .tif, .gif hoặc .webp) và, nếu bạn cũng dùng AutoSPAM, Tiền xử lý.
- Khi báo cáo trông đúng — chuyển sang LIVE: khi báo cáo DEMO trông đúng, hãy đặt Chế độ thành LIVE trên tab Điều khiển — tùy chọn này được mở khóa sau email báo cáo DEMO đầu tiên. Các khoản thanh toán khớp giờ đây được ghi nhận trong Odoo và email của chúng được chuyển vào
_Pay2ERP/DA_XU_LY. Các khoản thanh toán cần xử lý thủ công vẫn nằm ở nơi chúng đến (hoặc trong_Pay2ERP/BANG_TAY) và được liệt kê đầu tiên trong báo cáo, kèm mọi thông tin bạn cần để hạch toán thủ công. - Tuần LIVE đầu tiên — kiểm tra kết quả: mở vài hóa đơn mà Pay2ERP đã đánh dấu là đã thanh toán và kiểm tra khoản thanh toán cùng ghi chú ngắn của nó trong Odoo. Sau đó đặt Lịch chạy và Giờ hoạt động theo nhịp của ngân hàng, và điền địa chỉ kế toán của bạn vào Gửi các khoản thanh toán cần xử lý thủ công đến.
- Sau tháng đầu tiên: khi tháng kết thúc, Pay2ERP tự động tiếp tục trên gói miễn phí với một hạn mức hàng tháng nhỏ — ghép cặp dựa trên quy tắc cho nội dung email, CSV, HTML và PDF dạng văn bản, cùng các bộ phân tích AI dùng chung hạn mức đó; khi dùng hết, các mục mới sẽ chờ đến tháng sau hoặc cho đến khi bạn chọn một gói, và mục đã bắt đầu luôn được hoàn tất. PDF quét và hình ảnh, tệp đính kèm Excel và Word cùng các tính năng bổ sung của Discovery cần có gói trả phí — xem bảng gói trên trang sản phẩm Pay2ERP.
📊 Vận hành hằng ngày trông như thế nào
Khi đã chạy thật, Pay2ERP chạy theo Lịch chạy bạn chọn trong tab Điều khiển, trong Giờ hoạt động bạn xác định. Sau mỗi lần chạy, bạn nhận được email báo cáo: các khoản thanh toán đã khớp và được ghi nhận, các khoản cần xử lý thủ công và mọi mục bị gắn cờ — tiêu đề bắt đầu bằng ✅ khi mọi thứ đều suôn sẻ. Ở LIVE, các email có tất cả khoản thanh toán đã được ghi nhận sẽ được lưu vào thư mục _Pay2ERP/DA_XU_LY; ở DEMO, hộp thư của bạn được giữ nguyên hoàn toàn.
- Các khoản thanh toán chưa khớp không bao giờ biến mất. Chúng vẫn ở trạng thái chưa đọc trong INBOX của bạn (hoặc trong _Pay2ERP/BANG_TAY nếu đến qua _Pay2ERP/NHAP) và xuất hiện trong báo cáo của lần chạy — bạn xem lại chúng ngay tại nơi bạn vẫn đang làm việc.
- Nó học bố cục của từng ngân hàng. Mỗi khoản thanh toán Pay2ERP ghi nhận thành công sẽ dạy nó cách ngân hàng đó viết số tiền và mã tham chiếu, nhờ vậy thông báo của cùng ngân hàng sẽ được nhận diện nhanh hơn ở lần sau.
- Thanh toán gộp được xử lý. Một thuật toán khớp tổ hợp sẽ tìm ra tập hợp hóa đơn còn mở nào mà một lần chuyển khoản gộp bao phủ.
- Mọi thứ đều có thể bật/tắt và được ghi nhật ký. Công tắc cho từng tính năng, bật/tắt bằng Công tắc bot, Chế độ AI từ Tắt (chỉ quy tắc) đến Ultra tùy theo gói của bạn, nhật ký quyết định đầy đủ trong tab Nhật ký của Dashboard và một bản sao trong thư mục
_Pay2ERP/LOGScủa hộp thư. - An toàn ngay từ thiết kế: 2FA, lưu trữ tại EU, được xây dựng cho GDPR, với báo cáo, nhật ký và thư mục hộp thư bằng 31 ngôn ngữ.
IMP Kontakt spol. s r.o., một nhà phân phối B2B tại châu Âu, chạy Pay2ERP hằng ngày cho hàng trăm khoản thanh toán cùng với các ứng dụng BOTS4.me khác — với việc đối soát được tự động hóa hoàn toàn và đội ngũ kế toán chỉ xem xét các trường hợp ngoại lệ.
🏦 Tích hợp sẵn Revolut và Wise với Odoo
Nguồn dữ liệu ngân hàng truyền thống cập nhật theo đợt; thông báo qua email phụ thuộc vào việc ngân hàng có gửi hay không. Tích hợp API Wise và Revolut hoàn toàn không cần email ngân hàng — số tiền, mã tham chiếu và người gửi được đọc thẳng từ tài khoản ở lần chạy tiếp theo của Pay2ERP, sau đó được đối chiếu và ghi nhận trong Odoo như mọi khoản thanh toán khác. Wise kết nối trong một phút bằng API token chỉ đọc tại Trình quản lý truy cập → Thêm Nguồn → API; Revolut Business được thiết lập cùng bạn theo yêu cầu — liên hệ với chúng tôi.
Bên cạnh các API, Pay2ERP đọc email thông báo thanh toán từ bất kỳ ngân hàng nào qua IMAP, Gmail, Outlook/Office 365 — nhờ vậy một bot bao quát cùng lúc cả tài khoản ngân hàng truyền thống lẫn tài khoản fintech của bạn. Và nếu sao kê ngân hàng của bạn đã được đưa vào Odoo, Pay2ERP cũng có thể đọc các dòng giao dịch đó: nó ghép cặp những dòng mà Odoo không tự khớp được và không động đến những dòng Odoo đã đối soát. Cùng một giao dịch ngân hàng đến qua email và dưới dạng dòng sao kê chỉ được ghi nhận một lần.
🌍 Hoạt động cả ngoài Odoo
Hướng dẫn này tập trung vào Odoo (phiên bản 13–19, tất cả các loại lưu trữ — xem các loại lưu trữ Odoo nào có thể tự động hóa), nơi Pay2ERP ghi nhận thanh toán với tính năng tự động đối soát. Cùng một bot này cũng chạy trên ERPNext (15–16), Zoho, Dolibarr (23 trở lên), Business Central online, QuickBooks Online, Xero và SAP Business One; mọi ERP khác có API đều được kết nối theo yêu cầu. Cùng một bảng điều khiển, cùng một công cụ đối chiếu, chỉ khác bộ điều hợp ERP.
❓ Câu hỏi thường gặp
Làm thế nào để tự động khớp thanh toán ngân hàng với hóa đơn trong Odoo?
Kết nối một nguồn thanh toán (email thông báo ngân hàng hoặc API của Revolut/Wise) và cơ sở dữ liệu Odoo của bạn với Pay2ERP tại bots4.me/bots. Bot trích xuất số tiền và mã hóa đơn tham chiếu từ mỗi khoản thanh toán bằng 34 mẫu tích hợp sẵn trong 12 ngôn ngữ, đối chiếu với các hóa đơn còn mở trong Odoo, và ghi nhận khoản thanh toán với đối chiếu tự động. Thiết lập mất khoảng 5 phút và tháng đầu tiên miễn phí.
Pay2ERP có tích hợp Revolut và Wise với Odoo không?
Có. Pay2ERP đọc các khoản thanh toán đến trực tiếp từ API của Wise và Revolut Business, không cần chờ email ngân hàng, ở lần chạy tiếp theo. Mỗi khoản thanh toán được đối chiếu với các hóa đơn Odoo đang mở và được ghi nhận tự động, giống hệt như các khoản thanh toán lấy từ email thông báo ngân hàng. Wise kết nối trên Dashboard bằng API token chỉ đọc; Revolut Business được thiết lập cùng bạn theo yêu cầu.
Điều gì xảy ra với các khoản thanh toán không thể khớp với hóa đơn nào?
Email thanh toán không khớp vẫn ở trạng thái chưa đọc tại nơi chúng đến — INBOX hoặc thư mục ngân hàng của bạn (hoặc trong _Pay2ERP/BANG_TAY nếu chúng đi qua _Pay2ERP/NHAP) — nên không có gì bị khuất tầm mắt. Báo cáo lần chạy liệt kê từng email đó đầu tiên, kèm lý do, các hóa đơn đang mở mà nó tìm thấy và mọi thông tin bạn cần để hạch toán thủ công.
Bot có thể khớp một lần chuyển khoản ngân hàng thanh toán cho nhiều hóa đơn cùng lúc không?
Có. Các khoản thanh toán gộp (theo lô) được khớp bằng thuật toán tổ hợp, tìm kiếm trong các hóa đơn còn mở của khách hàng tổ hợp có tổng bằng đúng số tiền đã chuyển, sau đó ghi nhận thanh toán cho tất cả các hóa đơn đó trong Odoo.
Tôi có cần viết quy tắc regex hay mẫu cho email của ngân hàng mình không?
Không. Pay2ERP đi kèm sẵn 34 mẫu trích xuất bao phủ các định dạng thông báo thanh toán trong 12 ngôn ngữ, tự học thêm các mẫu mới bằng phương pháp thống kê từ những lần khớp thành công, và chuyển sang phân tích bằng AI khi các quy tắc không trích xuất được mã tham chiếu. Không có gì để bạn phải lập trình hay bảo trì.
Tôi có thể thử nghiệm tính năng tự động khớp thanh toán mà không cho phép ghi vào Odoo không?
Có. Hãy bắt đầu ở Chế độ Demo: khi đã kết nối Odoo, bot khớp các khoản thanh toán thật với hóa đơn thật của bạn, báo cáo những gì nó sẽ làm và không ghi gì cả. Chỉ chuyển sang chế độ thật khi các báo cáo cho thấy kết quả đúng như mong đợi. Mỗi tính năng đều có thể bật/tắt riêng lẻ.
Những phiên bản Odoo và loại hình lưu trữ nào được hỗ trợ?
Các phiên bản Odoo từ 13 đến 19, trên cả ba loại hình lưu trữ. Odoo.sh và on-premise sử dụng module Python “BOTS4.me Connect” miễn phí, cài đặt chỉ với một cú nhấp chuột; Odoo Online (nơi cấm các module Python tùy chỉnh) sử dụng công cụ hỗ trợ XML không cần viết mã, cùng với một API key lấy từ Settings → Users & Companies → Users → người dùng của bạn → Account Security.
Tôi có thể dùng thử Pay2ERP trước khi trả tiền không?
Có — tháng Pay2ERP đầu tiên của bạn là tháng Discovery miễn phí, không cần thẻ tín dụng. Nó bắt đầu ở DEMO, nên bạn có thể xem nó ghép cặp thanh toán mà không có một thao tác ghi nào vào ERP. Khi tháng kết thúc, Pay2ERP tự động tiếp tục trên gói miễn phí với một hạn mức hàng tháng nhỏ: khi dùng hết, các mục mới sẽ chờ đến tháng sau hoặc cho đến khi bạn chọn một gói, và mục đã bắt đầu luôn được hoàn tất.
📚 Hướng dẫn liên quan
- Trung tâm: Cách tự động hóa Odoo từ đầu đến cuối: Từ đơn hàng qua email đến hóa đơn đã thanh toán
- Bước tiếp theo: Cách tự động hóa nhắc nhở thanh toán trong Odoo (Nhắc nợ theo cấp độ tăng dần)
- Lưu trữ: Odoo Online so với Odoo.sh so với On-Premise: Loại nào bạn có thể tự động hóa?
- Thiết lập: Cách kết nối Odoo với BOTS4.me: Hướng dẫn cài đặt bộ kết nối (Odoo 13–19)
🔗 Nguồn và tài liệu đọc thêm
Tài liệu chính thức và các tiêu chuẩn được tham chiếu trong bài hướng dẫn này. Các đường link bên ngoài sẽ mở trong một tab mới.
Ngừng khớp thanh toán thủ công
Kết nối email ngân hàng hoặc tài khoản Wise của bạn, kết nối Odoo và xem lần chạy đầu tiên ở DEMO. Tháng đầu tiên của bạn là tháng Discovery miễn phí — không cần thẻ tín dụng.