Giới thiệu
Hôm nay vibe coding tính năng xác nhận thanh toán tự động, tôi chợt nhớ lại bài tập thiết kế hệ thống thanh toán mà thầy giao hồi năm 3 đại học.

Đề bài yêu cầu thiết kế hệ thống thanh toán học phí cho sinh viên trường với 4 tiêu chí:
- Nộp học phí đầy đủ, đúng hạn - Đảm bảo sinh viên thanh toán đúng số tiền và không trễ deadline
- Chi phí thấp nhất - Giảm thiểu phí giao dịch, không phát sinh chi phí ẩn
- Quy trình thống kê, theo dõi, báo cáo đơn giản nhanh chóng - Phòng tài chính dễ dàng quản lý
- Phù hợp với sinh viên, trải nghiệm tốt - Giao diện thân thiện, thanh toán mọi lúc mọi nơi
Nghe thì có vẻ straightforward, nhưng khi bắt tay vào làm mới thấy khó. Đối với một sinh viên năm 3 không có doanh nghiệp, không có giấy phép kinh doanh, và ngân sách bằng 0 - việc tích hợp cổng thanh toán gần như là... mission impossible.
Tôi còn nhớ đã dành cả tuần chỉ để research các cổng thanh toán, gửi email hỏi thăm MoMo, VNPay - và nhận lại toàn những yêu cầu mà sinh viên không thể đáp ứng.
Tại sao lại khó đến vậy?
- MoMo, VNPay: Yêu cầu doanh nghiệp, giấy phép kinh doanh
- Chi phí cao: Phí tích hợp + phí giao dịch không phù hợp dự án nhỏ
- Quy trình phức tạp: Ký hợp đồng, chờ duyệt, test sandbox...
Giờ đây, với SePay, mọi thứ đã khác. Cá nhân cũng có thể tích hợp thanh toán tự động với chi phí gần như bằng 0.
SePay là gì?
SePay là công ty fintech Việt Nam chuyên về giải pháp thanh toán qua Open Banking. Điểm đặc biệt:
- Không cần đăng nhập Internet Banking: Hoạt động hoàn toàn qua API
- Webhook realtime: Nhận thông báo giao dịch trong ~10 giây
- Hỗ trợ 30+ ngân hàng: MB, VPBank, VietinBank, BIDV, TPBank, ACB...
Lợi ích thực tế từ SePay:
- Giảm ~50% chi phí cổng thanh toán
- Tiết kiệm ~80% thời gian đối soát
- Cải thiện 90% trải nghiệm thanh toán
Ngân hàng hỗ trợ API
SePay tích hợp trực tiếp với nhiều ngân hàng Việt Nam qua Open Banking API. Dưới đây là danh sách ngân hàng hỗ trợ:
| Ngân hàng | Tốc độ | Thủ tục | Tính năng hỗ trợ |
|---|---|---|---|
| VPBank | 1-2 giây | Online | ✅ Đồng bộ tiền vào |
| TPBank | 1-2 giây | Online | ✅ Đồng bộ tiền vào/ra · ✅ Đồng bộ số dư |
| VietinBank | 1-2 giây | Online | ✅ Đồng bộ tiền vào/ra · ✅ Đồng bộ số dư · 🎁 Tặng đến 1 triệu đồng |
| ACB | 1-2 giây | Online | ✅ Đồng bộ tiền vào/ra · ✅ Tài khoản ảo (VA) |
| BIDV | 0-1 giây | Online | ✅ Đồng bộ tiền vào · ✅ Tài khoản ảo (VA) |
| MBBank | 1-3 giây | Online | ✅ Đồng bộ tiền vào/ra · ✅ Tài khoản ảo (VA) |
| OCB | 4-6 giây | Online | ✅ Đồng bộ tiền vào · ✅ Tài khoản ảo (VA) |
| KienLongBank | 0-1 giây | Online | ✅ Đồng bộ tiền vào · ✅ Tài khoản ảo (VA) |
| MSB | 0-1 giây | Online | ✅ Đồng bộ tiền vào · ✅ Tài khoản ảo (VA) |
Giải thích tính năng:
- Đồng bộ tiền vào/ra: Nhận webhook khi có giao dịch tiền vào hoặc tiền ra
- Đồng bộ số dư: Theo dõi số dư tài khoản realtime
- Tài khoản ảo (VA): Tạo số tài khoản riêng cho từng khách hàng/đơn hàng
Mô hình hoạt động
Đây là luồng thanh toán đơn giản mà tôi đang sử dụng:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Khách │ │ Website │ │ SePay │
│ hàng │ │ /App │ │ API │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
│ 1. Tạo đơn │ │
│─────────────────>│ │
│ │ │
│ 2. Hiển thị QR │ │
│<─────────────────│ │
│ │ │
│ 3. Quét QR & │ │
│ Chuyển khoản │ │
│─────────────────────────────────────>│
│ │ │
│ │ 4. Webhook │
│ │<─────────────────│
│ │ (~10 giây) │
│ │ │
│ 5. Xác nhận │ │
│ thanh toán │ │
│<─────────────────│ │
│ │ │
└──────┴──────────────────┴──────────────────┘
Tóm tắt luồng xử lý:
- Khách tạo đơn → Hệ thống sinh mã QR VietQR
- Khách quét QR → Chuyển khoản với nội dung chứa mã đơn
- SePay nhận thông báo → Gửi webhook về website (~10s)
- Hệ thống đối soát → Khớp mã đơn, cập nhật trạng thái
- Hiển thị xác nhận → Khách thấy "Thanh toán thành công!"
Muốn xem chi tiết kỹ thuật? Đọc hướng dẫn đầy đủ tại SePay - Lập trình cổng thanh toán↗
Bảng giá SePay
| Gói | Phí/tháng | Giao dịch | Ngân hàng |
|---|---|---|---|
| FREE | 0đ | 50 GD/tháng | 9 ngân hàng |
| STARTUP | 120.000đ | 180 - 986.000 GD | 9 ngân hàng |
| PINNACLE | 1.430.000đ | Lên đến 986.000 GD | 30+ ngân hàng |
| SHOP | 99.000đ | Không giới hạn | Theo cửa hàng |
Gói FREE hoàn toàn miễn phí - đủ cho dự án cá nhân, startup giai đoạn đầu, hoặc... làm bài tập đại học!
Tích hợp với Lark Base - Báo cáo tự động
Điều tôi thích ở SePay là khả năng tích hợp đa kênh. Sau khi nhận webhook, tôi đẩy dữ liệu giao dịch sang Lark Base để:
- Đối soát realtime: Team kế toán thấy ngay giao dịch mới
- Báo cáo tự động: Dashboard cập nhật theo thời gian thực
- Trigger workflow: Tự động cập nhật đơn hàng, gửi thông báo
Demo thực tế: Bảng giao dịch realtime
Đây là dữ liệu giao dịch được sync tự động từ SePay về Lark Base:
Dashboard báo cáo tổng hợp
Và đây là dashboard tự động tổng hợp từ dữ liệu giao dịch:
Lợi ích của việc sync về Lark Base:
- Không cần tự build dashboard
- Chia sẻ cho team kế toán xem trực tiếp
- Tạo báo cáo, filter, chart chỉ bằng drag & drop
- Tích hợp workflow automation của Lark
Các Use Case thực tế
Ngoài việc xác nhận thanh toán tự động, SePay còn mở ra nhiều ứng dụng thực tế khác:
1. Đối soát dòng tiền tự động
Vấn đề truyền thống: Kế toán phải đăng nhập từng app ngân hàng, xuất sao kê, copy-paste vào Excel để đối soát. Mất 2-4 giờ/ngày cho việc này.
Giải pháp với SePay:
- Webhook gửi về mọi giao dịch tiền vào/ra realtime
- Tự động ghi nhận vào hệ thống kế toán (Lark Base, Google Sheets, ERP...)
- So khớp tự động với đơn hàng, hóa đơn
- Cảnh báo ngay khi có giao dịch bất thường
Trước: 2-4 giờ/ngày đối soát thủ công
Sau: 0 phút - hoàn toàn tự động, chỉ cần review báo cáo
2. Kiểm soát nguồn tiền các quỹ cho Startup
Bối cảnh: Startup thường có nhiều tài khoản ngân hàng cho các mục đích khác nhau: quỹ lương, quỹ marketing, quỹ dự phòng, quỹ đầu tư...
Giải pháp với SePay:
- Theo dõi số dư realtime của tất cả tài khoản trên 1 dashboard
- Cảnh báo tự động khi quỹ nào đó dưới ngưỡng an toàn
- Báo cáo dòng tiền theo từng quỹ, theo ngày/tuần/tháng
- Audit trail đầy đủ - ai chuyển, chuyển đi đâu, bao nhiêu
Ví dụ thực tế:
- Quỹ lương: Cảnh báo khi số dư < 500 triệu (trước ngày lương 5 ngày)
- Quỹ marketing: Theo dõi chi tiêu daily, so với budget
- Quỹ dự phòng: Chỉ nhận tiền vào, cảnh báo mọi giao dịch ra
3. Tự động hóa thu phí dịch vụ
Ứng dụng cho:
- Trung tâm ngoại ngữ, yoga, gym - thu học phí theo kỳ
- SaaS/Subscription - xác nhận thanh toán gói tháng/năm
- Marketplace - nhận tiền từ buyer, chia cho seller
Luồng hoạt động:
- Hệ thống tạo mã thanh toán unique cho mỗi học viên/khách hàng
- Khách chuyển khoản với mã này
- Webhook → Tự động gia hạn dịch vụ, mở khóa tính năng
- Gửi email/SMS xác nhận cho khách
4. Quản lý thu chi cho hộ kinh doanh cá thể
Đối tượng: Quán cafe, cửa hàng nhỏ, freelancer, tiktoker bán hàng...
Lợi ích:
- Không cần mua phần mềm kế toán đắt tiền
- Mọi giao dịch tự động ghi vào Lark Base/Google Sheets
- Cuối tháng có sẵn báo cáo thu chi, lãi lỗ
- Dễ dàng khai thuế, không sợ thiếu sót
Chi phí: Gói FREE (50 GD/tháng) đủ cho hộ kinh doanh nhỏ. Gói STARTUP (120k/tháng) cho cửa hàng đông khách.
Phương án thay thế: Import file sao kê ngân hàng
Không phải lúc nào cũng cần realtime. Với nhiều doanh nghiệp, đối soát cuối ngày hoặc định kỳ là đủ. Đây là giải pháp thực tế tôi đã triển khai cho khách hàng:

