When you’re in a SaaS business, using a secure and simple, yet open and customizable billing tool is a blessing in disguise. Your operational team will either love or hate their jobs. Yet, the quest for the perfect tool surely is painful.
How are the invoices issued? Are there tax policies we need to include as variables? Is there a best practice in payments processing? Is this tool secure? And is it available? Can we adapt this to our needs? These, and many more other questions arise and it can take too much time and tiresome trials to find the right one.
We’ve been looking at larger open-source projects such as Killbill.io, and we’ve also studied mature, yet costly tools such as Zuora, Recurly or Chargebee. However, we just couldn’t find the right fit for our needs.
And now comes the part where we tell you how our billing baby Silver was born. Since our last blogpost on the topic, we’ve migrated Silver into a separate organization on Github, as it becomes more and more of a stand-alone, grown-up project.
Silver is our open-source billing platform, used to generate invoices and process payments. We’ve named it after the chemical element in Mendeleev’s periodic table to keep up with the laboratory theme that was predominant in our communication & branding efforts at the time. Designed as a TELCO billing system, Silver collects consumption data—in our case, page views. Silver was built to calculate charging and billing information using the before mentioned metrics, after which it generates invoices and processes payments.
Back in 2011, the time that our first generation dashboard was written, the billing ‘system’ was integrated as a custom WordPress plugin. Needless to say, this turned the overall billing process into a task that was highly strenuous to manage and update.
Along came Silver, and helped scale the billing process. Structured as a Django app, it separates the billing process into two distinct stages.
The first stage, Silver generates automated invoices. It’s where you can set a billing cycle, with the possibility of including trials and to insert the billed resources. The final product of this stage consists of an invoice, in PDF format. In case of second thoughts, you have the option of exporting a draft to personally verify the data or you can go all in and set it to be automatically generated.
The second stage consists of payment processing. Here you can set one-time payments, recurring payments, and also the possibility of handling variable sums.
Up until late 2017, Silver handled the first part, invoice issuing, while the payment processing was made in our dashboard. As we’ve been through a refactoring process, Siver was able to take the first steps and its first mission was to handle payments processing. More specifically, Silver integrated payment processors like PayU, PayPal, and Braintree and also transactions. Here, transactions contain information like the date the transaction was made, how was it made, and its status.
In our dashboard, our Presslabs clients to whom we provide managed WordPress hosting services can now easily access their invoices and filter them by invoice number, due date, amount and status. The frontend implementation was made using React, which makes use of the API made available by Silver.
What’s best, our dashboard makes it simple to set up a recurring payment method.
We want to design even a smarter version of the recurring payments, to be able to configure how and when the retry should be done. Also, we’d like to introduce data visualization, so it can be easier for users to grasp various information such as subscriptions which generated the most revenue, average sum per transaction and also to be able to generate predictions. One more important step is updating the Silver documentation, but hey, it’s always on the to-do list.
We know how tough it was for us, so we decided to make Silver open-source and share it with the community looking to simplify and customize its billing process. If you have any issues and ideas, we’re collecting them here. And for more information about the code, check our fresh Silver page.