Welcome to Lago
Lago is an open-source software for metering and usage-based billing. It's the best alternative to Chargebee, Recurly or Stripe Billing for companies that need to handle complex billing logics.
This library will allow you to build an entire billing system from scratch. Lago is a real-time, event-based solution made for usage-based billing, subscription-based billing, and all the nuances of pricing in between.
Five-step billing workflow
1. Event ingestion
Events provide information about your customers' consumption, with the highest level of granularity. Any product feature for which you want to charge your customers should correspond to a specific event. An event can be triggered by an action or can be sent periodically. Lago is able to ingest events at scale while preventing duplicates.
2. Metrics aggregation
The aggregation process consists in converting events into billable metrics. There are 5 aggregation types:
|COUNT||Counts the number of times an incoming event occurs||Metered|
|SUM||Calculates the sum of a predefined property for incoming events||Metered|
|MAX||Returns the maximum value of a predefined property for incoming events||Metered|
|COUNT DISTINCT||Returns the number of unique values of a predefined property for incoming events||Metered|
|RECURRING COUNT||Add and remove billing units that are persisted period over period||Persisted|
- Metered: aggregated for a single billing period and resume to 0 at the end of the billing period.
- Persisted: aggregated for a billing period and kept in-memory for following periods, unless you change the value.
Creating plans allows you to define how much your customers should pay for using your product. You can then combine plans and billable metrics to implement any billing model (i.e. subscription-based, usage-based, or hybrid). Billable metrics may be priced differently depending on the associated plan.
Lago automatically generates invoices for each customer according to the plan model: the subscription fee can be billed at the beginning or at the end of the billing period while usage-based charges are always calculated at the end of the billing period. Invoices include fees, taxes and customer information.
When an invoice is emitted and finalized, it's ready for payment collection. Connect payment providers through native integrations or trigger payments on any PSPs using the invoice payload created by Lago.