Changelog
New updates and improvements to Lago.
Automatic wallet top-ups ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
Customer wallets can be topped up automatically according to predefined rules:
- Based on a time interval (e.g. weekly, monthly, etc.); or
- Based on a threshold (e.g. when the wallet balance is less than or equal to $10).

Billing analytics ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
Users can gain insight into their billing data with the new analytics section, including:
- Gross revenue;
- Monthly recurring revenue (MRR);
- Invoiced usage; and
- Invoice collection data.
This information is also available via the Lago API.

Event validations
We have added an <text-code>events.errors<text-code> webhook message to notify users when some of the events ingested in the last hour are invalid.
Possible errors include:
- Invalid billable metric code;
- Missing aggregation property; and
- Missing group key.
Regenerate checkout links
When a customer wants to update their payment method, or when a checkout link has expired, users can generate a new checkout URL on demand through the Lago API.
This action is available for all our native payment integrations.
Helm chart updates
We have released a new version of the Lago Helm Charts to facilitate on-premise deployment.
Default currency
The organization's currency can be defined in the settings of the account or via API. It is used as the default currency when creating new objects, such as plans and add-ons, and to display information on dashboards.

Custom success URL
When setting up one of our native payment integrations, users can define the URL to which customers should be redirected after completing the checkout process. Custom URLs can only be added via the user interface.

Integration with Salesforce CRM ✨
<alert-premium>✨ This feature is only available via a paying add-on. Please contact hello@getlago.com to get access to the Salesforce CRM integration.<alert-premium>
With the new Salesforce CRM integration, Lago data is automatically synced with Salesforce.
Users can access their customers' subscriptions, invoices and credit notes directly in their CRM application.
Void invoices
Users can void finalized invoices that have not been paid, and have not be used to issue a credit note. Voided invoices remain available in the app, but cannot be modified.
Credit notes applied to voided invoices are re-credited to the customer's credit note wallet, and prepaid credits applied to voided invoices are re-credited to the customer's wallet, provided that it is still active. However, coupons applied to voided invoices are lost.

Plan details
In the Plans section of the app, users can now click one of their plans to see its details (i.e. name, code, interval, currency, subscription fee, usage-based charges, etc.) and also retrieve the list of subscriptions linked to the plan.
In addition, in the customer view of the app, users can click one of the subscriptions assigned to their customer to see its details (i.e. status, start date, interval, currency, fees, charges, etc.).

Webhooks for subscription upgrades/downgrades
When the plan associated with a subscription changes, Lago automatically notifies the user with two webhook messages:
- <text-code>subscription.terminated<text-code> to confirm the termination of the initial plan (includes <text-code>next_plan_code<text-code>); and
- <text-code>subscription.started<text-code> to confirm the start of the new plan (includes <text-code>previous_plan_code<text-code>).
Retrieve a subscription
We have added a new endpoint to allow users to retrieve a specific subscription via the Lago API, using the <text-code>external_id<text-code> of the subscription.
Removal of event validations
We are currently upgrading our infrastructure and setting up a new event ingestion system. As part of this project, we have decided to remove the validations that were automatically performed when ingesting events through the Lago API.
This means that the API no longer returns error messages when events include incorrect parameters (e.g. wrong billable metric code, subscription not found, <text-code>transaction_id<text-code> already exists, etc.).
Swedish locale
Hej alla! The Swedish locale is now available on Lago.
Users can select it as their organization's default language or as a customer's preferred language.
Spanish locale
¡Hola a todos! The Spanish locale is now available on Lago.
Users can select it as their organization's default language or as a customer's preferred language.
Override plans ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
When assigning a plan to a customer, you can modify some attributes to create a custom plan. Editable fields include (but are not limited to):
- Currency;
- Subscription fee;
- Charge prices;
- Minimum spending requirements;
- Tax rates; and
- Invoice display names.
Details of the new plan will be available in the customer view.

Retrieve past usage
We have added a new endpoint to retrieve past usage. When a billing period has ended, users can still retrieve usage data through <text-code>GET /customers/{external_customer_id}/past_usage<text-code>.
Users must specify <text-code>external_subscription_id<text-code> and can filter results by <text-code>billable_metric_code<text-code>. They can also select the number of past periods for which they wish to retrieve usage data.
Display names on invoices
When creating or updating a plan, users can define custom display names for subscription and usage-based charges, which will be printed on the PDF files generated by Lago.
Display names can be defined via the user interface or the API (see <text-code>plan.invoice_display_name<text-code> and <text-code>charges.invoice_display_name<text-code>).

