ธนาคาร (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.
Metadata
Release files for thanakan 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| thanakan-2.1.0.tar.gz | 6.1 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| thanakan-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.1 MB
Release files / thanakan-2.1.0.tar.gz
| Download URL | thanakan-2.1.0.tar.gz |
|---|---|
| Size | 6.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
63389891c01b5e3f070cd8a5760a38a8710493d3578b8160456465943ee928d6
|
|
BLAKE2b-256 checksum How to use checksums |
ceb34923d01cdae973f30db1f31c3232a9dab583d849973a8a42ceda0a719571
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / thanakan-2.1.0-py3-none-any.whl
| Download URL | thanakan-2.1.0-py3-none-any.whl |
|---|---|
| Size | 18.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b728a04cceb578fbcd7db6ebf98fa1c6bd1525c828bfa52e7ee8976f3045b4cb
|
|
BLAKE2b-256 checksum How to use checksums |
fab9fe1cd8d0018f548fc87af573e5966076ea2c0d53f27bafde242736deb051
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for thanakan 2.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.