Skip to main content

Python client library for the Fakturownia API

Project description

Python client library for the Fakturownia API

https://img.shields.io/pypi/v/fakturownia.svg https://img.shields.io/travis/wooyek/fakturownia-python.svg Documentation Status Coveralls.io coverage CodeCov coverage Maintainability License Tweet about this project https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg

If you don’t know it yet be sure to check it out:

Polecam Fakturownia.pl - prosty program do fakturowania online

Features

  • ☑ Invoice CRUD plus send_by_email and ‘mark_paid`

  • ☑ EU member states VAT rate helpers for B2C transactions

  • ☑ ApiClient CRUD

  • ☐ Payments CRUD

  • ☐ Products CRUD

  • ☐ Warehouse documents CRUD

  • ☐ Accounts management

Please refer to the fakturownia APIs for full API features

Quickstart

Install Fakturownia

pip install fakturownia python

Play with fakturownia APIs in python interpreter:

>>> import os
>>> os.environ.get('FAKTUROWNIA_API_TOKEN', 'Missing key')
'...'
>>> from fakturownia import get_api_client
>>> api = get_api_client()
>>> invoice = api.invoices.create(
...     seller_name='Kabaret Starszych Panów',
...     buyer_name='Odrażający drab',
...     positions=[{
...         'name': 'Smolna szczapa',
...         'quantity': 5,
...         'total_price_gross': 7.33,
...     }],
... )
>>> invoice.view_url
'...'

This instance is only partially updated as create returns only subset of data properties, to get all we need to update our instance.

If you have payments enabled you can call get to fetch all data and check payment_url:

>>> invoice.get()
<fakturownia.endpoints.Invoice object at 0x...>
>>> invoice.payment_url
'...'

We can mark this invoice as paid:

>>> invoice.mark_paid()
<fakturownia.endpoints.Invoice object at 0x...>

You can chain your calls:

>>> invoice.put(buyer_email='kominek@niepodam.pl').send_by_email()
<fakturownia.endpoints.Invoice object at 0x...>

You can play and test your scenarios wih factories:

pip install fakturownia[factories]
python

Now you can do this:

>>> from fakturownia.factories import InvoiceFactory
>>> InvoiceFactory(api_client='<your api key here>', kind='proforma').post().get().payment_url # doctest: +SKIP
'...'

Also checkout VAT tax normalization based on EU country specific VAT rates:

>>> InvoiceFactory(
...     api_client=api,
...     seller_country='PL',
...     buyer_country='DE',
...     buyer_tax_no=None,
... ).normalize_vat().post().view_url
'...'

Neat! :)

Running Tests

Does the code actually work?

pipenv install --dev
pipenv shell
tox

We recommend using pipenv but a legacy approach to creating virtualenv and installing requirements should also work. Please install requirements/base.txt and requirements/development.txt to setup virtual env for testing and development.

Help wanted

This library is not yet complete. It does what was needed by up to date contributors, but more can be done. You can implement new api endpoints and write test for them, it’s actually straightforward and new classes will be simple, but tests need some effort. We are lazy test writers and because we don’t want to compromise coverage so we postponed new apis until someone would want to write test.

If want to help please refer to the contributing section in the docs for more info.

Credits

This package was created with Cookiecutter and the wooyek/cookiecutter-pylib project template.

History

0.1.0 (2018-01-03)

  • First release on PyPI.

0.1.2 (2018-01-10)

  • endpoints indexing

  • Robust testing with mocked and real interchangeable backeds .

0.2.1 (2018-01-12)

  • EU member states VAT rate helpers for B2C transactions

  • FAKTUROWNIA_TIMEOUT setting for request timeout

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fakturownia-0.2.1.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fakturownia-0.2.1-py2.py3-none-any.whl (15.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file fakturownia-0.2.1.tar.gz.

File metadata

  • Download URL: fakturownia-0.2.1.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fakturownia-0.2.1.tar.gz
Algorithm Hash digest
SHA256 e50bb2c6aa1670050dc0522233e5a0cb4077dfe5f92f184a2e9028444197fcfc
MD5 51ec99dfbe6111ba97d81d20abf55dd9
BLAKE2b-256 a57d7ca76bcf55a591ec87727c46a00cf6fbe9688b4b6e09b25d5bac48b1b9ed

See more details on using hashes here.

File details

Details for the file fakturownia-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for fakturownia-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7cfbeb86abd81cd452de8e1638669012c5fd82fd4e630524515c8a3a9053aebb
MD5 5094b165899d49500335aa49d4f8e5e9
BLAKE2b-256 8221e348d42244c98b0db86fe8f0df174d803afcbb7283767358a5b9248ffd5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page