Skip to main content

Verify Ethiopian payment receipts (CBE, Telebirr, Abyssinia, Dashen, CBE Birr) directly from official bank endpoints.

Project description

Ethio-Pay-Verifier

A lightweight, pure-Python library to verify payment receipts from major Ethiopian banks directly against their official public endpoints. No third-party APIs, no middleware—just direct verification.

🚀 Features

  • Direct Verification: Hits the official bank endpoints directly.
  • Support for Major Banks:
    • CBE (Commercial Bank of Ethiopia) - PDF Parsing
    • Telebirr (Ethio Telecom) - HTML Scraping
    • Bank of Abyssinia - JSON API
    • Dashen Bank - PDF Parsing
    • CBE Birr - PDF Parsing
  • Clean Business Logic: Includes utilities for name normalization, masked account matching, and amount verification.
  • Lightweight: Just a few dependencies (requests, beautifulsoup4, PyPDF2, pdfplumber).

📦 Installation

pip install ethio-pay-verifier

🛠 Usage

Using the Unified Verifier

The PaymentVerifier class provides a single interface for all banks and includes common business rules like amount checking and receiver validation.

from python_verifier import PaymentVerifier

v = PaymentVerifier()

# 1. Telebirr
result = v.verify("telebirr", reference="CE2513001XYT")

# 2. CBE (Requires 8-digit account suffix)
result = v.verify("cbe", reference="FT2513001V2G", account_suffix="12345678")

# 3. Abyssinia (Requires 5-digit account suffix)
result = v.verify("abyssinia", reference="FT23062669JJ", suffix="12345")

# 4. Dashen
result = v.verify("dashen", reference="TXN123456")

# 5. CBE Birr
result = v.verify("cbebirr", receipt_number="CGU9REIHHB", phone_number="251912345678")

if result.success:
    print(f"Verified {result.amount} ETB from {result.payer_name}")

Direct Scraper Access

You can also call the scrapers directly if you don't need the high-level dispatcher rules:

from python_verifier import verify_telebirr, verify_cbe

# Get Telebirr receipt object
receipt = verify_telebirr("CE2513001XYT")
if receipt.success:
    print(receipt.settled_amount)

# Get CBE result
cbe = verify_cbe("FT2513001V2G", "12345678")

⚖️ License

MIT License. See LICENSE for details.

⚠️ Disclaimer

This library is not affiliated with, maintained, or endorsed by any of the banks listed. It relies on scraping public endpoints, which may change without notice. Use in production at your own risk.

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

ethio_pay_verifier-0.1.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

ethio_pay_verifier-0.1.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file ethio_pay_verifier-0.1.0.tar.gz.

File metadata

  • Download URL: ethio_pay_verifier-0.1.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ethio_pay_verifier-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b5fae1a5cdc29d87577fd93ca0a3d47653332037acea73c72c2e74fc3d120cab
MD5 d18eaf43a8f03ff9bf5b3e268a3ca9d0
BLAKE2b-256 678ffcfba0a4a520e00d257a6507294c27c117fff218582c7363ae8d38009237

See more details on using hashes here.

File details

Details for the file ethio_pay_verifier-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ethio_pay_verifier-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47264fd9ef6a341bbf4cad197bf6e7f5e91cc869f16ee3af885549e2ab9f47a9
MD5 8f8bbf1327cc1093bc129eba9f269844
BLAKE2b-256 5b379c1d0c1e96d4de62e51dc87c2d7d13d63745fdaee53dcf07532a353dd269

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