Thu tiền cho máy tự động
& điểm self-service bằng API
Trạm sạc xe điện, trạm bơm xăng/nước, tủ cho thuê pin sạc dự phòng, máy bán tự động — khách quét VietQR là máy tự mở, thu theo lít/kWh/lượt, tiền về thẳng tài khoản, đối soát tự động 24/7.
Chạm QR · máy mở trong vài giây
Máy tự động và điểm self-service — trạm sạc xe điện, trạm bơm xăng/nước/rửa xe, tủ cho thuê pin sạc dự phòng, máy bán tự động — có chung một bài toán: đặt ngoài trời, không người trực, cần thu tiền không tiền mặt rồi tự mở thiết bị. Cùng một giải pháp API thanh toán xử lý tất cả: mỗi phiên gắn một mã đơn định danh (order_id) hoặc tài khoản định danh (VA), nên khách quét VietQR là máy tự mở, doanh thu tự khớp đúng máy — đúng trạm — đúng phiên, và tiền về thẳng tài khoản ngân hàng của chủ trạm.
Máy đứng ngoài trời, không người trực
— thu tiền & đối soát kiểu cũ dễ vỡ
Điểm chung của mọi máy self-service là không có thu ngân. Khách tự thao tác, tự trả tiền, và máy phải tự quyết định có mở hay không. Khi thu bằng tiền mặt hoặc chuyển khoản thủ công, hàng loạt vấn đề phát sinh:
- 1Tiền mặt trong máy — phải đi gom, dễ kẹt, dễ mất, khó đối soát cuối ngày.
- 2Chuyển khoản kèm nội dung — chủ trạm dò sao kê thủ công; máy không tự biết để mở.
- 3Nhiều máy, nhiều trạm — cuối tháng cộng doanh thu bằng tay, không biết máy nào hỏng.
- 4Khách chờ lâu — trả xong vẫn phải gọi nhờ mở máy ở nơi đáng lẽ nhanh nhất.

