Metadata-Version: 2.1
Name: visma
Version: 0.1.0
Summary: A Python Client/ORM library for integration to Visma e-Accounting, Visma e-Ekonomi
Home-page: https://github.com/pwitab/visma
Author: Henrik Palmlund Wahlgren @ Palmlund Wahlgren Innovative Technology AB
Author-email: henrik@pwit.se
License: BSD-3
Keywords: accounting,visma,eekonomi
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.6
Requires-Dist: marshmallow (>=3.0.0b1)
Requires-Dist: click
Requires-Dist: iso8601
Requires-Dist: requests

=====
Visma
=====

A Python Client/ORM library for integration to Visma eAccounting, Visma eEkonomi

Installation
============

Using the library requires Python 3.6 or higher

.. code-block:: python

    pip install visma


Access to Visma API
===================

After installation you will need to set up access to the Visma eAccounting API

As of now it is not possible to get access by yourself so you will need to contact
Visma at eaccountingapi@visma.com.

See full documentation for more info on how to get access and how to set it up.


Using the library
=================

The api is inspired from the Django ORM. The Visma API is well documented and
supports filtering according to Odata which makes the operations very similar
to database access. We want to be able interact with all objects as normal python objects


.. code-block:: python

    customers = Customer.objects.all()

    invoice = CustomerInvoiceDraft.objects.get('e629baaf-642b-4079-9180-1b8463d24dc2')
    invoice.your_reference = 'Mr finance guy'
    invoice.save()

    invoice2 = CustomerInvoiceDraft.objects.get('ff9839do-642b-4079-9180-1b8463d24dc2')
    invoice2.delete()

    # or

    CustomerInvoiceDraft.objects.delete('ff9839do-642b-4079-9180-1b8463d24dc2')


Supported functions:
    * Getting all objects
    * Getting single object
    * Saving new objects and updating existing via .save()
    * Deleting objects

Todo:
    * filtering via Odata parameters, should be similar to Django QuerySets
    * manage pagination


Available Objects
-----------------
Some objects we use and have tried out. But other code is made from generating
marshmallow schemas with `swagger-marshmallow-codegen
<https://github.com/podhmo/swagger-marshmallow-codegen/>`_.
We have not tried all of it since we wont have the use cases.
We would be happy to receive some comments if something is not working.

Tested
^^^^^
* Customer
* TermsOfPayment
* CustomerInvoiceDraft

Commercial Support and Development
==================================

The library is developed by Palmlund Wahlgren Innovative Technology AB, a certified Visma Partner.

`Visma Integration Catalog <https://integrationer.vismaspcs.se/appar/python-client-orm/>`_.

We offer software development and integration services to Visma eAccounting (eEkonomi) and can develop your integration or offer support to your team on this library.

Check us out at `pwit.se <https://pwit.se>`_ or contact us on `info@pwit.se <mailto://info@pwit.se>`_ .

Documentation
=============
Full documentation can be found at https://visma.readthedocs.io/ .


API reference
=============

https://eaccountingapi.vismaonline.com/swagger/ui/index


Visma Environments
==================

Test (Sandbox)
--------------

Visma eAccounting client
    https://eaccounting-sandbox.test.vismaonline.com
Visma eAccounting API
    https://eaccountingapi-sandbox.test.vismaonline.com/v2
Visma IdentityServer Authorization
    https://identity-sandbox.test.vismaonline.com/connect/authorize
Visma IdentityServer Token
    https://identity-sandbox.test.vismaonline.com/connect/token

Production
----------

Visma eAccounting client
    https://eaccounting.vismaonline.com
Visma eAccounting API
    https://eaccountingapi.vismaonline.com/v2
Visma IdentityServer Authorization
    https://identity.vismaonline.com/connect/authorize
Visma IdentityServer Token
    https://identity.vismaonline.com/connect/token


=========
Changelog
=========

0.0.3
-----
Added handling of enveloped schemas.

0.0.2
-----
Handling of allowed methods on objects. Adding methods and endpoints to all models

0.0.1
-----

Initial release. Use Visma API objects in an ORM:y way. get, create, update
and delete function. All objects added after editing output from
swagger-marshmallow-codegen. But only some is working properly.

