Monobank.ua API client
Project description
Python-monobankua
Python client library for Monobank API.
Installation
pip3 install monobankua
Requirements
- python >= 3.10
- requests >= 2.21
- ecdsa >= 0.13.2
Usage
Personal API
Full personal API description see at https://api.monobank.ua/docs/
- Create your token at https://api.monobank.ua/
- Use it to initialize client.
Code snippet
from datetime import datetime, timedelta
from monobankua import Monobank, MonobankError, MonobankRateLimitError, MonobankUnauthorizedError
try:
currencies_info = Monobank.currencies_info() # you don't need token to get an exchange rates
print(*currencies_info, sep='\n')
token = 'xxxxxxxxxxxxxxxxxxxxx'
monobank = Monobank(token)
client_info = monobank.client_info()
print(client_info)
print(client_info.webHookUrl)
for account in client_info.accounts:
print(f'{account.card}: {account}')
statements = monobank.statements(account.id, (datetime.now() - timedelta(days=6)).date())
print(*statements, sep='\n')
except MonobankRateLimitError:
print('Too many requests. Wait 1 minute, please')
except MonobankUnauthorizedError as e:
print(f'Some authorization problem: {e}')
except MonobankError as e:
print(e)
Corporate API
Corporate API has the same methods as personal API, but doesn't have rate limitation.
Corporate API is the only way for non-personal use of open Monobank API.
Full description see at https://api.monobank.ua/docs/corporate.html
- Generate private key. Sample shell command:
openssl ecparam -genkey -name secp256k1 -rand /dev/urandom -out priv.key
- Generate public key. Sample shell command:
openssl ec -in priv.key -pubout -out pub.key
-
Request API access. Send brief description of your service to api@monobank.ua with attached pub.key (be careful - not priv.key!).
-
Since Monobank approved your access, you should request user access.
-
Now, save request id to your DB or something else, and show the accept URL to user.
-
Check user acceptance & use all the same methods as for personal API.
Code snippet
from monobankua import MonobankCorporate
private_key = 'xxxxxxxxxxxxxxxxxxxxx' # from priv.key
request_id, accept_url = MonobankCorporate.access_request(private_key, statement=True, personal=True)
# you can set webhook URL to be notified about user acceptance:
# request_id, accept_url = MonobankCorporate.access_request(private_key, statement=True, personal=True, webhook_url='https://yourservice.com/hook/')
monobank_corporate = MonobankCorporate(private_key, request_id)
if monobank_corporate.access_check():
... # normal use the same way as for personal API
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for monobankua-0.4.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0178d580a75101d449ee42f82919e9276c4d422deedafd5ad331c5fd6224fe20 |
|
MD5 | 53ef5281c2cb2afe6bd96a1a5713dfc5 |
|
BLAKE2b-256 | 4a93367f29c5e8152079aa7e1562e3c20bcd830e35cc13956a7ef31bc1c2275b |