Silver is an automatic billing app for Django. Silver elegantly handles "telco" billing processes like multiple pricing plans management, automatic bill aggregation, and generation.
Silver has been developed from scratch to handle WordPress hosting billing at Presslabs, as external services were too costly and other existing modules proved too complex to adapt to basic telco needs.
Adding a cron job will trigger invoice generation for your customers.
Silver generates a single invoice for all the subscriptions of a customers.
Are you using for example proforma invoices or just invoices? No problem. Silver can handle both.
Use the intuitive Django admin panel to gain fine-grained control on the data stored in Silver.
Use the ubiquitous HTML and CSS to create highly-customisable and beautiful templates for your invoices.
Clean, fully tested and fully documented RESTful API for easy integration with other (micro)services.
Local, Amazon S3, Azure Storage, Rackspace CloudFiles, etc. Tell Silver your preferences in settings.py and it will comply.
Just install it by using pip, add it to the INSTALLED_APPS setting and you are ready to go.
The state transitions of the main billing entities.
The two types of documents: invoice and proforma invoice, with their possible states. A document, on creation is automatically in a draft state.
The subscription represents the connection between a plan and a customer. When a subscription transitions to a new state, the corresponding billing documents are issued automatically.
Definition for terms used within the application
Plancontains the details for a billing plan.
MeteredFeaturedefines the features that are going to be a part of the plan. E.g.: pageviews, number of downloads, etc.
ProductCodethe product codes will be associated to either a plan or a metered feature.
Providerdefines the details of a provider (seller).
Customerdefines the details of a customer.
Subscriptionis one of the main models of the application, as it allows to connect a customer to a plan and it also provides a way for doing the "bookkeeping" operations.
MeteredFeaturesUnitsLogallows storing the consumed units of a service provided by the provider that integrates the Silver app.
Invoicedefines an invoice.
Proformadefines a proforma invoice.
DocumentEntrydefines an invoice or proforma entry. It will contain details such as the description of the entry, consumed units, price per unit, etc.
BillingLogstores information about when a subscription was billed last time and the associated invoice or proforma.
Here are the required steps to install silver on your machine
Install the dependencies and the package itself.
sudo apt-get build-dep python-imaging pip install django-silver
Add the following to your project settings file
INSTALLED_APPS = ( ..., 'silver', ... )
Silver is now ready to be used in your application.