Python wrapper for PAYMILL API(beta)
- If you are not familiar with PAYMILL, start with the documentation.
- Install the latest release.
- Check the API reference.
- Check the tests.
After checking out the project navigate to the root directory and execute following line:
For UNIX-based OS
python setup.py install
For Windows
setup.py install
We have released version 1.0.0 which is coded directly to the PAYMILL API v2.1 .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.
Initialize the library by providing your api key:
paymill_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
These services should not be created directly. They have to be obtained by the context's accessors.
In 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
client_service = paymill_context.get_client_service();
Every service instance provides basic methods for CRUD functionality.
Every 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
xxx_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:
#creates a client without email and description
client_service.create()
#creates a client with email
client_service.create(email='[email protected]')
#creates a client with description
client_service.create(description='CRM Id: fake_34212')
#creates a client with email and description
client_service.create(email='[email protected]', description='CRM Id: fake_34212')
You can retrieve an object by using the get() method with with the instance itself:
client_service.detail(client);
This method throws an PMError if there is no client under the given id.
To retrieve a list you may simply use the list() method:
clients = client_service.list();
You may provide a filter and order to list method:
clients = client_service.list(
order=paymill.models.client.Client.Order.created_at().desc(),
filtr=paymill.models.client.Client.Filter.by_email('[email protected]'))
This will load only clients with email [email protected], order descending by creation date.
In order to update an object simply call a service's update() method:
client_service.update(client);
You may delete objects by calling the service's delete() method with an object instance.
client_service.remove(client);
- New implementation from scratch that conforms to PAYMILL API v2.1
Copyright 2014 PAYMILL GmbH.
MIT License (enclosed)