🧾 eBonsParser
eBonsParser is a modular Python library for parsing digital receipt PDFs (eBons) used in Germany.
It extracts structured data such as store details, purchase date, payment method, and a full itemized list.
🛒 Currently supports REWE and Thalia receipts — built to extend to other German retailers (e.g., Lidl, Edeka, Aldi).
🚀 Features
- 📄 Parse eBon PDFs directly (from path or memory)
- 🛒 Extract store, date, total, payment type, and itemized product data
- 💶 Handle price, weight, unit, and tax class
- 🧱 Structured output using Pydantic models (easy to convert to JSON)
📦 Installation
You can install the package using pip:
pip install eBonsParser
🧠 Usage
from eBonsParser.stores import Rewe,Thalia
pdf_file_path = "path/to/your/ebon.pdf"
rewe = Rewe()
thalia = Thalia()
receipt = rewe.parse_ebon(pdf_file_path)
receipt = thalia.parse_ebon(pdf_file_path)
print(receipt.model_dump_json(indent=4))
This will return a structured Receipt object like:
{
"ebonNr": 1617,
"store": {
"name": "REWE Markt GmbH",
"type": "supermarket",
"UID": "DE812706034",
"address": {
"street": "Pontdriesch 10-12",
"city": "Aachen",
"zip": 52062
},
"phone": "0241 1684258"
},
"date": "2025-05-06",
"total": 6.85,
"payment_method": {
"method": "card",
"card": null
},
"items": [
{
"name": "TARTETEIG",
"price": 1.89,
"tax_class": 0.07
},
...
]
}
🙌 Contributing
Want to help improve eBonsParser?
Whether it's fixing bugs, adding support for more retailers, or improving documentation — your contributions are welcome!
Please read our CONTRIBUTING.md
📜 License
This project is licensed under the MIT License. For details see LICENSE.
Metadata
Release files for eBonsParser 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ebonsparser-0.1.1.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ebonsparser-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.6 kB
Release files / ebonsparser-0.1.1.tar.gz
| Download URL | ebonsparser-0.1.1.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d343a1e2562eb37549358c0a0193be44fa4a4ef583a303a1c6ae7c1283e73366
|
|
BLAKE2b-256 checksum How to use checksums |
87b93e99cff0528205da5556e02d98d23d3d598216085d94f5129993f1c7cd8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / ebonsparser-0.1.1-py3-none-any.whl
| Download URL | ebonsparser-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e1e5e411161b1785a1ca81375090b6a5d8d59399a37489c26ee1c4a60bedf211
|
|
BLAKE2b-256 checksum How to use checksums |
35bfc25646717a404c35f6162fb01f3a2327e6f0383ac6b2afdea937745ec641
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|