WEIGHTED SUM aggregation
<text-code>weighted_sum_agg<text-code> allows users to compute usage based on a custom property and the time elapsed between two events (e.g. memory consumption measured in GB-seconds).
Billable metrics based on this aggregation type can be metered or recurring, and are always billed at the end of the billing period.
Subscription end date
When a subscription end date is set, the subscription is automatically terminated by Lago.
A notification is sent to the user 45 days and 15 days before the subscription is terminated (see <text-code>subscription.termination_alert<text-code> webhook).
If no end date is set for a subscription, it will renew automatically.
LATEST aggregation
<text-code>latest_agg<text-code> allows users to compute usage based on the last value received during the period for a billable metric.
Consider the following example for the <text-code>storage<text-code> metric, where usage is aggregated based on the property <text-code>gb<text-code>:
- The first event includes 5 GB;
- The second event includes 7 GB; and
- The third event includes 6 GB.
With <text-code>latest_agg<text-code>, at the end of the billing period, the total number of units used to calculate the fee will be 6, as it's the last value received.

Duplicate plans
Users can duplicate an existing plan from the user interface to create a new plan with the same structure. They can then choose a name and a code for their new plan, and modify the parameters that differ from the original plan (e.g. interval, currency, charges, etc.).

Edit dimensions
When dimensions are defined for a billable metric, users can add/remove groups by modifying the corresponding code snippet via the user interface, or by updating the billable metric object via API.
Changes to dimensions may affect all plans where the billable metric is listed as a charge.
Minimum / Maximum per transaction ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
The percentage pricing model includes a new option for defining minimum and maximum prices per transaction.
When applied, Lago adjusts the fees based on the <text-code>per_transaction_min_amount<text-code> and <text-code>per_transaction_max_amount<text-code> parameters.

Default price for groups
For billable metrics that include several groups, when configuring their plans, users can set a default price that applies to all groups.
The default price can be overwritten by setting a different price for a specific group.
If the default price is not defined, it is automatically set to zero.

Webhook for subscriptions started
We have added a new webhook message for subscriptions.
When the status of a subscription switches to <text-code>active<text-code>, Lago automatically sends a <text-code>subscription.started<text-code> message.
Italian locale
Ciao a tutti! The Italian locale is now available on Lago.
Users can select it as their organization's default language or as a customer's preferred language.
Graduated percentage pricing
We have added a new graduated pricing model, which allows users to define prices based on a percentage of the number of units, and to add a flat fee for each tier (optional).

Quarterly billing interval
In addition to the weekly, monthly and yearly intervals, Lago <text-code>v0.44.1-beta<text-code> includes the new quarterly interval.
When selected, all fees (i.e. subscription fee and charges) are billed every three months.

Taxes applied to add-ons
Tax objects can now be used to define the default tax rate(s) associated with an add-on.
When creating a one-off invoice, if there is no tax rate associated with the add-on, Lago will automatically select the tax rate defined at customer or organization level.
The tax rate applied to the add-on can be modified at any time through the user interface or the API.

Webhook signatures
When creating a webhook endpoint through the user interface or the API, you can choose between:
- The original <text-code>JWT<text-code> signature; and
- The new <text-code>HMAC<text-code> signature, which includes a shorter header.
Please refer to the guide to find out how to verify the webhook signatures.

Net payment term
The net payment term determines the number of days given to the customer to pay their invoice. It is calculated based on the date the invoice is finalized and displayed on the PDF file.
When the net payment term is defined at the organization level, it applies to all customers by default. However, it can be overridden by the net payment term defined at the customer level.

Taxes defined at plan and charge level
In addition to the taxes defined at organization and customer level, users can select tax objects at plan and charge level.
For subscription invoices, the tax hierarchy is as follows:
- Taxes defined at organization level will apply to all fees (i.e. subscription and charges);
- Taxes defined at customer level will take precedence over taxes defined at organization level and will apply to all fees (i.e. subscription and charges);
- Taxes defined at plan level will take precedence over taxes defined at customer level and will apply to all fees (i.e. subscription and charges); and
- Taxes defined at charge level will take precedence over taxes defined at plan level but will only apply to the fee associated with the corresponding charge.
SEPA Direct Debit with Stripe
Our native integration with Stripe now supports SEPA Direct Debit payments.
When Stripe is defined as the default payment provider for a customer, you can select the authorised payment method(s): card, direct debit or both.
Before initiating a payment intent, Lago will automatically check the customer's default payment method registered in Stripe.
Kindly note, SEPA Direct Debit is only available for invoices denominated in euros (EUR).
Recurring and prorated charges
When a billable metric is defined as recurring, the number of billing units at the end of the billing period is carried over to the next period. It is not reset to zero, as with metered metrics.
Users can create recurring metrics based on <text-code>sum_agg<text-code> and <text-code>count_unique_agg<text-code>. They can also define whether the corresponding charges should be prorated (this option is only available for the standard and volume pricing models).
ℹ️ Metrics based on <text-code>recurring_count_agg<text-code> have been automatically converted into <text-code>count_unique_agg<text-code> metrics with the attribute <text-code>"recurring": true<text-code>.

