Tích hợp không cần code
TinoPay có sẵn bốn tích hợp cấu hình trên web TinoPay (menu Tích hợp), không cần tự dựng endpoint: Google Sheets ghi giao dịch vào bảng tính; plugin WordPress / WooCommerce, module HostBill và Sapo hiện mã VietQR và tự xác nhận đơn hàng, hoá đơn khi khách chuyển khoản. Cần tích hợp sâu hơn vào hệ thống của bạn: xem webhook và API công khai.
Cập nhật: 2026-10-25. Nguồn: tài liệu TinoPay, mục Tích hợp không cần code.
Ba tích hợp bán hàng khớp giao dịch theo mã thanh toán trong nội dung chuyển khoản: tiền tố khai ở web TinoPay (Cài đặt → Cấu trúc mã thanh toán) phải trùng tiền tố cấu hình ở plugin, module hay cửa hàng.
Google Sheets
TinoPay tự ghi mọi giao dịch khớp điều kiện vào một bảng tính Google của bạn ngay khi ngân hàng báo biến động số dư; hợp với kế toán, chủ shop muốn theo dõi dòng tiền bằng bảng tính. TinoPay gom giao dịch khoảng 10 giây rồi ghi một lượt nhiều dòng để không chạm hạn mức của Google Sheets API, nên dòng mới thường xuất hiện sau vài giây chứ không tức thì.
Cần một tài khoản Google (Gmail hoặc Google Workspace) và ít nhất một tài khoản ngân hàng đã kết nối với TinoPay.
Thiết lập Google Sheets
Menu Tích hợp → Google Sheets → Thêm tích hợp, bốn bước:
- Tài khoản Google: lần đầu bấm Đăng nhập bằng Google và chọn tài khoản chứa bảng tính; đã liên kết thì chọn trong danh sách hoặc bấm Liên kết tài khoản Google khác. Màn cấp quyền của Google có ô quyền truy cập Google Drive để trống mặc định: phải tích vào, không thì TinoPay không tạo hay ghi được bảng tính nào.
- Bảng tính: Tạo mới bảng tính (TinoPay tạo sẵn đúng định dạng cột; đặt tên, chọn thư mục trong My Drive) hoặc Chọn bảng tính có sẵn (TinoPay tự thêm hàng tiêu đề nếu trang tính còn trống). Chọn trang tính (sheet) nhận dữ liệu và tuỳ chọn Tự động xóa giao dịch cũ sau: Không xóa (giữ toàn bộ, bảng tính lớn dần), 60 phút, 4 tiếng, 8 tiếng hoặc 1 ngày (xoá dòng cũ hơn mốc này, dọn mỗi 10 phút).
- Phạm vi: Tất cả ngân hàng (mọi tài khoản, kể cả tài khoản thêm sau) hoặc Tùy chỉnh ngân hàng (chỉ tài khoản bạn chọn, lọc tiếp theo tài khoản ảo; không chọn tài khoản ảo nào là nhận toàn bộ giao dịch của tài khoản đó). Loại giao dịch: Tất cả, Tiền vào, Tiền ra. Ẩn số dư giao dịch: cột Lũy kế để trống, dùng khi chia sẻ bảng tính cho người khác.
- Xác nhận: đặt tên gợi nhớ, kiểm bảng tóm tắt rồi bấm Lưu tích hợp. Từ đó mọi giao dịch khớp điều kiện được ghi vào bảng tính.
Dòng đã xoá khỏi bảng tính vẫn còn trong TinoPay: tra ở menu Giao dịch → Lịch sử giao dịch hoặc qua API lịch sử giao dịch.
Cột của bảng tính
TinoPay ghi đúng 10 cột theo thứ tự:
| Cột | Tiêu đề | Nội dung |
|---|---|---|
| A | Ngân hàng | tên đầy đủ của ngân hàng |
| B | Ngày giao dịch | dạng YYYY-MM-DD HH:MM:SS |
| C | Số tài khoản | số tài khoản ngân hàng nhận, chi tiền |
| D | Tài khoản phụ | số tài khoản ảo, trống nếu giao dịch không qua tài khoản ảo |
| E | Code TT | mã thanh toán trích từ nội dung chuyển khoản theo cấu trúc mã thanh toán; không khớp mã nào thì trống |
| F | Nội dung thanh toán | nội dung chuyển khoản |
| G | Loại | Tiền vào hoặc Tiền ra |
| H | Số tiền | số tiền giao dịch |
| I | Mã tham chiếu | mã tham chiếu của ngân hàng |
| J | Lũy kế | số dư sau giao dịch, trống nếu bật Ẩn số dư |
Quyền và lưu ý
- TinoPay chỉ xin một quyền trên Google Drive:
drive.file, chỉ những file TinoPay tạo hoặc bạn chọn qua hộp thoại chọn file; TinoPay không đọc được file khác trong Drive. Thu hồi bất kỳ lúc nào tại myaccount.google.com/permissions hoặc bằng cách xoá tích hợp. - Không đổi tên, chèn hay xoá 10 cột mặc định: TinoPay ghi theo thứ tự cột, đổi cấu trúc thì dữ liệu ghi sai chỗ. Cột riêng thêm ở bên phải cột J. Không xoá hàng tiêu đề ở dòng 1.
- Thu hồi quyền phía Google hoặc xoá bảng tính: tích hợp tự chuyển sang Tạm dừng kèm thông báo lỗi; liên kết lại tài khoản Google để tiếp tục.
- Tạo được nhiều tích hợp trỏ tới nhiều bảng tính, ví dụ mỗi chi nhánh một bảng.
- Cột Đẩy gần nhất ở trang danh sách là lần ghi thành công gần nhất; có lỗi thì biểu tượng cảnh báo cạnh tên tích hợp hiện chi tiết khi rê chuột.
| Hiện tượng | Nguyên nhân thường gặp |
|---|---|
| bảng tính không có dòng nào | chưa có giao dịch khớp điều kiện lọc ở bước 3, hoặc tích hợp đang Tạm dừng |
| tích hợp tự chuyển sang Tạm dừng | quyền Google đã bị thu hồi, hoặc bảng tính bị xoá, đổi chủ sở hữu |
| không tạo được bảng tính | ở bước cấp quyền chưa tích ô quyền Google Drive |
| dữ liệu ghi lệch cột | cấu trúc 10 cột mặc định đã bị sửa |
WordPress / WooCommerce
Plugin TinoPay Gateway thêm phương thức chuyển khoản bằng mã VietQR vào WooCommerce và tự xác nhận đơn hàng khi khách chuyển khoản. Plugin dùng webhook ở phía sau nhưng tự cấu hình, bạn không cần dựng endpoint.
- Khách đặt hàng; trang cảm ơn hiện mã VietQR, nội dung chuyển khoản
DH<mã đơn>. - Khách quét và chuyển khoản; TinoPay ghi nhận giao dịch, trích mã
DH<mã đơn>. - Webhook gửi về website; plugin khớp đơn và đổi trạng thái.
- Chuyển đủ tiền: đơn chuyển sang trạng thái bạn chọn (mặc định Đang xử lý) và trừ tồn kho.
- Chuyển thiếu hoặc thừa: đơn giữ nguyên trạng thái, plugin ghi chú số tiền thiếu, thừa để bạn xử lý.
- Trang thanh toán của khách tự hiện "Bạn đã thanh toán thành công" khi đơn được xác nhận.
Yêu cầu: WordPress 5.6+, PHP 7.2+, đã cài WooCommerce; website chạy HTTPS (bắt buộc để nhận webhook và kết nối an toàn); tài khoản TinoPay (đăng nhập bằng tài khoản Tino) và ít nhất một tài khoản ngân hàng đã kết nối. Hiện tự xác nhận hỗ trợ BIDV và cần có tài khoản ảo.
Cài plugin
- Tải plugin TinoPay Gateway (.zip), hoặc trên web TinoPay: Tích hợp → WordPress → Tải plugin (.zip).
- Trong WordPress: Plugin → Cài mới → Tải plugin lên, chọn file zip, bấm Cài đặt rồi Kích hoạt.
- WooCommerce → Cài đặt → Thanh toán → TinoPay, bấm Kết nối TinoPay: trình duyệt chuyển sang TinoPay; đăng nhập bằng tài khoản Tino, kiểm tên website rồi bấm Cho phép kết nối.
- Chọn tài khoản ngân hàng (BIDV: chọn thêm tài khoản ảo, mã QR dùng số tài khoản ảo này) rồi bấm Hoàn tất thiết lập. Plugin tự tạo webhook trên TinoPay (xem ở Tích hợp → Webhooks) và đồng bộ cấu trúc mã thanh toán: mặc định tiền tố
DH, nội dungDH1234ứng với đơn #1234. - Đặt thử một đơn giá trị nhỏ, chọn TinoPay, quét QR và chuyển khoản: sau vài giây đơn tự chuyển trạng thái, có ghi chú "TinoPay: Đã nhận thanh toán…".
Website đã kết nối chỉ được xem thông tin tài khoản ngân hàng, tài khoản ảo; tạo webhook trỏ về chính website đó; xem và cập nhật cấu trúc mã thanh toán. Website không xem được mật khẩu và không chuyển được tiền.
| Tuỳ chọn trong plugin | Ý nghĩa |
|---|---|
| Tiền tố mã thanh toán | phải trùng Cài đặt → Cấu trúc mã thanh toán trên TinoPay |
| Trạng thái đơn khi hoàn tất | trạng thái gán cho đơn khi nhận đủ tiền (mặc định Đang xử lý) |
| Thông báo thành công | nội dung hiện cho khách sau khi thanh toán |
| Chế độ tải xuống | sản phẩm số: hiện link tải ngay sau khi thanh toán |
| Hiển thị tên ngân hàng | tên viết tắt, tên đầy đủ hoặc cả hai |
Quản lý kết nối: web TinoPay → Tích hợp → WordPress, mục Website đã kết nối liệt kê website và thời điểm dùng gần nhất. Ngắt kết nối thu hồi quyền ngay, website phải kết nối lại; webhook đã tạo vẫn giữ, quản lý ở trang Webhooks.
Cấu hình plugin thủ công
Không dùng Kết nối TinoPay (OAuth) thì cấu hình tay:
- Trong plugin: điền ngân hàng, số tài khoản (hoặc số tài khoản ảo), chủ tài khoản, tiền tố mã thanh toán và một API Key tự đặt (chỉ chữ và số, tối thiểu 10 ký tự).
- Trên TinoPay → Tích hợp → Webhooks → Thêm webhook: URL
https://<website-của-bạn>/wp-json/tinopay-gateway/v2/add-payment, Token đúng API Key ở bước 1, Sự kiện Tiền vào, bật Bỏ qua nếu không có mã thanh toán. - Trên TinoPay → Cài đặt → Cấu trúc mã thanh toán: thêm tiền tố trùng plugin, độ dài hậu tố đủ chứa mã đơn hàng (ví dụ 1–10, kiểu Chữ và số hoặc Chỉ số).
| Hiện tượng | Nguyên nhân thường gặp |
|---|---|
| khách chuyển khoản nhưng đơn không đổi trạng thái | nội dung chuyển khoản thiếu, sai mã DH<mã đơn>; tiền tố plugin khác cấu trúc mã trên TinoPay; webhook đang tạm dừng |
lịch sử webhook báo Invalid API Key | token của webhook trên TinoPay khác API Key trong plugin (cấu hình thủ công) |
lịch sử webhook báo Order not found | mã trích được không khớp đơn nào: kiểm lại độ dài hậu tố trong cấu trúc mã thanh toán |
| đơn ghi chú "thanh toán THIẾU/THỪA" | khách chuyển sai số tiền: đơn giữ nguyên trạng thái để bạn xử lý |
| bấm Kết nối TinoPay báo lỗi | website chưa chạy HTTPS, hoặc phiên kết nối quá 15 phút: bấm lại |
| không thấy mã QR ở trang cảm ơn | chưa chọn tài khoản ngân hàng, tài khoản ảo trong cài đặt plugin |
Chi tiết từng lần gửi (mã HTTP, dữ liệu gửi đi, phản hồi của website) ở web TinoPay → Tích hợp → Lịch sử webhook.
HostBill
Module thanh toán TinoPay cho HostBill hiện mã VietQR ngay trên hoá đơn và tự ghi nhận thanh toán khi khách chuyển khoản: hoá đơn chuyển sang Paid sau vài giây, không cần đối soát tay. Module dùng webhook: mỗi giao dịch tiền vào có mã hoá đơn trong nội dung chuyển khoản được gửi về HostBill.
- Khách mở hoá đơn trên HostBill, chọn TinoPay; hoá đơn hiện mã VietQR, nội dung
<tiền tố><mã hoá đơn>(ví dụTNG2026). - Khách chuyển khoản; TinoPay trích mã thanh toán
TNG2026. - Webhook gửi về HostBill; module ghi nhận giao dịch, hoá đơn chuyển sang Paid.
- Chuyển đủ tiền: giao dịch được thêm vào hoá đơn, hoá đơn chuyển sang Paid.
- Chuyển thiếu hoặc dư: mặc định bỏ qua; bật Allow lower / higher amount nếu vẫn muốn ghi nhận.
- Trang hoá đơn của khách tự tải lại khi hoá đơn đã thanh toán.
Yêu cầu: quyền cài module thanh toán cho HostBill (thư mục includes/modules/Payment/); tài khoản TinoPay và ít nhất một tài khoản ngân hàng đã kết nối; với BIDV dùng tài khoản ảo nhận tiền.
Cài module
- Tải module HostBill TinoPay (.zip), giải nén vào thư mục module thanh toán của HostBill, được cấu trúc như khối dưới.
- HostBill Admin → Settings → Modules → Payment Modules → kích hoạt TinoPay - Quét QR Code chuyển khoản. Ghi lại ID module, dùng cho URL webhook ở bước 4.
- Cấu hình module theo bảng dưới.
- Trên TinoPay: Cài đặt → Cấu trúc mã thanh toán, thêm tiền tố trùng Payment Code Prefix (ví dụ
TNG), kiểu hậu tố Chỉ số, độ dài đủ chứa mã hoá đơn (ví dụ 1–10). Rồi Tích hợp → Webhooks → Thêm webhook theo bảng cuối mục này; có thể bật Bỏ qua nếu không có mã thanh toán để chỉ gửi giao dịch có mã hoá đơn. - Kiểm tra: tạo một hoá đơn nhỏ, chọn TinoPay; hoá đơn hiện mã QR là module đã chạy. Chuyển khoản thử: vài giây sau hoá đơn chuyển sang Paid. Chi tiết từng lần gửi ở Tích hợp → Lịch sử webhook trên TinoPay.
includes/modules/Payment/tinopay/class.tinopay.php
includes/modules/Payment/tinopay/user/class.tinopay_controller.php| Trường của module | Mô tả |
|---|---|
| TinoPay URL | https://pay.tino.vn |
| Bank Info | mỗi dòng một tài khoản nhận tiền, dạng ở khối dưới; với BIDV điền số tài khoản ảo; để trống tối thiểu, tối đa là không giới hạn; nhiều dòng thì khách được chọn ngân hàng |
| Payment Code Prefix | tiền tố nội dung chuyển khoản, ví dụ TNG → nội dung TNG2026 cho hoá đơn 2026 |
| Template QR | khung TinoPay kèm logo ngân hàng, hoặc chỉ hiện mã QR |
| Webhook Token | chuỗi bí mật, phải trùng Token xác thực của webhook trên TinoPay |
| Allow lower / higher amount | cho phép ghi nhận khi khách chuyển thiếu, dư so với hoá đơn |
| Periodic invoice status check interval | chu kỳ trang hoá đơn kiểm tra đã thanh toán chưa, 1–10 giây, mặc định 3 |
mã_ngân_hàng|tên_chủ_tài_khoản|số_tài_khoản|số_tiền_tối_thiểu|số_tiền_tối_đa
BIDV|CONG TY ABC|9624QA01||| Webhook trên TinoPay | Giá trị |
|---|---|
| URL nhận webhook | https://<địa-chỉ-hostbill>/index.php?cmd=callback&module=<ID module> |
| Tài khoản ngân hàng | tài khoản đã khai ở Bank Info (BIDV: chọn tài khoản ảo) |
| Token xác thực | trùng Webhook Token của module |
| Sự kiện | Tiền vào |
Webhook gửi về HostBill
HostBill nhận đúng request webhook chung của TinoPay. Module lấy mã hoá đơn từ code (trống thì tìm trong content), bỏ tiền tố và InvoicePrefix của HostBill, kiểm số tiền rồi thêm giao dịch vào hoá đơn với mã giao dịch là transaction_id, nên gửi lại cùng giao dịch không bị ghi trùng.
| Kết quả | Mã HTTP module trả |
|---|---|
| ghi nhận thành công | 201 |
| bỏ qua: giao dịch đã ghi nhận, tiền ra, không có mã hoá đơn, không thấy hoá đơn, chuyển thiếu, dư (khi không cho phép) | 200 |
| sai token | 401 |
| dữ liệu không hợp lệ | 400 |
TinoPay tự gửi lại webhook khi nhận mã khác 2xx: xem Phản hồi và thử lại.
| Hiện tượng | Nguyên nhân thường gặp |
|---|---|
| hoá đơn không hiện QR | Bank Info sai định dạng, hoặc số tiền hoá đơn nằm ngoài khoảng tối thiểu, tối đa của mọi dòng |
lịch sử webhook báo 401 | Webhook Token trên HostBill khác Token xác thực của webhook trên TinoPay |
lịch sử webhook báo 200 nhưng hoá đơn chưa Paid | xem message trong phản hồi: thiếu mã hoá đơn (tiền tố trên TinoPay khác Payment Code Prefix), chuyển thiếu, dư, hoặc sai mã hoá đơn |
| webhook không gửi tới HostBill | webhook chọn sai tài khoản, tài khoản ảo; sự kiện không phải Tiền vào; hoặc URL sai ID module |
Sapo
Tự xác nhận thanh toán chuyển khoản cho đơn hàng trên website bán hàng Sapo: trang cảm ơn hiện mã VietQR kèm nội dung chuyển khoản; khách chuyển xong, vài giây sau đơn trên Sapo được ghi nhận đã thanh toán.
- Khách đặt hàng, chọn Chuyển khoản ngân hàng; trang cảm ơn hiện mã VietQR, nội dung
DH<số đơn>. - Khách chuyển khoản; TinoPay trích số đơn từ nội dung chuyển khoản.
- TinoPay gọi Sapo Admin API ghi nhận thanh toán cho đơn; đơn chuyển sang Đã thanh toán.
- Chuyển đủ tiền (hoặc dư): TinoPay ghi nhận thanh toán bằng đúng tổng tiền của đơn.
- Chuyển thiếu: đơn giữ nguyên, TinoPay ghi lại ở mục Đối soát gần đây để bạn xử lý.
- Đơn đã thanh toán hoặc đã huỷ: bỏ qua, không ghi nhận trùng.
- Trang cảm ơn tự đổi sang "Đã nhận … cho đơn …" khi đơn được ghi nhận.
Yêu cầu: website bán hàng Sapo (quản trị dạng https://ten-cua-hang.mysapo.net/admin), chưa hỗ trợ Sapo Omni / POS; tài khoản TinoPay và ít nhất một tài khoản ngân hàng đã kết nối; với BIDV cần chọn tài khoản ảo nhận tiền.
Cài đặt Sapo
- Sapo Admin → Ứng dụng → Ứng dụng riêng → Tạo ứng dụng riêng, đặt tên (ví dụ
TinoPay). Phân quyền: dòng Đơn hàng, giao dịch và vận chuyển chọn Đọc và ghi, quyền khác Không cho phép. Bấm Lưu, sao chép API Key và API Secret. - Web TinoPay → Tích hợp → Sapo → Thêm cửa hàng, điền theo bảng dưới. TinoPay kiểm kết nối tới Sapo trước khi lưu; bấm Kiểm tra kết nối để thử trước.
- Sapo Admin → Cấu hình → Phương thức thanh toán → Phương thức thanh toán thủ công → Thêm phương thức. Loại: Chuyển khoản. Tên cần có chữ "Chuyển khoản", ví dụ
Chuyển khoản ngân hàng (Tự động xác nhận): trang cảm ơn chỉ hiện QR cho đơn chọn phương thức chuyển khoản, không hiện cho COD. Hướng dẫn thanh toán, ví dụ: "Quét mã QR ở trang hoàn tất đơn hàng, giữ nguyên nội dung chuyển khoản. Đơn được xác nhận tự động sau vài giây." Bấm Lưu. - Trên TinoPay, ở thẻ cửa hàng, bấm Copy tại Mã nhúng trang thanh toán. Trong Sapo Admin → Cấu hình → Trang thanh toán → mục Xử lý đơn hàng, dán vào ô Nội dung thông báo thêm (hoặc Nội dung chân trang thanh toán) rồi Lưu.
- Kiểm tra: đặt thử một đơn, chọn phương thức chuyển khoản ở bước 3; trang hoàn tất đơn hàng hiện QR là cấu hình đã đúng. Chuyển khoản thử một khoản nhỏ: đơn trên Sapo chuyển sang Đã thanh toán và dòng đối soát hiện ở trang Tích hợp → Sapo.
| Trường khi thêm cửa hàng | Mô tả |
|---|---|
| Đặt tên cho tích hợp | tên tuỳ ý, ví dụ Sapo Web |
| Ngân hàng nhận thanh toán | tài khoản ngân hàng hiện trên QR; với BIDV chọn thêm tài khoản ảo, chỉ giao dịch vào tài khoản ảo này mới được đối soát |
| Tiền tố mã thanh toán | chọn trong các tiền tố đã khai ở Cài đặt → Cấu trúc mã thanh toán (ví dụ DH); nội dung chuyển khoản là tiền tố + số đơn Sapo, ví dụ đơn #1001 → DH1001 |
| URL cửa hàng | dạng https://ten-cua-hang.mysapo.net (địa chỉ .mysapo.net, không dùng tên miền riêng) |
| API Key / API Secret | lấy ở bước 1; secret được mã hoá khi lưu, khi sửa để trống thì giữ secret cũ |
| Tùy chỉnh cấu hình tham số | tham số của giao dịch TinoPay tạo trên đơn Sapo, mục dưới |
| Trạng thái | Kích hoạt, Tạm dừng |
Mã nhúng có dạng dưới (dán nguyên mã đã sao chép, gồm cả địa chỉ script). Mã chỉ chứa khoá công khai của cửa hàng, không chứa API Key, API Secret. Trang cảm ơn chỉ hiện QR cho đơn tạo trong 7 ngày gần nhất.
<script src="…/sapo/<khoá-cửa-hàng>.js" data-order="{{ order.order_number }}" async></script>Tham số giao dịch Sapo
Khi khách chuyển đủ tiền, TinoPay tạo một giao dịch thanh toán trên đơn qua Sapo Transaction API (POST /admin/orders/{id}/transactions.json) với số tiền bằng tổng đơn. Ba tham số quyết định giao dịch đó:
| Tham số | Giá trị | Ý nghĩa |
|---|---|---|
kind | capture (mặc định), sale, authorization | loại giao dịch; capture là thu tiền cho đơn đã đặt, hợp với đơn chuyển khoản thủ công |
source_name | Không tùy chỉnh, web, pos, iphone, android | nguồn giao dịch; để trống thì Sapo tự đặt |
status | Không tùy chỉnh, success, pending, failure, error | trạng thái giao dịch; để trống thì Sapo tự đặt |
Để mặc định (capture, không tùy chỉnh) hợp với đa số cửa hàng; chỉ đổi khi đơn trên Sapo chưa chuyển sang Đã thanh toán sau khi ghi nhận.
Đối soát Sapo
Trang Tích hợp → Sapo hiện 20 giao dịch có mã đơn gần nhất:
| Trạng thái | Ý nghĩa |
|---|---|
| Đã ghi nhận | đã ghi nhận thanh toán cho đơn trên Sapo |
| Chuyển thiếu | số tiền nhỏ hơn tổng đơn, chưa ghi nhận; xử lý thủ công trên Sapo |
| Đã thanh toán trước | đơn đã ở trạng thái đã thanh toán, bỏ qua |
| Không thấy đơn | không có đơn với số đơn trong nội dung chuyển khoản |
| Đơn đã huỷ | đơn đã huỷ, không ghi nhận |
| Lỗi | Sapo từ chối hoặc không kết nối được (sai API Key, API Secret, ứng dụng bị xoá…) |
Bấm Gửi lại hook ở trang chi tiết giao dịch để đối soát lại sau khi sửa cấu hình; đơn đã thanh toán không bị ghi nhận trùng.
| Hiện tượng | Nguyên nhân thường gặp |
|---|---|
| trang cảm ơn không hiện QR | chưa dán mã nhúng, tích hợp đang tạm dừng, hoặc tên phương thức thanh toán trên Sapo không có chữ "Chuyển khoản" |
| lưu tích hợp báo sai API Key, API Secret | ứng dụng riêng chưa có quyền Đọc và ghi đơn hàng, hoặc sao chép thiếu ký tự |
| khách đã chuyển nhưng đơn chưa xác nhận | nội dung chuyển khoản thiếu mã đơn (DH1001), chuyển thiếu tiền, hoặc chuyển vào tài khoản, tài khoản ảo khác tài khoản đã chọn; xem mục Đối soát gần đây |