TPBank API client cho Node.js - Lấy lịch sử giao dịch TPBank. NÊN DÙNG PROXY XOAY để tránh bị block từ ngân hàng, CRON chậm thôi, không quá nhanh
npm install tpbank-api- Mở trình duyệt đã từng đăng nhập xác minh khuôn mặt
- Vào trang https://ebank.tpb.vn/retail/vX/ và đăng nhập
- Bấm F12, tab Console, paste đoạn code sau:
localStorage.deviceId
- Copy giá trị trả về và sử dụng trong code
import { TPBankClient } from 'tpbank-api';
const client = new TPBankClient({
username: 'your_username',
password: 'your_password',
deviceId: 'your_device_id',
accountId: 'your_account_id',
});
// Lấy lịch sử giao dịch (tự động login nếu chưa có token)
const data = await client.getTransactionHistory();
console.log(data);Tạo client mới.
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
username |
string |
Có | Tên đăng nhập TPBank |
password |
string |
Có | Mật khẩu đăng nhập |
deviceId |
string |
Có | Device ID lấy từ trình duyệt |
accountId |
string |
Có | Số tài khoản TPBank |
proxy |
ProxyConfig |
Không | Cấu hình proxy (xem bên dưới) |
Đăng nhập và lấy access token. Trả về Promise<LoginResult>.
const result = await client.login();
// { accessToken: '...', expiresIn: 900, expiresAt: 1234567890 }Lấy lịch sử giao dịch. Tự động gọi login() nếu chưa có token hợp lệ.
| Option | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
days |
number |
30 |
Số ngày lấy lịch sử |
pageNumber |
number |
1 |
Trang |
pageSize |
number |
400 |
Số giao dịch mỗi trang |
keyword |
string |
'' |
Từ khóa tìm kiếm |
const data = await client.getTransactionHistory({
days: 7,
pageNumber: 1,
pageSize: 100,
keyword: 'chuyen tien',
});Kiểm tra token hiện tại còn hợp lệ không. Trả về boolean.
Xóa token đã lưu.
Hỗ trợ HTTP, HTTPS, SOCKS4, SOCKS5:
const client = new TPBankClient({
username: 'your_username',
password: 'your_password',
deviceId: 'your_device_id',
accountId: 'your_account_id',
proxy: {
schema: 'socks5', // 'http' | 'https' | 'socks4' | 'socks5'
host: '127.0.0.1',
port: 1080,
username: 'proxy_user', // optional
password: 'proxy_pass', // optional
},
});import { TPBankClient, AuthenticationError, TokenExpiredError, TPBankError } from 'tpbank-api';
try {
const data = await client.getTransactionHistory();
} catch (error) {
if (error instanceof AuthenticationError) {
console.error('Lỗi đăng nhập:', error.message);
} else if (error instanceof TokenExpiredError) {
console.error('Token hết hạn:', error.message);
} else if (error instanceof TPBankError) {
console.error('Lỗi API:', error.message, error.statusCode);
}
}Package được tự động publish lên npm thông qua GitHub Actions khi push lên main.
# Bump version + tạo tag + push → auto publish lên npm
npm run release:patch # 1.0.0 → 1.0.1
npm run release:minor # 1.0.0 → 1.1.0
npm run release:major # 1.0.0 → 2.0.0Thêm secret NPM_TOKEN vào GitHub repo:
- Tạo Granular Access Token tại npmjs.com/settings/tokens
- Vào repo GitHub → Settings → Secrets and variables → Actions → New repository secret
- Name:
NPM_TOKEN, Value: token vừa tạo
- Mã nguồn được công khai, cho phép xem, sửa đổi, và cải thiện.
- Được phép sử dụng vào mục đích thương mại: tạo cổng thanh toán, thông báo giao dịch,...
- Không sử dụng thương mại: mở các dịch vụ tương tự Casso.vn
- Dịch vụ sử dụng API không chính thức của TPBank. Người phát triển không chịu trách nhiệm cho bất kỳ vấn đề pháp lý nào phát sinh.