Filter subscriptions by status
We have added a new query parameter to the endpoint that allows users to retrieve subscriptions.
By default, <text-code>GET /api/v1/subscriptions/<text-code> returns all active subscriptions. However, you can also retrieve pending, canceled and terminated subscriptions by using the <text-code>status<text-code> parameter.
Cancel pending subscriptions
When a subscription is created with a subscription date in the future, its status is automatically set to <text-code>pending<text-code>.
You can now cancel a pending subscription through the Lago API, using the following endpoint:
<text-code>DELETE /api/v1/subscriptions/{external_id}?status=pending<text-code>
Multiple webhook endpoints
Webhook messages can be used to collect billing information and set up custom workflows. They are related to subscriptions, events, fees, invoices, payment providers and credit notes.
You can now create up to five webhook endpoints to listen to Lago events.
Custom tax objects
In the settings of their account, users can define the default tax rate that applies by default to all customers of their organization. This tax rate can then be overwritten at the customer level.
Whether set at the organization level or the customer level, so far the tax rate used to calculate fees was simply indicated as "Tax" on invoices.
To give users more flexibility, we've added the option to create several tax objects, which can then be assigned to the organization or specific customers (e.g. state sales tax, VAT, reverse charge, GST, etc.).
Stripe checkout URL
When a new customer is successfully created through Lago's native integration with Stripe, the billing system sends a <text-code>customer.checkout_url_generated<text-code> webhook message.
You can redirect your customer to the corresponding page to register their payment method, which will then be used to collect payment when a new invoice is issued.
Tax identification number
The customer object and organization object include a new <text-code>tax_identification_number<text-code> attribute. When a value is available for this attribute, it is automatically displayed on the PDF version of the next invoices.
Integration with Adyen
Lago now offers native integration with Adyen, including (but not limited to):
- Ability to define Adyen as the default payment provider for a customer;
- Ability to automatically create Lago customers in Adyen and retrieve their customer ID;
- Ability to automatically collect payments via credit cards, Apple Pay, PayPal and many other payment methods;
- Ability to automatically update an invoice based on the payment status retrieved from Adyen; and
- Ability to process refunds using credit notes.
To learn more about this integration, please consult our guide.
Charges paid in advance
If you want to collect payments for usage-based charges on the fly, without waiting for the end-of-period invoice, you can turn on the new <text-code>pay_in_advance<text-code> feature.
When a charge is marked as paid in advance, Lago will automatically calculate the fee associated with each event as soon as it is ingested. This information will then be sent to you in a <text-code>fee.created<text-code> webhook message.
You can also get an estimate for a charge to be paid in advance before the actual event is confirmed through the <text-code>/api/v1/events/estimate_fees<text-code> endpoint.
In addition to this, users with a premium license can define whether or not <text-code>pay_in_advance<text-code> charges are invoiceable.
One-off invoices
After creating an add-on, you can use it to generate a one-off invoice that will be billed instantly.
A one-off invoice may include multiple fees (i.e. multiple add-ons). You can add a custom description and set a specific price for each add-on, either through the user interface or the API.
⚠️ The endpoint to apply add-ons is deprecated and will be removed on September 1st, 2023. It has been replaced with the endpoint to create one-off invoices.
Coupons applied before tax
Until now, coupons were deducted from the invoice amount after tax, which was not always allowed from an accounting perspective in some countries.
Following feedback from our community, we have updated our calculation method to ensure all coupons are deducted from the invoice amount before tax.
Minimum spend on charges ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
You can now define minimum spending requirements for usage-based charges.
The minimum spend is defined as an amount excluding tax. If at the end of the billing period, your customer has spent less than the minimum, then Lago will automatically generate a true-up fee to compensate for the difference.
Minimum spending requirements are defined when creating or editing plans, either through the user interface or the API.
Coupons limited to specific metrics
We have added a new option to the coupon settings: it is now possible to limit the application scope of a coupon to specific billable metrics.
By default, coupons apply to all charges but when creating a new coupon, you can define the list of billable metrics to which the coupon applies.
This feature is related to the <text-code>billable_metric_codes<text-code> attribute of the <text-code>coupon<text-code> object (see API documentation).
Please refer to the guide for more information on coupons.

