- Documentation
- API References
- Integrations
- Templates
- Blog
- FAQ
- GitHub
- Getting started
Add-ons
Analytics
Billable metrics
Coupons
Credit notes
Customer usage
Customers
Events
Fees
Invoices
Organizations
Plans
Resources
Subscriptions
Taxes
Wallets
Webhook endpoints
Webhooks
API Reference
The subscription object
This object represents the assignation of plan to one of the customer of your business.
{
"subscription": {
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"external_id": "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
"lago_customer_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"external_customer_id": "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
"billing_time": "anniversary",
"name": "Repository A",
"plan_code": "premium",
"status": "active",
"created_at": "2022-08-08T00:00:00Z",
"canceled_at": "2022-09-14T16:35:31Z",
"started_at": "2022-08-08T00:00:00Z",
"ending_at": "2022-10-08T00:00:00Z",
"subscription_at": "2022-08-08T00:00:00Z",
"terminated_at": "2022-09-14T16:35:31Z",
"previous_plan_code": null,
"next_plan_code": null,
"downgrade_plan_date": "2022-04-30",
"trial_ended_at": "2022-08-08T00:00:00Z",
"plan": {
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"name": "Startup",
"invoice_display_name": "Startup plan",
"created_at": "2023-06-27T19:43:42Z",
"code": "startup",
"interval": "monthly",
"description": "",
"amount_cents": 10000,
"amount_currency": "USD",
"trial_period": 5,
"pay_in_advance": true,
"bill_charges_monthly": null,
"active_subscriptions_count": 0,
"draft_invoices_count": 0,
"minimum_commitment": {
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"plan_code": "premium",
"amount_cents": 100000,
"invoice_display_name": "Minimum Commitment (C1)",
"interval": "monthly",
"created_at": "2022-04-29T08:59:51Z",
"updated_at": "2022-04-29T08:59:51Z",
"taxes": [
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"name": "TVA",
"code": "french_standard_vat",
"description": "French standard VAT",
"rate": 20,
"applied_to_organization": true,
"add_ons_count": 0,
"charges_count": 0,
"customers_count": 0,
"plans_count": 0,
"created_at": "2023-07-06T14:35:58Z"
}
]
},
"charges": [
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a91",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a91",
"billable_metric_code": "requests",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "package",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 3000,
"properties": {
"amount": "30",
"free_units": 100,
"package_size": 1000
},
"filters": []
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a92",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a92",
"billable_metric_code": "cpu",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "graduated",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 0,
"properties": {
"graduated_ranges": [
{
"from_value": 0,
"to_value": 10,
"flat_amount": "10",
"per_unit_amount": "0.5"
},
{
"from_value": 11,
"to_value": null,
"flat_amount": "0",
"per_unit_amount": "0.4"
}
]
},
"filters": []
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a93",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a93",
"billable_metric_code": "seats",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "standard",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": true,
"prorated": false,
"min_amount_cents": 0,
"properties": {},
"filters": [
{
"invoice_display_name": "Europe",
"properties": {
"amount": "10"
},
"values": {
"region": [
"Europe"
]
}
},
{
"invoice_display_name": "USA",
"properties": {
"amount": "5"
},
"values": {
"region": [
"USA"
]
}
},
{
"invoice_display_name": "Africa",
"properties": {
"amount": "8"
},
"values": {
"region": [
"Africa"
]
}
}
]
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a94",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a94",
"billable_metric_code": "storage",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "volume",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 0,
"properties": {
"volume_ranges": [
{
"from_value": 0,
"to_value": 100,
"flat_amount": "0",
"per_unit_amount": "0"
},
{
"from_value": 101,
"to_value": null,
"flat_amount": "0",
"per_unit_amount": "0.5"
}
]
},
"filters": []
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a95",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a95",
"billable_metric_code": "payments",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "percentage",
"invoiceable": false,
"invoice_display_name": "Setup",
"pay_in_advance": true,
"prorated": false,
"min_amount_cents": 0,
"properties": {
"rate": "1",
"fixed_amount": "0.5",
"free_units_per_events": 5,
"free_units_per_total_aggregation": "500"
},
"filters": []
}
],
"taxes": [
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"name": "TVA",
"code": "french_standard_vat",
"description": "French standard VAT",
"rate": 20,
"applied_to_organization": true,
"add_ons_count": 0,
"charges_count": 0,
"customers_count": 0,
"plans_count": 0,
"created_at": "2023-07-06T14:35:58Z"
}
]
}
}
}
Attributes
Unique identifier assigned to the subscription within the Lago application. This ID is exclusively created by Lago and serves as a unique identifier for the subscription’s record within the Lago system.
Unique identifier assigned to the customer within the Lago application. This ID is exclusively created by Lago and serves as a unique identifier for the customer’s record within the Lago system.
The billing time for the subscription, which can be set as either
anniversary
or calendar
. If not explicitly provided, it will default
to calendar
. The billing time determines the timing of recurring billing
cycles for the subscription. By specifying anniversary
, the billing
cycle will be based on the specific date the subscription started (billed
fully), while calendar
sets the billing cycle at the first day of the
week/month/year (billed with proration).
The customer external unique identifier (provided by your own application).
The subscription external unique identifier (provided by your own application).
The anniversary date and time of the initial subscription. This date
serves as the basis for billing subscriptions with anniversary
billing
time. The anniversary_date
should be provided in ISO 8601 datetime
format in seconds and expressed in Coordinated Universal Time (UTC).
The cancellation date of the subscription. This field is not null when the
subscription is canceled
. This date should be provided in ISO 8601
datetime format in seconds and expressed in Coordinated Universal Time
(UTC).
The creation date of the subscription, represented in ISO 8601 datetime format in seconds and expressed in Coordinated Universal Time (UTC). This date provides a timestamp indicating when the subscription was initially created.
The unique code representing the plan to be attached to the customer. This
code must correspond to the code
property of one of the active plans.
The effective start date of the subscription. This field can be null if
the subscription is pending
or canceled
. This date should be provided
in ISO 8601 datetime format in seconds and expressed in Coordinated
Universal Time (UTC).
The effective end date of the subscription. If this field is set to null, the subscription will automatically renew. This date should be provided in ISO 8601 datetime format in seconds and expressed in Coordinated Universal Time (UTC).
The display name of the subscription on an invoice. This field allows for customization of the subscription’s name for billing purposes, especially useful when a single customer has multiple subscriptions using the same plan.
The status of the subscription, which can have the following values: -
pending
: a previous subscription has been downgraded, and the current
one is awaiting automatic activation at the end of the billing period. -
active
: the subscription is currently active and applied to the
customer. - terminated
: the subscription is no longer active. -
canceled
: the subscription has been stopped before its activation. This
can occur when two consecutive downgrades have been applied to a customer
or when a subscription with a pending status is terminated.
The termination date of the subscription. This field is not null when the
subscription is terminated
. This date should be provided in ISO 8601
datetime format in seconds and expressed in Coordinated Universal Time
(UTC)
The code identifying the previous plan associated with this subscription.
The code identifying the next plan in the case of a downgrade.
The date when the plan will be downgraded, represented in ISO 8601 date format.
The expiration date of the free trial, formatted in ISO 8601 standard.
Unique identifier of the plan created by Lago.
The date and time when the plan was created. It is expressed in UTC format according to the ISO 8601 datetime standard. This field provides the timestamp for the exact moment when the plan was initially created.
The name of the plan.
The code of the plan. It serves as a unique identifier associated with a particular plan. The code is typically used for internal or system-level identification purposes, like assigning a subscription, for instance.
The interval used for recurring billing. It represents the frequency
at which subscription billing occurs. The interval can be one of the
following values: weekly
, monthly
, quarterly
or yearly
.
The description on the plan.
The base cost of the plan, excluding any applicable taxes, that is billed on a recurring basis. This value is defined at 0 if your plan is a pay-as-you-go plan.
The currency of the plan. It indicates the monetary unit in which the plan’s cost, including taxes and usage-based charges, is expressed.
The duration in days during which the base cost of the plan is offered for free.
This field determines the billing timing for the plan. When set to
true
, the base cost of the plan is due at the beginning of each
billing period. Conversely, when set to false
, the base cost of the
plan is due at the end of each billing period.
This field, when set to true
, enables to invoice usage-based charges
on monthly basis, even if the cadence of the plan is yearly
. This
allows customers to pay charges overage on a monthly basis. This can
be set to true only if the plan’s interval is yearly
.
List of unique code used to identify the taxes.
Specifies the name that will be displayed on an invoice. If no value is set for this field, the name of the actual charge will be used as the default display name.
The count of active subscriptions that are currently associated with the plan. This field provides valuable information regarding the impact of deleting the plan. By checking the value of this field, you can determine the number of subscriptions that will be affected if the plan is deleted.
The number of draft invoices that include a subscription attached to the plan. This field provides valuable information about the impact of deleting the plan. By checking the value of this field, you can determine the number of draft invoices that will be affected if the plan is deleted.
The number of draft invoices that include a subscription attached to the plan. This field provides valuable information about the impact of deleting the plan. By checking the value of this field, you can determine the number of draft invoices that will be affected if the plan is deleted.
Unique identifier of charge, created by Lago.
The unique code representing the plan to be attached to the customer.
The amount of the minimum commitment in cents.
Specifies the name that will be displayed on an invoice. If no value is set for this field, the default name will be used as the display name.
The interval used for recurring billing. It represents the
frequency at which minimum commitment billing occurs. Available
options: weekly
, monthly
, quarterly
, yearly
.
The date and time when the minimum commitment was created. It is expressed in UTC format according to the ISO 8601 datetime standard. This field provides the timestamp for the exact moment when the minimum commitment was initially created..
The date and time when the minimum commitment was updated. It is expressed in UTC format according to the ISO 8601 datetime standard. This field provides the timestamp for the exact moment when the minimum commitment was initially created.
All taxes applied to the minimum commitment.
Unique identifier of the minimum commitment, created by Lago.
Unique identifier of the billable metric created by Lago.
Unique code identifying a billable metric.
The date and time when the charge was created. It is expressed in UTC format according to the ISO 8601 datetime standard.
Specifies the pricing model used for the calculation of the final
fee. It can be standard
, graduated
, package
, percentage
,
or volume
.
This field determines the billing timing for this specific
usage-based charge. When set to true
, the charge is due and
invoiced immediately. Conversely, when set to false
, the charge
is due and invoiced at the end of each billing period.
This field specifies whether the charge should be included in a
proper invoice. If set to false
, no invoice will be issued for
this charge. You can only set it to false
when pay_in_advance
is true
.
The minimum spending amount required for the charge, measured in cents and excluding any applicable taxes. It indicates the minimum amount that needs to be charged for each billing period.
Specifies the name that will be displayed on an invoice. If no value is set for this field, the name of the actual charge will be used as the default display name.
Specifies whether a charge is prorated based on the remaining
number of days in the billing period or billed fully. If not
defined, this argument is set to false
by default. - If set to
true
, the charge is prorated based on the remaining days in the
current billing period. - If set to false
, the charge is billed
in full. Note that only a charge_model
sets to standard
,
graduated
and volume
can be prorated.
List of unique code used to identify the taxes.
Case of groups and dimensions
Specifies the name that will be displayed on an invoice. If no value is set for this field, the values of the filter will be used as the default display name.
List of possible filter values. The key and values must match one of the billable metric filters.
Case of graduated pricing model
Specifies the lower value of a tier for a graduated
charge model. It must be either 0 or the previous range’s
to_value + 1
to maintain the proper sequence of values.
Specifies the highest value of a tier for a graduated
charge model. - This value must be higher than the
from_value
of the same tier. - This value must be null
for the last tier.
The unit price, excluding tax, for a specific tier of a
graduated
charge model. It is expressed as a decimal
value.
The flat amount for a whole tier, excluding tax, for a
graduated
charge model. It is expressed as a decimal
value.
Case of package pricing model
The amount, excluding tax, for a complete set of units in a
package
charge model. It is expressed as a decimal value.
The quantity of units included in each pack or set for a
package
charge model. It indicates the number of units that
are bundled together as a single package or set within the
pricing structure.
The quantity of units that are provided free of charge for
each billing period in a package
charge model. This field
specifies the number of units that customers can use without
incurring any additional cost during each billing cycle.
Case of percentage pricing model
The percentage rate that is applied to the amount of each
transaction for a percentage
charge model. It is expressed
as a decimal value.
The fixed fee that is applied to each transaction for a
percentage
charge model. It is expressed as a decimal value.
The count of transactions that are not impacted by the
percentage
rate and fixed fee in a percentage charge model.
This field indicates the number of transactions that are
exempt from the calculation of charges based on the specified
percentage rate and fixed fee.
The transaction amount that is not impacted by the
percentage
rate and fixed fee in a percentage charge model.
This field indicates the portion of the transaction amount
that is exempt from the calculation of charges based on the
specified percentage rate and fixed fee.
Specifies the minimum allowable spending for a single
transaction. Working as a transaction floor. Cannot be greater
than the per_transaction_max_amount
value.
Specifies the maximum allowable spending for a single
transaction. Working as a transaction cap. Cannot be lower
than the per_transaction_min_amount
value.
Case of volume pricing model
Specifies the lower value of a tier for a volume
charge
model. It must be either 0 or the previous range’s
to_value + 1 to maintain the proper sequence of values.
Specifies the highest value of a tier for a volume
charge model. - This value must be higher than the
from_value
of the same tier. - This value must be null
for the last tier.
The unit price, excluding tax, for a specific tier of a
volume
charge model. It is expressed as a decimal value.
The flat amount for a whole tier, excluding tax, for a
volume
charge model. It is expressed as a decimal value.
Case of graduated percentage pricing model
Specifies the lower value of a tier for a graduated percentage
charge model. It must be either 0 or the
previous range’s to_value + 1 to maintain the proper
sequence of values.
Specifies the highest value of a tier for a graduated percentage
charge model. - This value must be higher than
the from_value
of the same tier. - This value must be
null
for the last tier.
The percentage rate that is applied to the amount of each
transaction for a graduated percentage
charge model. It
is expressed as a decimal value, and only set for a
specific tier.
The flat amount for a whole tier, excluding tax, for a
graduated percentage
charge model. It is expressed as a
decimal value.
Case of standard pricing model
The unit price, excluding tax, for a standard
charge model.
It is expressed as a decimal value.
The list of event properties that are used to group the events
on the invoice for a standard
charge model.
Was this page helpful?
{
"subscription": {
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"external_id": "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
"lago_customer_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"external_customer_id": "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
"billing_time": "anniversary",
"name": "Repository A",
"plan_code": "premium",
"status": "active",
"created_at": "2022-08-08T00:00:00Z",
"canceled_at": "2022-09-14T16:35:31Z",
"started_at": "2022-08-08T00:00:00Z",
"ending_at": "2022-10-08T00:00:00Z",
"subscription_at": "2022-08-08T00:00:00Z",
"terminated_at": "2022-09-14T16:35:31Z",
"previous_plan_code": null,
"next_plan_code": null,
"downgrade_plan_date": "2022-04-30",
"trial_ended_at": "2022-08-08T00:00:00Z",
"plan": {
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"name": "Startup",
"invoice_display_name": "Startup plan",
"created_at": "2023-06-27T19:43:42Z",
"code": "startup",
"interval": "monthly",
"description": "",
"amount_cents": 10000,
"amount_currency": "USD",
"trial_period": 5,
"pay_in_advance": true,
"bill_charges_monthly": null,
"active_subscriptions_count": 0,
"draft_invoices_count": 0,
"minimum_commitment": {
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"plan_code": "premium",
"amount_cents": 100000,
"invoice_display_name": "Minimum Commitment (C1)",
"interval": "monthly",
"created_at": "2022-04-29T08:59:51Z",
"updated_at": "2022-04-29T08:59:51Z",
"taxes": [
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"name": "TVA",
"code": "french_standard_vat",
"description": "French standard VAT",
"rate": 20,
"applied_to_organization": true,
"add_ons_count": 0,
"charges_count": 0,
"customers_count": 0,
"plans_count": 0,
"created_at": "2023-07-06T14:35:58Z"
}
]
},
"charges": [
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a91",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a91",
"billable_metric_code": "requests",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "package",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 3000,
"properties": {
"amount": "30",
"free_units": 100,
"package_size": 1000
},
"filters": []
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a92",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a92",
"billable_metric_code": "cpu",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "graduated",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 0,
"properties": {
"graduated_ranges": [
{
"from_value": 0,
"to_value": 10,
"flat_amount": "10",
"per_unit_amount": "0.5"
},
{
"from_value": 11,
"to_value": null,
"flat_amount": "0",
"per_unit_amount": "0.4"
}
]
},
"filters": []
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a93",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a93",
"billable_metric_code": "seats",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "standard",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": true,
"prorated": false,
"min_amount_cents": 0,
"properties": {},
"filters": [
{
"invoice_display_name": "Europe",
"properties": {
"amount": "10"
},
"values": {
"region": [
"Europe"
]
}
},
{
"invoice_display_name": "USA",
"properties": {
"amount": "5"
},
"values": {
"region": [
"USA"
]
}
},
{
"invoice_display_name": "Africa",
"properties": {
"amount": "8"
},
"values": {
"region": [
"Africa"
]
}
}
]
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a94",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a94",
"billable_metric_code": "storage",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "volume",
"invoiceable": true,
"invoice_display_name": "Setup",
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 0,
"properties": {
"volume_ranges": [
{
"from_value": 0,
"to_value": 100,
"flat_amount": "0",
"per_unit_amount": "0"
},
{
"from_value": 101,
"to_value": null,
"flat_amount": "0",
"per_unit_amount": "0.5"
}
]
},
"filters": []
},
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a95",
"lago_billable_metric_id": "1a901a90-1a90-1a90-1a90-1a901a901a95",
"billable_metric_code": "payments",
"created_at": "2023-06-27T19:43:42Z",
"charge_model": "percentage",
"invoiceable": false,
"invoice_display_name": "Setup",
"pay_in_advance": true,
"prorated": false,
"min_amount_cents": 0,
"properties": {
"rate": "1",
"fixed_amount": "0.5",
"free_units_per_events": 5,
"free_units_per_total_aggregation": "500"
},
"filters": []
}
],
"taxes": [
{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"name": "TVA",
"code": "french_standard_vat",
"description": "French standard VAT",
"rate": 20,
"applied_to_organization": true,
"add_ons_count": 0,
"charges_count": 0,
"customers_count": 0,
"plans_count": 0,
"created_at": "2023-07-06T14:35:58Z"
}
]
}
}
}