> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getlago.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> If Billable metrics are made to measure customer usage, Plans are made to apply prices to this usage.

## Plan overview[](#plan-overview "Direct link to heading")

A plan defines how your products are priced and billed.
It groups pricing, billing cadence, feature access, commitments, and invoicing rules. Plans often reflect your pricing page, but can also model custom or enterprise agreements.
To bill a customer, a plan must be assigned to a subscription.

## Plan structure[](#plan-structure "Direct link to heading")

<Tabs>
  <Tab title="Dashboard">
    A plan defines:

    * The features customers can access
    * The prices they pay
    * How and when they are invoiced

    To invoice a customer with Lago, a plan must be assigned to a subscription.
    A plan is composed of the following elements:

    1. [Basic information](#plan-structure)
       * Plan `name`
       * Plan `code`
       * Plan `description`
       * Taxes applied at the plan level
    2. [Plan model](/guide/plans/plan-model)
       * Billing `interval` (monthly, yearly, etc.)
       * Base amount and currency (subscription fee)
       * Whether the subscription fee is billed `in advance` or `in arrears`
       * Trial period (in days), applied to the subscription fees
    3. [Fixed charges (add-ons)](/guide/plans/charges/fixed-charges)
       * Charge `model`
       * Pricing `properties` defined by the charge model
       * Whether the fixed charge is billed `in advance` or `in arrears`
       * Taxes applied to the fixed charge (overriding plan-level taxes if needed)
    4. [Usage-based charges (billable metrics)](/guide/plans/charges/usage-based-charges)
       * Charge `model`
       * Pricing `properties` defined by the charge model
       * Optional spending minimum
       * Whether usage charge is billed `in advance` or `in arrears`
       * Taxes applied to the charge (overriding plan-level taxes if needed)
    5. [Minimum commitment](/guide/plans/commitment)
       * A minimum amount applied across all invoices generated by the plan within a billing period.
    6. [Entitlements](/guide/entitlements)
       * Feature access and additional metadata attached to the plan.
    7. [Progressive billing](/guide/plans/progressive-billing)
       * Automatically triggers invoices when cumulative usage reaches predefined thresholds.
  </Tab>

  <Tab title="API">
    <CodeGroup>
      ```bash Premium Plan Example theme={"dark"}
      LAGO_URL="https://api.getlago.com"
      API_KEY="__YOUR_API_KEY__"

      curl --location --request POST "$LAGO_URL/api/v1/plans" \
      --header "Authorization: Bearer $API_KEY" \
      --header 'Content-Type: application/json' \
      --data-raw '{
         "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,
            "bill_fixed_charges_monthly": null,
            "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,
                  "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,
               "regroup_paid_fees": null,
               "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,
               "regroup_paid_fees": null,
               "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,
               "regroup_paid_fees": null,
               "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,
               "regroup_paid_fees": null,
               "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,
               "regroup_paid_fees": "invoice",
               "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": []
               }
            ],
            "fixed_charges": [
               {
               "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
               "lago_add_on_id": "2b802b80-2b80-2b80-2b80-2b802b802b80",
               "code": "setup_fee",
               "invoice_display_name": "Setup Fee",
               "add_on_code": "setup",
               "created_at": "2026-01-15T10:30:00Z",
               "charge_model": "standard",
               "pay_in_advance": true,
               "prorated": false,
               "properties": {
                  "amount": "500"
               },
               "units": 1,
               "lago_parent_id": null,
               "taxes": [
                  {
                     "lago_id": "3c703c70-3c70-3c70-3c70-3c703c703c70",
                     "name": "VAT",
                     "code": "vat_20",
                     "rate": 20,
                     "description": "Standard VAT rate",
                     "applied_to_organization": true,
                     "created_at": "2026-01-01T00:00:00Z"
                  }
               ]
               },
               {
               "lago_id": "4d604d60-4d60-4d60-4d60-4d604d604d60",
               "lago_add_on_id": "5e505e50-5e50-5e50-5e50-5e505e505e50",
               "code": "support_tier",
               "invoice_display_name": "Support Tier",
               "add_on_code": "premium_support",
               "created_at": "2026-01-15T10:30:00Z",
               "charge_model": "graduated",
               "pay_in_advance": false,
               "prorated": true,
               "properties": {
                  "graduated_ranges": [
                     {
                     "from_value": 0,
                     "to_value": 10,
                     "per_unit_amount": "5",
                     "flat_amount": "200"
                     },
                     {
                     "from_value": 11,
                     "to_value": null,
                     "per_unit_amount": "1",
                     "flat_amount": "300"
                     }
                  ]
               },
               "units": 1,
               "lago_parent_id": null,
               "taxes": []
               },
               {
               "lago_id": "6f406f40-6f40-6f40-6f40-6f406f406f40",
               "lago_add_on_id": "7a307a30-7a30-7a30-7a30-7a307a307a30",
               "code": "storage",
               "invoice_display_name": "Storage Allocation",
               "add_on_code": "cloud_storage",
               "created_at": "2026-01-15T10:30:00Z",
               "charge_model": "volume",
               "pay_in_advance": false,
               "prorated": false,
               "properties": {
                  "volume_ranges": [
                     {
                     "from_value": 0,
                     "to_value": 100,
                     "per_unit_amount": "2",
                     "flat_amount": "1"
                     },
                     {
                     "from_value": 101,
                     "to_value": null,
                     "per_unit_amount": "1",
                     "flat_amount": "0"
                     }
                  ]
               },
               "units": 50,
               "lago_parent_id": null,
               "taxes": []
               }
            ],
            "taxes": [
               {
               "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
               "name": "TVA",
               "code": "french_standard_vat",
               "description": "French standard VAT",
               "rate": 20,
               "created_at": "2023-07-06T14:35:58Z"
               }
            ],
            "usage_thresholds": [
               {
               "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
               "threshold_display_name": "Threshold 1",
               "amount_cents": 10000,
               "recurring": true,
               "created_at": "2023-06-27T19:43:42Z",
               "updated_at": "2023-06-27T19:43:42Z"
               }
            ],
            "entitlements": [
               {
               "entitlement": {
                  "code": "seats",
                  "name": "Number of seats",
                  "description": "Number of users of the account",
                  "privileges": [
                     {
                     "code": "max",
                     "name": "Maximum",
                     "value_type": "integer",
                     "config": {},
                     "value": 10
                     },
                     {
                     "code": "max_admins",
                     "name": "Max Admins",
                     "value_type": "integer",
                     "config": {},
                     "value": 5
                     },
                     {
                     "code": "root",
                     "name": "Allow root user",
                     "value_type": "boolean",
                     "config": {},
                     "value": true
                     },
                     {
                     "code": "provider",
                     "name": "SSO Provider",
                     "value_type": "select",
                     "value": "google",
                     "config": {
                        "select_options": ["google", "okta"]
                     }
                     }
                  ]
               }
               }
            ],
            "metadata": {
               "external_id": "ext-123",
               "synced_at": "2024-01-15",
               "source": null
            }
         }
      }'
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## Editing Plans[](#editing-plans "Direct link to heading")

A plan can be fully edited as long as it is not linked to any active subscription.

Once a plan is assigned to a customer, some changes are still allowed. You can still update prices, add or remove charges, and adjust charge settings.
However, core properties become locked, such as: billing interval, advance vs arrears configuration, proration rules.

Some updates may trigger invoice issuance and will impact all subscriptions using the plan.

If a plan is linked to overridden subscriptions, you can choose whether changes should apply to them.
When updating a plan via the API, use `cascade_updates: true` to propagate updates to overridden subscriptions.

To update plans already linked to customers, you must either:

* Remove all active subscriptions, or
* Create a new plan and migrate subscriptions

To update a specific charge, it must be removed and re-added with the new configuration.

## Deleting Plans[](#deleting-plans "Direct link to heading")

Plans can be deleted even if they are linked to active subscriptions.
In that case, deleting the plan will automatically terminate the associated subscriptions and generate the corresponding invoices.