Reset password
You can now reset your password via the user interface.
On the login page, click "Forgotten password" to access the dedicated page where you can request a link to reset your password.

Customer billing portal ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
We have released the first version of our billing portal, which allows your customers to access their invoices.
You can generate access links through the user interface or embed the customer portal into your application using our API and an iframe.
Automatic emails ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
We are introducing a new built-in invoicing feature, which allows you to automatically send invoices and credit notes from Lago to your customers.
The email template can be customized with the name, email address and logo of your organization, and will be sent in the customer's preferred language (or the default language defined in the settings of your account).
For cloud users, Lago takes care of the SMTP setup. For users on the self-hosted version, the setup is described in the public documentation.
Invoice metadata
After an invoice has been generated, you can add metadata to store additional information (e.g. custom ID, payment reference, etc.). This information will be included in the <text-code>invoice<text-code> object but will not be displayed on the PDF invoice.
Invoice metadata can be managed via the user interface or the API.

Customer metadata
When creating or editing a customer, you can add metadata to store additional information (e.g. customer type, name of the account manager, etc.).
Customer metadata can be displayed on invoices, and can be managed via the user interface or the API.

Webhook logs
The new webhook management system allows you to access the list of webhook messages sent by Lago and check their status. You can re-trigger a message that has failed through the user interface.
To access the webhook logs:
- Go to the Developers section via the sidebar;
- Open the Webhooks tab; and
- Click on the webhook endpoint to see the list of messages.

Payment status updates
You can now update the payment status of an invoice through the user interface.
To do so:
- Access the "Invoices" section;
- Find the relevant invoice;
- Click the ellipsis icon on the right;
- Click "Update payment status";
- Select the new payment status; and
- Click "Update status" to confirm.
This action can be performed via the API as well.

Document translation
PDF files including invoices and credit notes can be generated in different languages.
The default language that is set at the organization level can be overwritten by the customer's preferred language.
In the API, the <text-code>document_locale<text-code> attribute determines the language of the documents.
You can contribute to Lago's open-source project by helping us translate documents. The new language will then be added to the list of supported locales and available to the entire Lago Community.
Coupons limited to specific plans
We have added a new option to the coupon settings: it is now possible to limit the application scope of a coupon to specific plans.
By default, coupons apply to all plans but when creating a new coupon, you can define the list of plans to which the coupon applies.
This feature is related to the <text-code>plan_codes<text-code> attribute of the <text-code>coupon<text-code> object (see API documentation).
Please refer to the guide for more information on coupons.

Coupons that apply forever
When creating a coupon, through the user interface or the API, it is now possible to select the <text-code>forever<text-code> frequency.
Coupons with the <text-code>forever<text-code> frequency apply to all subscription invoices, regardless of the number of subscription invoices generated in a given period.
<alert-info>ℹ️ The value of the coupon is deducted from the amount of the invoice after tax. Coupons do not apply to add-ons or any other one-off charges.<alert-info>

Search bar
Tired of scrolling through an endless list to find the customer your are looking for? We understand that.
We have added a search functionality to the user interface to make it easier to find metrics, plans, customers, invoices, etc.

Payment retries
We have added the ability to resend payments for collection.
This new feature is available to all users:
- Through the user interface (learn more); and
- Through the API (learn more).

Grace period ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
If at the end of the billing period, you want to review the invoices before sending them to customers for payment, you can define a grace period.
During the grace period, invoices are in <text-code>draft<text-code> status and can be modified. Available actions include:
- Adding usage records by sending events with a <text-code>timestamp<text-code> within the relevant billing period;
- Applying coupons to the customer's account; and
- Adding credits to the customer's wallet and credit note wallet.
When the grace period expires, invoices are automatically <text-code>finalized<text-code> (they can no longer be edited), which triggers the <text-code>invoice.created<text-code> webhook. You can also finalize invoices manually.
The organization's grace period applies to all customers by default, but it can be overwritten by the customer's grace period.
Invoice list
We have added a new "Invoices" section, which allows you to access the list of invoices.
Invoices are filtered according to their status (i.e. draft or finalized) and according to their payment status (i.e. succeeded, pending or failed).
The same filters can be applied when retrieving invoices via the API.