Gốc rễ không nằm ở khách, mà ở chỗ khâu thu tiền và lệnh mở máy chưa nối với nhau. Đây chính là phần mà một giải pháp API thanh toán tự động hóa gọn gàng: tiền về là máy mở, không cần con người ở giữa.
Một giải pháp API — mọi loại máy tự động
Mỗi phiên thu gắn một mã đơn định danh (order_id) hoặc tài khoản định danh (VA), nên tiền về tự khớp đúng máy — đúng trạm — đúng phiên, không cần dò nội dung chuyển khoản.
| Loại máy / điểm self-service | Cách thu | Máy tự làm gì khi tiền về |
|---|---|---|
| Trạm sạc xe điện | QR động theo phiên sạc | Mở cổng sạc, tính theo kWh / theo phút, hết tiền tự ngắt |
| Trạm bơm xăng / nước / rửa xe | QR động theo lượt bơm | Chạy bơm đúng số lít / số phút đã trả |
| Tủ cho thuê pin sạc dự phòng | QR đặt cọc + thuê | Nhả pin cho khách; trả pin thì tự hoàn cọc / trừ tiền thuê |
| Máy bán tự động (vending) | QR theo món | Nhả đúng sản phẩm khách chọn |
⚡ Trạm sạcTrạm sạc xe điện
Tính tiền theo kWh / theo phút, hết tiền tự ngắt.
Tiền về → mở cổng sạc
💧 Trạm bơmTrạm bơm xăng / nước / rửa xe
Bơm đúng số lít / số phút khách đã trả.
Tiền về → chạy bơm
🔋 Thuê pinTủ cho thuê pin sạc
Đặt cọc & thuê bằng QR; trả pin tự hoàn cọc / trừ tiền.
Tiền về → nhả pin
🥤 Máy bánMáy bán tự động (vending)
Nhả đúng sản phẩm khách chọn, xuất hoá đơn ngay.
Tiền về → nhả hàngTừ lúc khách quét tới lúc máy mở
Kết nối một lần
Firmware/phần mềm điều khiển máy lấy khóa truy cập TCONNECT API — cài đặt một lần, sandbox rồi production.
Sinh QR theo phiên
Khách bắt đầu phiên (sạc, bơm, thuê pin, mua hàng) → tạo QR động gắn mã máy · mã trạm · mã phiên.
Tiền về, máy tự mở
TCONNECT báo có tự động (IPN). Nhờ order_id, hệ thống mở đúng thiết bị và ghi nhận doanh thu đúng máy.
// order_id định danh cho phiên này (tối đa 36 ký tự) const payload = { req_id: "req-EV-Q7-TRU04-1930", order_id: "EV-Q7-TRU04-20260816-1930", va: "VA100023312", bincode: "970454", amount: 45000, }; // amount 0/bỏ trống = QR tĩnh; > 0 = QR động // Mã hoá AES-256-CBC (hex) rồi gọi API tạo QR const res = await fetch("https://sme-open-api-sandbox.tconnect.vn/openapi/v1/transaction/qr/generate", { method: "POST", headers: { "partner-code": partnerCode, "x-service-code": serviceCode, // lấy từ API Get Services Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", }, body: JSON.stringify({ data: encryptAES256(payload) }), });
Mỗi phiên một mã định danh — khớp không nhầm
| Loại máy | Ví dụ order_id | Ý nghĩa |
|---|---|---|
| Trạm sạc EV | EV-Q7-TRU04-20260816-1930 | Trạm Quận 7, trụ 04, phiên 19:30 |
| Trạm bơm nước | BOM-ANPHU-M02-20260816-07 | Trạm An Phú, máy 02, lượt 07 |
| Thuê pin sạc | PIN-VINCOM-K2-SLOT07-COC | Kiosk 2 Vincom, ngăn 07, khoản cọc |
| Máy bán tự động | VEND-TOAB-T1-A3-20260816 | Máy toà B tầng 1, ngăn hàng A3 |
Khi khách trả, TCONNECT báo có tự động về phần mềm của trạm (cơ chế IPN — Instant Payment Notification). Nhờ order_id, hệ thống biết ngay đây là phiên nào và tự làm đúng việc: tiền sạc về thì mở cổng sạc; tiền bơm về thì chạy bơm đúng số lít; tiền cọc pin về thì nhả pin rồi khi trả pin tự hoàn cọc/trừ tiền; tiền món về thì nhả hàng. Toàn bộ chạy ngầm 24/7 — chủ trạm không phải ngồi canh tin nhắn ngân hàng. Phần "báo có" chỉ cần đúng ba nguyên tắc: xác thực nguồn gọi, không ghi nhận trùng, và phản hồi nhanh (dưới vài giây). Chi tiết: Webhook/IPN xử lý callback an toàn.
Nhiều máy, nhiều trạm — gộp về một dashboard
Vì mỗi máy và mỗi phiên có VA/order_id định danh, doanh thu tự gộp về đúng máy — đúng trạm. Chủ trạm xem ngay: máy nào chạy tốt, máy nào ế, máy nào im lặng bất thường (có thể đang hỏng hoặc mất kết nối), trạm nào cần thêm trụ. Không còn cảnh cuối tháng đi gom tiền mặt từng máy rồi cộng sổ tay.
Xuất hóa đơn điện tử (tùy chọn)
Sau khi ghi nhận thanh toán, có thể gọi tiếp API hóa đơn điện tử của TCONNECT để tự phát hành hóa đơn/biên nhận cho khách — đúng Nghị định 123/2020 & 70/2025. Đây là bước bổ sung: nghiệp vụ thu tiền và mở máy tự động ở trên đã chạy độc lập. Tham khảo API Hóa đơn điện tử.
Quét là mở · tiền về là xong
Giải đáp nhanh cho chủ trạm & nhà tích hợp
order_id riêng, nên doanh thu tự gộp về đúng máy — đúng trạm trên cùng một dashboard, không cần cộng sổ tay.order_id gắn với máy và phiên, không dựa trên số tiền hay nội dung ghi chú.