Package: paymill-wrapper
![PAYMILL icon](https://static.paymill.com/r/335f99eb3914d517bf392beb1adaf7cccef786b6/img/logo-download_Light.png)# paymill-pythonPython wrapper for PAYMILL API(beta)## Getting started- If you are not familiar with PAYMILL, start with the [documentation](https://www.paymill.com/en-gb/documentation-3/).- Install the latest release.- Check the API [reference](https://www.paymill.com/en-gb/documentation-3/reference/api-reference/).- Check the tests.## InstallationYou can either choose to install the package from PyPi executing following line:```pip install paymill-wrapper```Or you can check out the project, and install it locally. Navigate to the root directory and execute following line:```pip install . -r requirements.txt```## What's newWe have released version 1.1.0 which is coded directly to the PAYMILL API v2.1 and is Py2&3 compatible.This version is no longer backwards compatible with the pymill fork from https://github.com/kliment/pymill. If you need to be PAYMILL API v2.0 compatible please use https://github.com/paymill/paymill-python/tree/v0.1.2.## UsageInitialize the library by providing your api key:```pythonpaymill_context = paymill.PaymillContext('<YOUR PRIVATE API KEY>')```PaymillContext loads the context of PAYMILL for a single account, by providing a merchants private key. It creates 8 services, which represents the PAYMILL API:* ClientService* OfferService* PaymentService* PreauthorizationService* RefundService* SubscriptionService* TransactionService* WebhookService* ChecksumServiceThese services should not be created directly. They have to be obtained by the context's accessors.### Using servicesIn all cases, you'll use the predefined service classes to access the PAYMILL API.To fetch a service instance, call *service name* accessor from paymill_context, like```pythonclient_service = paymill_context.get_client_service()```Every service instance provides basic methods for CRUD functionality.### Creating objectsEvery service provides instance factory methods for creation. They are very different for every service, because every object can be created in a different way. The common pattern is```pythonxxx_service.create_XXX(params...)```For example: client can be created with two optional parameters: *email* and *description*. So we have four possible methods to create the client:```python#creates a client without email and descriptionclient_service.create()``````python#creates a client with emailclient_service.create(email='john.rambo@paymill.com')``````python#creates a client with descriptionclient_service.create(description='CRM Id: fake_34212')``````python#creates a client with email and descriptionclient_service.create(email='john.rambo@paymill.com', description='CRM Id: fake_34212')```### Retrieving objectsYou can retrieve an object by using the get() method with with the instance itself:```pythonclient_service.detail(client)```This method throws an PMError if there is no client under the given id.### Retrieving listsTo retrieve a list you may simply use the list() method:```pythonclients = client_service.list()```You may provide a filter and order to list method:```pythonclients = client_service.list(order=paymill.models.client.Client.Order.created_at().desc(),filtr=paymill.models.client.Client.Filter.by_email('john.rambo@paymill.com'))```This will load only clients with email john.rambo@paymill.com, order descending by creation date.### Updating objectsIn order to update an object simply call a service's update() method:```pythonclient_service.update(client)```### Deleting objectsYou may delete objects by calling the service's delete() method with an object instance.```pythonclient_service.remove(client)```## Changelog### 2.3.0* Disable httplib debugging by default* http_debugging_enabled otional parameter added to PaymillContext### 2.2.0* Bug fixing* ChecksumService added* FilterList added### 2.1* PyPi release fixed### 2.0* Some names regarding package installation changed* Official PyPi release### 1.1* Support for Py3* FilterList added for filter combination* Bug fixing & code improvements### 1.0* New implementation from scratch that conforms to PAYMILL API v2.1## LicenseCopyright 2014 PAYMILL GmbH.MIT License (enclosed)