Timezones ✨
<alert-premium>✨ This feature is only available to users with a premium license. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
You can now set the timezone of your organization in the settings of the app. To do so:
- Access the "Settings" section via the side menu;
- In the "Organization" tab, you will see the current timezone (UTC by default);
- Click "Edit";
- Select a new timezone from the list; and
- Click "Save timezone" to confirm.
It can also be set through the API using this endpoint.
The organization's timezone applies to all customers by default and determines when billing periods start and end (i.e. when invoices should be generated). It is also the reference timezone for most views and lists in the app.
The organization's timezone can be overwritten by the customer's timezone (learn more).
<alert-info>ℹ️ In the app, you can hover over any date with a dotted underline to see the reference timezones.<alert-info>
Credit notes ✨
<alert-premium>✨ Lago may automatically generate a credit note when a subscription is upgraded or downgraded. However, only users with a premium license can manually generate credit notes via the user interface or the API. Please contact hello@getlago.com to get access to Lago Cloud and Lago Self-Hosted Premium.<alert-premium>
You can now use your Lago account to issue credit notes for subscription invoices and add-ons.
Depending on the payment status of the invoice, you will be able to:
- Refund the customer (only for paid invoices); and/or
- Credit back the customer's account.
Please refer to the documentation for more information on credit notes and credit methods.
Lago Open API
We have developed an Open API to help you get started with Lago and make it easier to test our solution.
Please refer to the documentation to learn how to import the Lago Open API into Postman and create a new collection.
Our public repository is also available on GitHub.
New calculation method for invoices
In preparation for the release of the credit note feature and based on feedback from accountants, we have introduced changes to the way coupons and prepaid credits are taken into account in the calculation of invoices.
Until now, coupons and prepaid credits were deducted from the amount before tax - for example:
CURRENT INVOICE CALCULATION
-----------------------------
All subscriptions = $50
All usage-based fees = $20
Coupons = $10
Prepaid credits = $30
-----------------------------
Subtotal = $30
Tax (10%) = $3
Total due = $33
From now on, coupons and prepaid credits will be deducted from the amount after tax.
Following the previous example:
NEW INVOICE CALCULATION
-----------------------------
All subscriptions = $50
All usage-based fees = $20
-----------------------------
Subtotal (excl. tax) = $70
Tax (10%) = $7
-----------------------------
Subtotal (incl. tax) = $77
Coupons = $10
Prepaid credits = $30
Total due = $37
In addition to this, credit purchases are now considered as advance payments. Therefore, the tax rate no longer applies to the purchase of credits.
Invoice payment status
As we are making progress on the grace period feature, which will allow you to review invoices before they are sent to customers, we have introduced changes to the API to add new invoice management options.
The invoice object included a <text-code>status<text-code> attribute with three possible values: <text-code>pending<text-code>, <text-code>failed<text-code> and <text-code>succeeded<text-code>. This attribute has been renamed <text-code>payment_status<text-code> for accuracy purposes (possible values remains unchanged).
In addition to this, a new <text-code>status<text-code> attribute has been created, including two possible values:
- <text-code>draft<text-code>: when an invoice has been generated but can still be modified; and
- <text-code>finalized<text-code>: when the invoice is validated and can no longer be modified.
All existing invoices are considered as <text-code>finalized<text-code>, you will not be able to use the <text-code>draft status until the grace period feature is deployed (later this month).
Please contact us at hello@getlago.com if you have any questions, we will be happy to help.
Apply several coupons
You can now apply several coupons to a customer account.
When several coupons are applied to a customer, they will be deducted according to the date on which they were applied: the coupon that was applied first will be deducted first.
The remaining value / number of remaining periods for each coupon will be visible in the "Overview" tab of the customer view.
You can also use <text-code>GET /api/v1/applied_coupons<text-code> to retrieve all coupons applied to a customer.
Invoice details
To review the invoice details through the user interface:
- Go to the "Customers" section;
- Select a customer to open the customer view;
- Open the "Invoices" tab; and
- Click the invoice to see its details.
On the details page, you can download the invoice in PDF format and copy the invoice ID through the "Actions" dropdown in the upper right corner.

