Skip to content

honzajavorek/fiobank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fiobank

Fio Bank API in Python.

Installation

From PyPI:

pip install fiobank

In case you have an adventurous mind, give a try to the source:

pip install git+https://github.com/honzajavorek/fiobank.git#egg=fiobank

Usage

First, get your API token.

token.png

Initialization of the client:

>>> from fiobank import FioBank
>>> client = FioBank(token='...', decimal=True)

Account information:

>>> client.info()
{
  'currency': 'CZK',
  'account_number_full': 'XXXXXXXXXX/2010',
  'balance': Decimal('42.00'),
  'account_number': 'XXXXXXXXXX',
  'bank_code': '2010'
}

Listing transactions within a period:

>>> gen = client.period('2013-01-20', '2013-03-20')
>>> list(gen)[0]
{
  'comment': 'N\xe1kup: IKEA CR, BRNO, CZ, dne 17.1.2013, \u010d\xe1stka  2769.00 CZK',
  'recipient_message': 'N\xe1kup: IKEA CR, BRNO, CZ, dne 17.1.2013, \u010d\xe1stka  2769.00 CZK',
  'user_identification': 'N\xe1kup: IKEA CR, BRNO, CZ, dne 17.1.2013, \u010d\xe1stka  2769.00 CZK',
  'currency': 'CZK',
  'amount': Decimal('-2769.0'),
  'instruction_id': 'XXXXXXXXXX',
  'executor': 'Vilém Fusek',
  'date': datetime.date(2013, 1, 20),
  'type': 'Platba kartou',
  'transaction_id': 'XXXXXXXXXX'
}

Listing transactions from a single account statement:

>>> client.statement(2013, 1)  # 1 is January only by coincidence - arguments mean 'first statement of 2013'

Listing the latest transactions:

>>> client.last()  # return transactions added from last listing
>>> client.last(from_id='...')  # sets cursor to given transaction_id and returns following transactions
>>> client.last(from_date='2013-03-01')  # sets cursor to given date and returns following transactions

Conflict Error

Fio API documentation (Section 8.3) states that a single token should be used only once per 30s. Otherwise, an HTTP 409 Conflict will be returned and fiobank.ThrottlingError will be raised.

Development

Install using uv:

git clone [email protected]:honzajavorek/fiobank.git
cd fiobank
uv sync

Then run tests:

uv run pytest

License: ISC

© 2025 Honza Javorek <[email protected]>

This work is licensed under the ISC license.