Core Features

Simple Interface

jBilling is friendly, intuitive, and easy to use.

Billing is complicated enough—why make things worse with confusing software? With its easy-to-use, access-anywhere web interface, jBilling was designed to make life simple for you and your customers.


Go global with customized language and currency settings.

jBilling will automatically calculate currency exchanges and present text in your customers’ preferred language. Set your company's default language and currency, then configure alternates as required.

Plug-In Expansions

Configure or develop additional functionality with plug-ins.


jBilling comes equipped out-of-the box with a set of powerful system plug-ins:

  • Mediation processor and readers
  • Payment gateway integration
  • Invoice presentation
  • Proration
  • Notifications
  • Many more


Let jBilling’s highly capable team of developers create the perfect plug-in for you. By encapsulating your business logic into a custom solution, you can extend the system without modifying it.


Employ your team’s expertise to create an in-house solution. The source code for all of jBilling’s system plug-ins is available to you for guidance and examples.

Growth Capacity

Start small, grow to millions.

jBilling's scalable design lets you deploy at a level that's right for your needs. Whether you're a budding startup with a single server, or a larger company building a proof of concept, jBilling lets you start small and simple.

With time, you can enhance performance to match your growing customer base. jBilling scales by adding more servers to a cluster of billing nodes that act as your billing system, with each node playing the part of payment processing, invoice generation, web server, etc.

The following are three deployment examples, starting with a very simple scenario, and ending with one that requires many servers in the billing cluster:

Single Server

In this scenario, everything runs in the same physical server.

Two Servers

In this situation, the database runs in its own server, with the batch processes in an additional dedicated server. This leaves the run-time requests for serving the GUI (graphical user interface) and web-services in their own server.


Here, we see six servers running jBilling, plus a cluster for the database. Heavy processes are distributed in one or more servers: two for mediation, and one for payment processing, which is sending payment requests asynchronously through three message queues.