Integration with GoCardless
Lago now offers native integration with GoCardless, including (but not limited to):
- Ability to define GoCardless as the default payment provider for a customer;
- Ability to automatically create Lago customers in GoCardless and retrieve their customer ID;
- Ability to automatically collect payments via direct debit;
- Ability to automatically update the status of an invoice depending on the payment status; and
- Ability to automatically resubmit failed payments with GoCardless Success+.
To learn more about this integration, please consult our guide.
Past and future subscription dates
It is now possible to set a start date in the past or in the future for a new subscription.
Setting a start date in the past can be useful when migrating existing customers to Lago, while setting a start date in the future can be useful for scheduling upcoming subscriptions.
For more information about the impact of the start date on the invoicing process, please refer to the documentation.
Dimensions for grouping events
When creating a new billable metric, you can define dimensions that will be used to group events according to their properties.
For example, if you want to charge your customers for compute capacity according to the cloud provider and server region, you can create a <text-code>compute<text-code> billable metric with two dimensions (learn more).
Changes to the API include:
- Ability to add a <text-code>group<text-code> parameter with one or two dimensions when creating or updating billable metrics;
- Ability to retrieve the groups associated with a billable metric;
- Ability to add a <text-code>group_properties<text-code> parameter when creating or updating a plan;
- Ability to retrieve customer usage by group; and
- New <text-code>lago_group_id<text-code> for fees (see invoice object).
Enhanced coupon model
We have improved the coupon model to offer more flexibility.
Changes include (but are not limited to):
- Ability to define the value of a coupon as a fixed amount or percentage;
- Ability to create recurring coupons that apply over several billing periods; and
- Ability to set an expiration date (i.e. date after which the coupon can no longer be redeemed).
Error management
We have refactored the error management system to give more visibility to API users.
The <text-code>message<text-code> attribute for errors has been replaced with <text-code>code<text-code> and <text-code>error_details<text-code>, which provide more information about the errors. There are several codes associated with each error.
For example, when creating a new billable metric, the API may return <text-code>"error": "Unprocessable entity"<text-code> with the code <text-code>value_is_mandatory<text-code> for the <text-code>name<text-code> field (i.e. the name of the billable metric is missing).
Please refer to the documentation available for each endpoint for more information on error codes.
Customer currency
t is now possible to define the currency at customer level.
The currency associated with each customer was previously defined by the currency of the plan assigned to the customer. This logic prevented users from assigning a coupon or an add-on to a customer before creating a subscription.
When creating a new customer via the user interface or the API, you can now select the currency associated with the customer. If the currency is not defined at customer level, it will be determined by the first object assigned to the customer (i.e. currency of the plan, add-on, coupon, or wallet).
<alert-warning>⚠️ Once an object has been assigned to the customer (i.e. plan, add-on, coupon, or wallet), the currency associated with the customer cannot be changed.<alert-warning>
Overwrite plans
If after a negotiation phase, you need to create a custom plan for an important customer, you can use the 'overwrite' feature, available through the user interface.
This feature allows you to create a new plan from an existing one, in order to adjust the plan model and charges according to your business needs.
Overwriting a plan has no impact on the original plan or existing subscriptions.
Invite members
You can now invite your teammates to join your Lago account.
To add a new member via the user interface:
- Go to the "Settings" section of the app;
- Open the "Members" tab;
- Click "Invite a member" on the right;
- Enter the email address of your teammate;
- Click "Generate invitation link" to confirm; and
- Copy the invitation link to share it with your teammate.
Invitation links have no expiration date. When your teammate clicks the link, they can choose their password and then access the account.
You can remove a member by clicking the bin icon on the right of the list of members.
<alert-info>ℹ️ All members have the same role and permissions.<alert-info>
Recurring count
Companies with fair and transparent pricing models are often praised by customers. If you are considering implementing seat-based pricing for instance, the <text-code>reccuring_count<text-code> aggregation is exactly what you need.
This new aggregation type allows you to push events for persistent units.
Consider the following example:
<quote>Your customer is on a monthly plan and adds a new user to their account on September 15th, so you generate an event that corresponds to one billing unit.
At the end of September, Lago will automatically create a prorated charge for this user, based on the number of days of activity (i.e. from September 15th to September 30th).
This billing unit will remain valid until you generate another event to remove it. For instance, if your customer deletes the user on October 22nd, Lago will create another prorated charge for the period October 1st to October 22nd.<quote>
Consult our guide to learn more about persistent units.
API changes - External IDs
We are introducing changes to the API that will make it easier to manage subscriptions:
- For the creation of new subscriptions, <text-code>subscription_id<text-code> and <text-code>unique_id<text-code> will be removed and replaced with <text-code>external_id<text-code> (required); and
- For all other endpoints, <text-code>subscription_id<text-code> will be replaced with <text-code>external_subscription_id<text-code>.
This will allow you to operate via the API using your own identifiers and save you the trouble for storing our IDs.
In addition to this, for consistency purposes:
- For the creation of new customers, <text-code>customer_id<text-code> will be replaced with <text-code>external_id<text-code>; and
- For all other endpoints, <text-code>customer_id will be replaced with <text-code>external_customer_id<text-code>.
These changes will come into effect on September 8, 2022.
Please get in touch with our team if you have any questions.
Prepaid credits
Unlock recurring revenue opportunities for pay-as-you-go pricing models with Lago's prepaid credit features:
- Set the value of the credits and create wallets for your customers;
- Collect payments upfront using the invoices automatically generated by Lago; and
- Check the balance of your customers' wallets and trigger top-ups at any time via the API or the user interface.
Please refer to the guide and API documentation for more information.
Volume charge model
The new volume charge model allows you to create a tiered pricing structure and then calculate a unit price that applies to all units depending on total volume.
It is similar to the graduated charge model, except that only one price tier applies at the end of the billing period.
Please refer to the guide and API documentation for more information.
Free units for the percentage charge model
We have released an enhanced version of the percentage charge model, including:
- Ability to define free units based on the number of events (e.g. first 3 events are free); and
- Ability to define free units based on the total amount (e.g. first $500 are free).
Please refer to the documentation for more information.
Anniversary dates for subscriptions
When assigning a plan to a customer, you can now choose whether the subscription should be renewed at the beginning of the period or on its anniversary date.
For instance, if a monthly plan is assigned to a customer on August 10th and you choose to align the billing cycle with the anniversary date of the subscription, the customer will be billed every 10th of the month.
With the API, you can use the <text-code>billing_time<text-code> attribute to choose your preferred option. If not provided, Lago will base the subscription on calendar periods.
Tracking & Analytics
To help us better understand your needs, we have added a tracking module to the self-hosted version of Lago.
Data analytics will help us improve the quality of our product and performance of the API.
As the privacy of our users is of paramount importance, we will not collect any personal information about your customers or the amount of your invoices, and you can opt out at any time.
Multiple plans
It is now possible to assign multiple plans to a customer (e.g. if your customer needs to create several workspaces on your platform, you can link a plan to each workspace).
To help differentiate each plan, you can add display names that will appear in the user interface and on invoices.
Kindly note that:
- All plans must be denominated in the same currency; and
- You must now specify the <text-code>subscription_id<text-code> for each event or create batch events.
Go client
We have added a new API client to make it easier for Go users to set up their billing system with Lago.
PDF invoices
Lago will generate a PDF file for each new invoice.
You can download invoices via the user interface or the API and can also modify some of the elements included in the invoice template.
Full documentation available here.
Customer current usage
Good news for those who follow closely the consumption of their customers. You can now track the current billing usage of your customers either from the UI or from the API.
To access this Usage tab:
- Access your list of customers;
- Select a specific customer that is already linked to a subscription;
- Access the usage tab; and
- Get a complete view of usage-based consumption that is going to be billed on the next invoice.
On top of that, you can fetch the current usage of a customer directly from the API. To do so, you can access the following endpoint <text-code>GET /api/v1/customers/:customer_id/current_usage<text-code>

