# Addons

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


Addons are additional charges applied to a subscription apart from the base plan charge. The addons can be recurring or non-recurring. A recurring addon included in a subscription is charged as per billing frequency of subscription. A non-recurring addon included in subscription will be charged immediately and only once. And a non-recurring addon is NOT pro-rated based on billing cycle, whereas a recurring addon is automatically pro-rated based on billing cycle.

## Sample Addon

```json
{
  "charge_type": "recurring",
  "enabled_in_portal": true,
  "id": "sms_pack",
  "invoice_name": "sample data pack",
  "name": "Sms Pack",
  "object": "addon",
  "period": 1,
  "period_unit": "month",
  "price": 200,
  "status": "active",
  "taxable": true,
  "type": "on_off"
}
```

## Addons attributes

## Input Parameters

- `id` (required, string, max chars=100)
  A unique ID for your system to identify the addon.

- `name` (required, string, max chars=100)
  The display name used in web interface for identifying the addon.

- `invoice_name` (optional, string, max chars=100)
  Display name used in invoice. If it is not configured then name is used in invoice.

- `description` (optional, string, max chars=2000)
  Description about the addon to show in the hosted pages & customer portal. This description will not be shown if multiple addons are added.

- `type` (required, enumerated string)
  Select "On-Off" to charge a flat fee or "Quantity" for unit based charges.
  Possible enum values:
    - `on_off`
      Addon that does not have any quantity associated and can only be enabled or disabled. Example: On call support at $99 per month.
    - `quantity`
      Charges this price for every unit of the addon. Example: 2 additional support agents at $10 each

- `charge_type` (required, enumerated string, default=recurring)
  Type of charge
  Possible enum values:
    - `recurring`
      Charges are automatically applied in sync with the billing frequency of subscription.
    - `non_recurring`
      Charged immediately and only once every time it is applied.

- `price` (optional, in cents, min=0)
  Addon price is calculated based on the addon type and charge type. [Learn more](https://www.chargebee.com/docs/addons.html#charge-type-and-pricing). The unit depends on the [type of currency](/docs/api/getting-started) .

- `period` (optional, integer, min=1)
  Applicable only for recurring-addons. Along with 'period\_unit' decides the term-price of this addon.

- `period_unit` (required, enumerated string)
  Applicable only for recurring-addons. Along with 'period' decides the term-price of this addon
  Possible enum values:
    - `day`
      Charge based on Day(S)
    - `week`
      Charge based on week(s)
    - `month`
      Charge based on month(s)
    - `year`
      Charge based on year(s)
    - `not_applicable`
      not applicable for this addon

- `unit` (optional, string, max chars=30)
  Specifies the type of quantity. For example, if the addon price is $10 and 'agent' is the unit of measure, the addon will be $10/agent. Applicable only for quantity type addons.

- `status` (required, enumerated string, default=active)
  Status of the addon
  Possible enum values:
    - `active`
      Only active addons can be applied to subscriptions
    - `archived`
      No new associations with subscriptions are allowed. Existing associations for recurring addons remain as-is and can be removed if required.
    - `deleted`
      Indicates the addon has been deleted.

- `archived_at` (optional, timestamp(UTC) in seconds)
  Time at which the plan was moved to archived status.

- `enabled_in_portal` (required, boolean, default=true)
  If enabled, customers can select this addon using the 'Change Subscription' option in the customer portal.

- `proration_type` (optional, enumerated string, default=site_default)
  Configuration for proration of charges and credits when the addon is used in a subscription.
  Possible enum values:
    - `site_default`
      Updating a subscription will apply the site-level default settings.
    - `partial_term`
      Updating a subscription will apply proration to charges or credits for this addon.
    - `full_term`
      Updating a subscription will apply full charges or full credits for this addon.

- `invoice_notes` (optional, string, max chars=2000)
  A customer-facing note added to all invoices associated with this API resource. This note becomes one among [all the notes](/docs/api/invoices/invoice-object#notes) displayed on the invoice PDF.

- `taxable` (optional, boolean, default=true)
  Specifies if the addon should be taxed or not

- `meta_data` (optional, jsonobject)
  A set of key-value pairs stored as additional information for the addon. [Learn more](/docs/api/v1/addons) .

