Fio Banka API
Rework of Honza Javorek's fiobank, with the following upgrades:
- Parse both account info and transactions in 1 request. This is particularly useful as Fio banka allows only 1 request per 30 seconds.
- Known error states are covered by exceptions for fine-grade error handling.
- Fetch data in all supported formats (including PDF).
- New design allows to support other end points than account.
- Safer data types: money as
decimal.Decimal
instead of float
, data stored as typing.NamedTuple
instead of dict
.
[!NOTE]
Merchant transaction report and order upload are not implemented. Feel free to send a PR.
Quick example
>>> import fio_banka, datetime
>>> account = fio_banka.Account("my-API-token")
>>> transaction_report = account.fetch_transaction_report_for_period(
... datetime.date(2023, 1, 1),
... datetime.date(2023, 1, 2),
... fio_banka.TransactionReportFmt.JSON
... )
>>> account.parse_account_info(transaction_report)
AccountInfo(
account_id='2000000000',
bank_id='2010',
currency='CZK',
iban='CZ1000000000002000000000',
...
)
>>> next(iter(account.parse_transactions(transaction_report)))
Transaction(
transaction_id='10000000000',
date=datetime.date(2023, 1, 1),
amount=Decimal('2000.0'),
currency='CZK',
account_id=None,
...
Documentation
For full description see the module docstring.
API documentation by Fio banka:
Installation
pip install fio-banka
Contributing
Set up development environment via Pipenv:
pipenv sync --dev
pipenv run pre-commit install
Run tests:
pytest
Use Conventional Commits.
I highly recommend to follow Test-Driven Development (revisited). Actually, all existing tests follow it.
License
This project is licensed under the terms of the MIT license.