App version
It is now possible to check the version of the Lago application you are using.
Click on of your <text-code>organization's name<text-code> in the top-left corner of the user interface to see the app version currently in use.

Released new API endpoints
We like our users when they use our nice and clean UI, but we also love when they use our API. One of the usecase could be to use Lago as a white-labeled solution.
Here is the full list of endpoints we have just released:
Billable metrics
- Create a billable metric <text-code>POST /api/v1/billable_metrics<text-code>
- Update a billable metric <text_code>PUT /api/v1/billable_metrics/:code<text-code>
- Destroy a billable metric <text-code>DELETE /api/v1/billable_metrics/:code<text-code>
- Fetch a specific billable metric <text-code>GET /api/v1/billable_metrics/:code<text-code>
- Fetch all billable metrics <text-code>GET /api/v1/billable_metrics?per_page=2&page=1<text-code>
Plans
- Create a plan <text-code>POST /api/v1/plans<text-code>
- Update a plan <text-code>PUT /api/v1/plans/:code<text-code>
- Destroy a plan <text-code>DELETE /api/v1/plans/:code<text-code>
- Fetch a specific plan <text-code>GET /api/v1/plans/:code<text-code>
- Fetch all plans <text-code>GET /api/v1/plans?per_page=2&page=1<text-code>
Coupons
- Create a coupon <text-code>POST /api/v1/coupons<text-code>
- Update a coupon <text-code>PUT /api/v1/coupons/:code<text-code>
- Destroy a coupon <text-code>DELETE /api/v1/coupons/:code<text-code>
- Fetch a specific coupon <text-code>GET /api/v1/coupons/:code<text-code>
- Fetch all coupons <text-code>GET /api/v1/coupons?per_page=2&page=1<text-code>
Add-ons
- Create a add_on <text-code>POST /api/v1/add_ons<text-code>
- Update a add_on <text-code>PUT /api/v1/add_ons/:code<text-code>
- Destroy a add_on <text-code>DELETE /api/v1/add_ons/:code<text-code>
- Fetch a specific add_on <text-code>GET /api/v1/add_ons/:code<text-code>
- Fetch all add_ons <text-code>GET /api/v1/add_ons?per_page=2&page=1<text-code>
Current usage
- Get the current usage of a specific customer <text-code>GET /api/v1/customers/:customer_id/current_usage<text-code>
Organization
- Update the information of your organization <text-code>PUT /api/v1/organizations<text-code>
Integration with Stripe Payments
Lago now offers native integration with Stripe, including (but not limited to):
- Ability to create Lago customers in Stripe automatically and retrieve their customer ID;
- Ability to define Stripe as the default payment provider for a customer;
- Ability to generate payment intents automatically;
- Ability to update the status of an invoice depending on the payment status; and
- Ability to receive a webhook when a payment fails.
To learn more about this integration, please consult our guide.
Weekly plan interval
When setting up a plan, you can select the weekly interval to define a weekly billing period.
The plan interval applies to the subscription and charges, which means that:
- For plans that must be paid in advance, the subscription fee is invoiced at the beginning of the week;
- For plans that are paid in arrears, the subscription fee is invoiced at the end of the week; and
- Usage is calculated at the end of each week.
The week starts on Monday and ends on Sunday. If the customer's subscription starts in the middle of the week, the fees will be applied on a pro-rata basis.
Percentage charge model
Inside the plan, when creating a charge, you can now select the percentage charge model.
This feature is useful for industries willing to take a <text-code>% + fixed fee<text-code> out of a usage-based features (for banking or charity industry, for instance). These fees are applied on the units to be charged (e.g. the aggregation result of your billable metric).
Invoice monthly charges for a plan paid yearly
Before the release of this feature, usaged-based features (charges) were following the plan period. If the plan period was invoiced yearly, the charges were invoiced yearly.
It's now possible to invoice billable metrics on a montly basis for a plan billed yearly. The base amount of the plan will be invoice yearly (in-arrears or in-advance), but your usage based features will be invoiced on a monthly basis.
To do so:
- Access a Plan;
- Define a plan yearly;
- Price additional charges from your billable metrics; and
- Turn <text-code>on<text-code> the toggle for applying charges monthly.
By switching on, all the charges will be invoiced monthly even if the plan is yearly.
<alert-info>ℹ️ The last invoice is gathering both the subscription and the usage-based charges<alert-info>
Events list
You are now able to view all the ingested events sent from your application to Lago. We called this feature <text-code>Events list<text-code> because it makes the event ingestion easier and more understandable.
- Access the <text-code>Developer<text-code> sidebar item;
- Click the <text-code>Events<text-code> tab; and
- Take a look at the latest events ingested
<alert-info>ℹ️ If an event you sent is not shown in the UI, it means that it has not been ingested by Lago<alert-info>
This events list is also helpul to warn you for 2 specific cases:
- Warning 1 - The event code is not related to an existing billable metric
- Warning 2 - The property sent does not match the aggregation property defined in your billable metric

Add-ons
Add-ons are now available on Lago. Create add-ons to apply one-time fees (e.g. setup fee, one-time purchase, etc.) and generate the corresponding invoices instantly.
Full documentation available here.
Pay-as-you-go template
We've added a new template to our collection: click here to learn how to replicate Algolia's pay-as-you-go pricing.
It's a great starting point for companies whose pricing fully depends on usage, such as cloud service providers and API companies.
With Lago, you can adapt this template to your products and services, using some of our most popular features, including the 'sum' aggregation type and the package charge model.
Coupons
Introducing coupons, a new feature that allows you to offer discounts to your customers.
Full documentation available here.
Subscription changes
You can now modify the subscription assigned to a customer through the user interface.
To learn how to upgrade or downgrade a subscription and how it affects billing, please refer to the documentation.
Package pricing for charges
It is now possible to apply a package pricing model to a charge. To do so:
- Select an existing plan (or create a new one);
- Add a charge; and
- Select the package pricing model.
This new pricing model allows you to apply a flat fee to a range of units. The price will be fixed for the entire range, regardless of the number of units consumed by the customer during the billing period.