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.
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.
The aggregation process consists in converting events into billable metrics. There are 4 aggregation types:
|Counts the number of times an incoming event occurs||Metered|
|Returns the number of unique values of a predefined property for incoming events||Metered or Recurring|
|Returns the lastest value of a predefined property for incoming events||Metered|
|Returns the maximum value of a predefined property for incoming events||Metered|
|Calculates the sum of a predefined property for incoming events||Metered or Recurring|
|Calculates the sum of a predefined property for incoming events prorated based on time used per period||Metered or Recurring|
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.
Was this page helpful?