Thai bank utilities - QR slip parser & bank API clients
Project description
ธนาคาร (Thanakan) v2
เครื่องมือจัดการธนาคารไทยครบวงจร — Thai Bank Utilities
✨ ใหม่: End-to-End Statement Reconciliation
ดาวน์โหลด Statement จาก Email → แปลงเป็น Excel → นำเข้า Peak บัญชี ในคำสั่งเดียว!
flowchart LR
A["📧 Gmail<br/>อีเมล Statement"] --> B["📄 PDF<br/>ดาวน์โหลดอัตโนมัติ"]
B --> C["🔍 Parse<br/>อ่าน & รวมข้อมูล"]
C --> D["📊 Excel<br/>Peak Format"]
D --> E["✅ Peak<br/>นำเข้าบัญชี"]
# ดาวน์โหลดจาก Gmail และส่งออกเป็น Peak format (3 เดือนล่าสุด)
thanakan accounting peak output.xlsx --since 3m
# หรือใช้ไฟล์ PDF ที่มีอยู่แล้ว
thanakan accounting peak output.xlsx ./statements/
ฟีเจอร์ครบถ้วน:
- ✅ ดาวน์โหลด Statement อัตโนมัติจาก Gmail (KBank, BBL, SCB)
- ✅ รองรับ PDF ที่มีรหัสผ่าน
- ✅ รวมหลาย Statement เป็นบัญชีเดียว (deduplicate)
- ✅ ตรวจสอบความต่อเนื่องของยอดเงิน
- ✅ ส่งออก Peak Import Statement format
แพ็คเกจ (Packages)
ติดตั้งเฉพาะที่ต้องการ หรือติดตั้งทั้งหมดด้วย thanakan
| แพ็คเกจ | คำอธิบาย | Install |
|---|---|---|
thanakan-qr |
อ่าน QR จากสลิปโอนเงิน | pip install thanakan-qr |
thanakan-oauth |
เชื่อมต่อ API ธนาคาร (SCB, KBank) | pip install thanakan-oauth |
thanakan-statement |
อ่าน PDF Statement | pip install thanakan-statement |
thanakan-mail |
ดาวน์โหลด Statement จาก Gmail | pip install thanakan-mail |
thanakan-accounting |
ส่งออกไป Peak บัญชี | pip install thanakan-accounting |
การติดตั้ง (Installation)
# ติดตั้งทุกแพ็คเกจ
pip install thanakan
# หรือ
uv add thanakan
ติดตั้งแบบ Global
uv tool install thanakan
# หรือ
pipx install thanakan
รันโดยไม่ต้องติดตั้ง (uvx)
uvx thanakan qr slip.png
uvx thanakan statement parse statement.pdf
System Dependencies
การอ่าน QR ต้องติดตั้ง libzbar:
# Ubuntu/Debian
sudo apt-get install libzbar0
# macOS
brew install zbar
การใช้งาน (Usage)
อ่าน QR จากสลิป
# จากไฟล์รูป
thanakan qr slip.png
# จาก clipboard (macOS)
pbpaste | thanakan qr
# Pipe กับ jq
thanakan qr slip.png | jq .payload
อ่าน Statement PDF
# อ่านไฟล์เดียว
thanakan statement parse statement.pdf
# อ่านทั้ง directory
thanakan statement parse ./statements/
# ส่งออกเป็น Excel
thanakan statement export ./statements/ output.xlsx --format excel
ดาวน์โหลดจาก Gmail
# Authenticate ครั้งแรก
thanakan mail auth
# ดาวน์โหลด Statement (30 วันล่าสุด)
thanakan mail download kbank
thanakan mail download bbl --output ./statements
thanakan mail download all --since 3m
ส่งออกไป Peak
# ดาวน์โหลดจาก Gmail + ส่งออก Peak
thanakan accounting peak output.xlsx
# จากไฟล์ PDF ที่มีอยู่
thanakan accounting peak output.xlsx ./statements/
# เลือกช่วงเวลา
thanakan accounting peak output.xlsx --since 3m --until 1m
Python API
# ใช้ main package
from thanakan import SlipQRData, SCBAPI, KBankAPI
# หรือ import โดยตรง
from thanakan_qr import SlipQRData
from thanakan_oauth import SCBAPI, KBankAPI
from thanakan_statement import parse_pdf, consolidate_by_account
อ่าน QR
from PIL import Image
from thanakan import SlipQRData
image = Image.open("slip.png")
data = SlipQRData.create_from_image(image)
print(data.payload.sending_bank_id)
print(data.payload.transaction_ref_id)
อ่าน Statement
from thanakan_statement import parse_all_pdfs, consolidate_by_account
statements = parse_all_pdfs("./statements/")
accounts = consolidate_by_account(statements, preferred_language="en")
for account in accounts:
print(f"{account.account_number}: {len(account.all_transactions)} รายการ")
ธนาคารที่รองรับ (Supported Banks)
| ธนาคาร | QR | Statement | OAuth API | Gmail |
|---|---|---|---|---|
| KBank (กสิกร) | ✅ | ✅ | ✅ | ✅ |
| SCB (ไทยพาณิชย์) | ✅ | ✅ | ✅ | ✅ |
| BBL (กรุงเทพ) | ✅ | ✅ | — | ✅ |
| KTB (กรุงไทย) | ✅ | — | — | — |
| TTB (ทหารไทยธนชาต) | ✅ | — | — | — |
| BAY (กรุงศรี) | ✅ | — | — | — |
☕ สนับสนุน (Support)
หากโปรเจคนี้มีประโยชน์ สามารถสนับสนุนได้ที่:
📄 License
Thanakan is fair-code distributed under the Sustainable Use License and Thanakan Enterprise License.
- Source Available: Always visible source code
- Self-Hostable: Deploy anywhere
- Extensible: Add your own functionality
Enterprise licenses available for additional features and support.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thanakan-2.1.0.tar.gz.
File metadata
- Download URL: thanakan-2.1.0.tar.gz
- Upload date:
- Size: 6.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63389891c01b5e3f070cd8a5760a38a8710493d3578b8160456465943ee928d6
|
|
| MD5 |
d00d72c62d0fc2631aa4106e051e414a
|
|
| BLAKE2b-256 |
ceb34923d01cdae973f30db1f31c3232a9dab583d849973a8a42ceda0a719571
|
File details
Details for the file thanakan-2.1.0-py3-none-any.whl.
File metadata
- Download URL: thanakan-2.1.0-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b728a04cceb578fbcd7db6ebf98fa1c6bd1525c828bfa52e7ee8976f3045b4cb
|
|
| MD5 |
7bee71cdeae66884060d675ae828225c
|
|
| BLAKE2b-256 |
fab9fe1cd8d0018f548fc87af573e5966076ea2c0d53f27bafde242736deb051
|