BILLINGO API DOCUMENTATION
-----------------------------
See the Rest API documentation here:
https://billingo.readthedocs.io/en/latest/

EXAMPLE
-----------

```python
from billingo_client import BillingoClient

PUBLIC_KEY = 'vsdfgsdfgfdgdsfgdsfg'
PRIVATE_KEY = 'sdgfasdgsdfgsdfsdfhjkhjlhjl'

client = BillingoClient(PUBLIC_KEY, PRIVATE_KEY)
print(client.list_invoices())
print(client.get_invoice(1403140148))
print(client.get_currency(123.75, change_from='USD', change_to='HUF'))
```
Output:
```
{1403140148: Invoice(uid=1403140148, fulfillment_date=datetime.date(2020, 2, 20), due_date=datetime.date(2020, 2, 20), comment='1 USD = 312.83 HUF\nFontos megjegyzés\nA számla pénzügyi teljesítést nem igényel. Kiegyenlítve Braintreen keresztül az alábbi napon: xxxx-xx-xx', currency='USD', payment_method={'id': 5, 'lang_code': 'hu', 'name': 'Bankkártya', 'advance_paid': 1}, client_uid=279931159, block_uid=589050355, template_lang_code='en', electronic_invoice=True, type_string='normal', items=[{'description': 'egyet most csak', 'net_unit_price': '12.000000', 'qty': '1.000000', 'unit': 'month', 'vat_id': 1, 'item_comment': '', 'net_row_price': '12.000000000000', 'gross_row_price': '15.24000000000000', 'vat_value': '3.24000000000000', 'vatdata': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}, 'vat_object': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}}], client={'name': 'Anyám', 'email': 'mocsar@gmail.com', 'taxcode': '123987', 'type': 0, 'fokonyv_szam': '', 'phone': '', 'defaults': {'payment_method': '', 'electronic_invoice': '1', 'invoice_due_days': '', 'invoice_currency': 'HUF', 'invoice_template_lang_code': 'hu'}, 'internal_id': None, 'billing_address': {'street_name': 'Szappan', 'street_type': 'utca', 'house_nr': '3', 'block': '', 'entrance': '', 'floor': '', 'door': '', 'city': 'Budaörs', 'postcode': '2040', 'district': '', 'country': 'Magyarország'}, 'bank': {'iban': '', 'swift': '', 'account_no': ''}}, company={'user_id': 36594, 'name': 'Gravitáció Fejleszt TAC', 'city': 'Budapest', 'district': '11', 'postcode': '1113', 'street': 'Villányi', 'street_type': 'út', 'house_nr': '40', 'building': '', 'staircase': '', 'storey': '', 'door': '', 'country': 'Magyarország', 'account_no': '36476635-26475367-16364536', 'vat_no': '23841901-2-08', 'eu_vat_no': 'HU12345687', 'ev_no': '', 'pic_path': '', 'prefix': '', 'default_currency': 'HUF', 'custom_field_1': 'A számla pénzügyi teljesítést nem igényel. Kiegyenlítve Braintreen keresztül az alábbi napon: xxxx-xx-xx', 'custom_field_2': '', 'selected_template': '33', 'kisadozo': False, 'ev': None, 'penzforgelsz': True, 'onszamla': 0, 'ford_ado': False, 'contact_phone': '+36 1 799 5260', 'webshop_name': '', 'magyar_adoalany': True, 'street_address': 'Villányi út 40    ', 'user': {'id': 36594, 'username': None, 'group_id': 1, 'email': 'mocsar@yusp.com', 'first_name': 'Kalman', 'last_name': 'Mocsar', 'countries_id': 0, 'telephone': '', 'pic_path': None, 'pic_data': None, 'date_of_registration': '2020-02-20 17:29:16', 'active': 1, 'active_code': 'BLNG-5E4EB3DC1A9E8', 'lang_id': 1, 'join_date': '0000-00-00 00:00:00', 'activation_date': '2020-02-20 17:29:39', 'last_login': '0000-00-00 00:00:00', 'credit_count': 0, 'has_profile': 1, 'account_type': 1, 'account_expire': '2020-03-20', 'available_timestamps': 0, 'timestamp_expire': '0000-00-00', 'voov_client_id': 0, 'remember_token': None, 'braintree_id': 0, 'braintree_subscription_id': '', 'braintree_plan_id': '', 'tfa_type': 0, 'tfa_secretkey': '', 'tfa_counter': 0, 'default_currency': 'HUF', 'invoice_lock_ts': 0, 'subscriptions_id': 0, 'ts_usage_type': 1, 'ts_monthly_counter': 0, 'ts_all_counter': 0, 'is_startup': False, 'is_unas': 0, 'is_webshippy': 0, 'is_movein': 0, 'settings': {'nav_info_accept': 1, 'invoice_due_days': '0', 'invoice_payment_method': '5', 'invoice_template_lang_code': 'en', 'invoice_currency': 'USD', 'invoice_round_to': '0', 'unitprice': '0', 'invoice_vat': '1', 'invoice_unit': 'month', 'electronic_invoice': '1', 'is_mach': '1', 'invoice_comments': '1', 'block_id': '0', 'account_id': '0', 'statistic': '0', 'productsave': '0', 'productupdate': '0', 'use_opten': '1', 'invoice_all_round_to': '0', 'barion_key': '', 'barion_email': ''}, 'tenant_type': 0, 'cart_session_id': '', 'newsletter': 0}}, exchange_rate='312.830000', invoice_no='2020-000002', status=1, last_payment_date=datetime.date(2020, 2, 20), net_total=12.0, total=15.24, total_paid=15.24, vat_group_sum_converted={'27%': 1014}, vat_groups={'27%': '3.24000000000000'}), 177460524: Invoice(uid=177460524, fulfillment_date=datetime.date(2020, 2, 20), due_date=datetime.date(2020, 2, 20), comment='1 USD = 312.83 HUF\nFontos megjegyzés\nA számla pénzügyi teljesítést nem igényel. Kiegyenlítve Braintreen keresztül az alábbi napon: xxxx-xx-xx', currency='USD', payment_method={'id': 5, 'lang_code': 'hu', 'name': 'Bankkártya', 'advance_paid': 1}, client_uid=279931159, block_uid=589050355, template_lang_code='en', electronic_invoice=True, type_string='normal', items=[{'description': 'Yusp Recommendation Engine Service Fee / Yusp\r\nAjánlórendszer szolgáltatási díj', 'net_unit_price': '49.000000', 'qty': '1.000000', 'unit': 'month', 'vat_id': 1, 'item_comment': 'Base price for Subscription plan: bronze for period: 2020-01-07 - 2020-02-05, domain: websalehu', 'net_row_price': '49.000000000000', 'gross_row_price': '62.23000000000000', 'vat_value': '13.23000000000000', 'vatdata': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}, 'vat_object': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}}, {'description': 'Yusp Recommendation Engine Service Fee / Yusp\r\nAjánlórendszer szolgáltatási díj', 'net_unit_price': '0.001000', 'qty': '15000.000000', 'unit': 'recommend.', 'vat_id': 1, 'item_comment': 'Overuse for Subscription plan: bronze, domain: websalehu Recommendation overuse in period: 2019-12-08 - 2020-01-06, total recommendations: 64649 of which overuse is: 14649', 'net_row_price': '15.000000000000', 'gross_row_price': '19.05000000000000', 'vat_value': '4.05000000000000', 'vatdata': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}, 'vat_object': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}}], client={'name': 'Anyám', 'email': 'mocsar@gmail.com', 'taxcode': '123987', 'type': 0, 'fokonyv_szam': '', 'phone': '', 'defaults': {'payment_method': '', 'electronic_invoice': '1', 'invoice_due_days': '', 'invoice_currency': 'HUF', 'invoice_template_lang_code': 'hu'}, 'internal_id': None, 'billing_address': {'street_name': 'Szappan', 'street_type': 'utca', 'house_nr': '3', 'block': '', 'entrance': '', 'floor': '', 'door': '', 'city': 'Budaörs', 'postcode': '2040', 'district': '', 'country': 'Magyarország'}, 'bank': {'iban': '', 'swift': '', 'account_no': ''}}, company={'user_id': 36594, 'name': 'Gravitáció Fejleszt TAC', 'city': 'Budapest', 'district': '11', 'postcode': '1113', 'street': 'Villányi', 'street_type': 'út', 'house_nr': '40', 'building': '', 'staircase': '', 'storey': '', 'door': '', 'country': 'Magyarország', 'account_no': '36476635-26475367-16364536', 'vat_no': '23841901-2-08', 'eu_vat_no': 'HU12345687', 'ev_no': '', 'pic_path': '', 'prefix': '', 'default_currency': 'HUF', 'custom_field_1': 'A számla pénzügyi teljesítést nem igényel. Kiegyenlítve Braintreen keresztül az alábbi napon: xxxx-xx-xx', 'custom_field_2': '', 'selected_template': '33', 'kisadozo': False, 'ev': None, 'penzforgelsz': True, 'onszamla': 0, 'ford_ado': False, 'contact_phone': '+36 1 799 5260', 'webshop_name': '', 'magyar_adoalany': True, 'street_address': 'Villányi út 40    ', 'user': {'id': 36594, 'username': None, 'group_id': 1, 'email': 'mocsar@yusp.com', 'first_name': 'Kalman', 'last_name': 'Mocsar', 'countries_id': 0, 'telephone': '', 'pic_path': None, 'pic_data': None, 'date_of_registration': '2020-02-20 17:29:16', 'active': 1, 'active_code': 'BLNG-5E4EB3DC1A9E8', 'lang_id': 1, 'join_date': '0000-00-00 00:00:00', 'activation_date': '2020-02-20 17:29:39', 'last_login': '0000-00-00 00:00:00', 'credit_count': 0, 'has_profile': 1, 'account_type': 1, 'account_expire': '2020-03-20', 'available_timestamps': 0, 'timestamp_expire': '0000-00-00', 'voov_client_id': 0, 'remember_token': None, 'braintree_id': 0, 'braintree_subscription_id': '', 'braintree_plan_id': '', 'tfa_type': 0, 'tfa_secretkey': '', 'tfa_counter': 0, 'default_currency': 'HUF', 'invoice_lock_ts': 0, 'subscriptions_id': 0, 'ts_usage_type': 1, 'ts_monthly_counter': 0, 'ts_all_counter': 0, 'is_startup': False, 'is_unas': 0, 'is_webshippy': 0, 'is_movein': 0, 'settings': {'nav_info_accept': 1, 'invoice_due_days': '0', 'invoice_payment_method': '5', 'invoice_template_lang_code': 'en', 'invoice_currency': 'USD', 'invoice_round_to': '0', 'unitprice': '0', 'invoice_vat': '1', 'invoice_unit': 'month', 'electronic_invoice': '1', 'is_mach': '1', 'invoice_comments': '1', 'block_id': '0', 'account_id': '0', 'statistic': '0', 'productsave': '0', 'productupdate': '0', 'use_opten': '1', 'invoice_all_round_to': '0', 'barion_key': '', 'barion_email': ''}, 'tenant_type': 0, 'cart_session_id': '', 'newsletter': 0}}, exchange_rate='312.830000', invoice_no='2020-000001', status=1, last_payment_date=datetime.date(2020, 2, 20), net_total=64.0, total=81.28, total_paid=81.28, vat_group_sum_converted={'27%': 5406}, vat_groups={'27%': '17.28000000000000'})}
uid=1403140148 fulfillment_date=datetime.date(2020, 2, 20) due_date=datetime.date(2020, 2, 20) comment='1 USD = 312.83 HUF\nFontos megjegyzés\nA számla pénzügyi teljesítést nem igényel. Kiegyenlítve Braintreen keresztül az alábbi napon: xxxx-xx-xx' currency='USD' payment_method={'id': 5, 'lang_code': 'hu', 'name': 'Bankkártya', 'advance_paid': 1} client_uid=279931159 block_uid=589050355 template_lang_code='en' electronic_invoice=True type_string='normal' items=[{'description': 'egyet most csak', 'net_unit_price': '12.000000', 'qty': '1.000000', 'unit': 'month', 'vat_id': 1, 'item_comment': '', 'net_row_price': '12.000000000000', 'gross_row_price': '15.24000000000000', 'vat_value': '3.24000000000000', 'vatdata': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}, 'vat_object': {'id': 1, 'value': 0.27, 'description': '27%', 'info_text': ''}}] client={'name': 'Anyám', 'email': 'mocsar@gmail.com', 'taxcode': '123987', 'type': 0, 'fokonyv_szam': '', 'phone': '', 'defaults': {'payment_method': '', 'electronic_invoice': '1', 'invoice_due_days': '', 'invoice_currency': 'HUF', 'invoice_template_lang_code': 'hu'}, 'internal_id': None, 'billing_address': {'street_name': 'Szappan', 'street_type': 'utca', 'house_nr': '3', 'block': '', 'entrance': '', 'floor': '', 'door': '', 'city': 'Budaörs', 'postcode': '2040', 'district': '', 'country': 'Magyarország'}, 'bank': {'iban': '', 'swift': '', 'account_no': ''}} company={'user_id': 36594, 'name': 'Gravitáció Fejleszt TAC', 'city': 'Budapest', 'district': '11', 'postcode': '1113', 'street': 'Villányi', 'street_type': 'út', 'house_nr': '40', 'building': '', 'staircase': '', 'storey': '', 'door': '', 'country': 'Magyarország', 'account_no': '36476635-26475367-16364536', 'vat_no': '23841901-2-08', 'eu_vat_no': 'HU12345687', 'ev_no': '', 'pic_path': '', 'prefix': '', 'default_currency': 'HUF', 'custom_field_1': 'A számla pénzügyi teljesítést nem igényel. Kiegyenlítve Braintreen keresztül az alábbi napon: xxxx-xx-xx', 'custom_field_2': '', 'selected_template': '33', 'kisadozo': False, 'ev': None, 'penzforgelsz': True, 'onszamla': 0, 'ford_ado': False, 'contact_phone': '+36 1 799 5260', 'webshop_name': '', 'magyar_adoalany': True, 'street_address': 'Villányi út 40    ', 'user': {'id': 36594, 'username': None, 'group_id': 1, 'email': 'mocsar@yusp.com', 'first_name': 'Kalman', 'last_name': 'Mocsar', 'countries_id': 0, 'telephone': '', 'pic_path': None, 'pic_data': None, 'date_of_registration': '2020-02-20 17:29:16', 'active': 1, 'active_code': 'BLNG-5E4EB3DC1A9E8', 'lang_id': 1, 'join_date': '0000-00-00 00:00:00', 'activation_date': '2020-02-20 17:29:39', 'last_login': '0000-00-00 00:00:00', 'credit_count': 0, 'has_profile': 1, 'account_type': 1, 'account_expire': '2020-03-20', 'available_timestamps': 0, 'timestamp_expire': '0000-00-00', 'voov_client_id': 0, 'remember_token': None, 'braintree_id': 0, 'braintree_subscription_id': '', 'braintree_plan_id': '', 'tfa_type': 0, 'tfa_secretkey': '', 'tfa_counter': 0, 'default_currency': 'HUF', 'invoice_lock_ts': 0, 'subscriptions_id': 0, 'ts_usage_type': 1, 'ts_monthly_counter': 0, 'ts_all_counter': 0, 'is_startup': False, 'is_unas': 0, 'is_webshippy': 0, 'is_movein': 0, 'settings': {'nav_info_accept': 1, 'invoice_due_days': '0', 'invoice_payment_method': '5', 'invoice_template_lang_code': 'en', 'invoice_currency': 'USD', 'invoice_round_to': '0', 'unitprice': '0', 'invoice_vat': '1', 'invoice_unit': 'month', 'electronic_invoice': '1', 'is_mach': '1', 'invoice_comments': '1', 'block_id': '0', 'account_id': '0', 'statistic': '0', 'productsave': '0', 'productupdate': '0', 'use_opten': '1', 'invoice_all_round_to': '0', 'barion_key': '', 'barion_email': ''}, 'tenant_type': 0, 'cart_session_id': '', 'newsletter': 0}} exchange_rate='312.830000' invoice_no='2020-000002' status=1 last_payment_date=datetime.date(2020, 2, 20) net_total=12.0 total=15.24 total_paid=15.24 vat_group_sum_converted={'27%': 1014} vat_groups={'27%': '3.24000000000000'}
38709
```

PACKAGE
-------
Create package and upload
```shell script
python3.7 setup.py sdist bdist_wheel
python3.7 -m twine upload  dist/*
```
pypi account setup:
```shell script
cat > ~/.pypirc
python3.7 -m pip install --user --upgrade twine

```