Cách hoạt động
- Xuất file sao kê từ Internet Banking (Excel/CSV)
- Upload lên Lark Base qua giao diện đã cấu hình sẵn
- Hệ thống tự động parse và đồng bộ giao dịch vào bảng dữ liệu
- Đối soát tự động với đơn hàng, hóa đơn, công nợ
Khi nào nên dùng phương án này?
| Trường hợp | Lý do |
|---|---|
| Ngân hàng chưa có API | Techcombank, Sacombank, VIB... chưa được SePay hỗ trợ |
| Doanh nghiệp lượng giao dịch lớn | Hàng nghìn giao dịch/ngày, cần đối soát batch thay vì từng giao dịch |
| Không cần xác nhận realtime | B2B, thanh toán hợp đồng, công nợ theo kỳ |
| Muốn tiết kiệm chi phí | Không mất phí SePay, chỉ cần Lark Base (có gói miễn phí) |
Đây là use case thực tế đã triển khai - không phải lý thuyết. Phù hợp với doanh nghiệp cần báo cáo đối soát hàng ngày/tuần/tháng nhưng không yêu cầu xác nhận thanh toán tức thì.
So sánh 2 phương án
| Tiêu chí | SePay API (Realtime) | Import File (Batch) |
|---|---|---|
| Tốc độ | ~10 giây | Theo lịch import |
| Chi phí | Từ 0đ - 1.4tr/tháng | 0đ (chỉ cần Lark) |
| Ngân hàng | 9-30 bank | Tất cả ngân hàng |
| Phù hợp | E-commerce, SaaS | B2B, doanh nghiệp lớn |
| Độ phức tạp | Cần setup webhook | Chỉ cần upload file |
So sánh với giải pháp khác
| Tiêu chí | SePay | MoMo Business | VNPay |
|---|---|---|---|
| Yêu cầu doanh nghiệp | Không | Có | Có |
| Phí tích hợp | Miễn phí | Có phí | Có phí |
| Gói miễn phí | 50 GD/tháng | Không | Không |
| Thời gian setup | Vài phút | Vài tuần | Vài tuần |
| API đơn giản | Rất đơn giản | Phức tạp | Trung bình |
Kết luận
Từ một bài tập năm 3 đại học đến giờ triển khai thực tế, tôi thấy rào cản tích hợp thanh toán đã giảm đáng kể. Với SePay:
- Cá nhân cũng làm được - không cần giấy phép kinh doanh
- Chi phí thấp - gói FREE đủ dùng cho dự án nhỏ
- Dễ tùy biến - API đơn giản, webhook realtime
- Đa kênh - Tích hợp Lark, Telegram, App...
Nếu bạn đang tìm giải pháp thanh toán cho dự án cá nhân, startup, hoặc đơn giản là muốn học cách tích hợp payment gateway - SePay là lựa chọn đáng thử.
Bắt đầu miễn phí với SePay:
Đăng ký tài khoản SePay ngay↗ - Gói FREE 50 giao dịch/tháng, không cần thẻ tín dụng.
Bạn cần hỗ trợ tích hợp SePay + Lark Base cho hệ thống của mình? Liên hệ với tôi để được tư vấn chi tiết.
Bài viết hữu ích?
Chia sẻ để nhiều người biết đến!
>_ LLM-Friendly Copy
Copy as Markdown to use with ChatGPT, Claude, or other AI tools



