Skip to main content

Thai bank utilities - QR slip parser & bank API clients

Project description

ธนาคาร (Thanakan) v2

Thanakan Banner

PyPI Sigstore Documentation

เครื่องมือจัดการธนาคารไทยครบวงจร — Thai Bank Utilities

Documentation | GitHub


✨ ใหม่: 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)

หากโปรเจคนี้มีประโยชน์ สามารถสนับสนุนได้ที่:

Ko-fi

📄 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

thanakan-2.1.0.tar.gz (6.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thanakan-2.1.0-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

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

Hashes for thanakan-2.1.0.tar.gz
Algorithm Hash digest
SHA256 63389891c01b5e3f070cd8a5760a38a8710493d3578b8160456465943ee928d6
MD5 d00d72c62d0fc2631aa4106e051e414a
BLAKE2b-256 ceb34923d01cdae973f30db1f31c3232a9dab583d849973a8a42ceda0a719571

See more details on using hashes here.

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

Hashes for thanakan-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b728a04cceb578fbcd7db6ebf98fa1c6bd1525c828bfa52e7ee8976f3045b4cb
MD5 7bee71cdeae66884060d675ae828225c
BLAKE2b-256 fab9fe1cd8d0018f548fc87af573e5966076ea2c0d53f27bafde242736deb051

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page