---
title: "Update a addon"
method: PATCH
path: "/api/v1/addons/{id}"
tags: ["Addons"]
---

# Update a addon

`PATCH /api/v1/addons/{id}`

Updates an existing addon's properties such as display name, description, and metadata.

## Path parameters

- `id` string, required

## Headers

- `X-ACCOUNT-ID` string
- `X-ENVIRONMENT-ID` string

## Request body

- UpdateAddonRequestDto — Partially update an existing addon. Only provided fields are updated.
  - `displayName` string — The display name of the package
  - `description` string, nullable — The description of the package
  - `billingId` string, nullable — The unique identifier for the entity in the billing provider
  - `metadata` object — Metadata associated with the entity
  - `status` 'DRAFT' | 'PUBLISHED' | 'ARCHIVED' — The status of the package
  - `maxQuantity` integer, nullable — The maximum quantity of this addon that can be added to a subscription
  - `dependencies` string[], nullable — List of addons the addon is dependant on
  - `charges` object — Pricing configuration to set on the addon draft
    - `pricingType` 'FREE' | 'PAID' | 'CUSTOM', required — The pricing type (FREE, PAID, or CUSTOM)
    - `pricingModels` object[] — Array of pricing model configurations
      - `billingModel` 'FLAT_FEE' | 'MINIMUM_SPEND' | 'PER_UNIT' | 'USAGE_BASED' | 'CREDIT_BASED', required — The billing model (FLAT_FEE, PER_UNIT, USAGE_BASED, CREDIT_BASED)
      - `billingCadence` 'RECURRING' | 'ONE_OFF' — The billing cadence (RECURRING or ONE_OFF)
      - `featureId` string — The feature ID this pricing model is associated with
      - `topUpCustomCurrencyId` string — The custom currency ID for top-up pricing
      - `tiersMode` 'VOLUME' | 'GRADUATED' — The tiered pricing mode (VOLUME or GRADUATED)
      - `minUnitQuantity` integer — Minimum number of units
      - `maxUnitQuantity` integer — Maximum number of units (max 999999)
      - `resetPeriod` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' — The usage reset period
      - `yearlyResetPeriodConfiguration` object — Yearly reset period configuration
        - `accordingTo` 'SubscriptionStart', required — Reset anchor (SubscriptionStart)
      - `monthlyResetPeriodConfiguration` object — Monthly reset period configuration
        - `accordingTo` 'SubscriptionStart' | 'StartOfTheMonth', required — Reset anchor (SubscriptionStart or StartOfTheMonth)
      - `weeklyResetPeriodConfiguration` object — Weekly reset period configuration
        - `accordingTo` 'SubscriptionStart' | 'EverySunday' | 'EveryMonday' | 'EveryTuesday' | 'EveryWednesday' | 'EveryThursday' | 'EveryFriday' | 'EverySaturday', required — Reset anchor (SubscriptionStart or specific day)
      - `pricePeriods` object[], required — Array of price period configurations (at least one required)
        - `billingPeriod` 'MONTHLY' | 'ANNUALLY', required — The billing period (MONTHLY or ANNUALLY)
        - `billingCountryCode` string — ISO country code for localized pricing
        - `price` object — The price amount and currency
          - `amount` number, required — The price amount
          - `currency` 'usd' | 'aed' | 'all' | 'amd' | 'ang' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bgn' | 'bif' | 'bmd' | 'bnd' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'brl' | 'cad' | 'cdf' | 'chf' | 'cny' | 'czk' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gyd' | 'hkd' | 'hrk' | 'htg' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nok' | 'npr' | 'nzd' | 'pgk' | 'php' | 'pkr' | 'pln' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'sle' | 'sll' | 'sos' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'tzs' | 'uah' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'yer' | 'zar' | 'zmw' | 'clp' | 'djf' | 'gnf' | 'ugx' | 'pyg' | 'xof' | 'xpf' — The price currency
        - `creditRate` object — Credit rate configuration for credit-based pricing
          - `amount` number, required — The credit rate amount
          - `currencyId` string, required — The custom currency ID
          - `costFormula` string — Optional cost formula expression
        - `blockSize` number — Block size for usage-based pricing
        - `tiers` object[] — Tiered pricing configuration
          - `upTo` number — Upper bound of this tier (null for unlimited)
          - `unitPrice` object — Per-unit price in this tier
            - `amount` number, required — The price amount
            - `currency` 'usd' | 'aed' | 'all' | 'amd' | 'ang' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bgn' | 'bif' | 'bmd' | 'bnd' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'brl' | 'cad' | 'cdf' | 'chf' | 'cny' | 'czk' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gyd' | 'hkd' | 'hrk' | 'htg' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nok' | 'npr' | 'nzd' | 'pgk' | 'php' | 'pkr' | 'pln' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'sle' | 'sll' | 'sos' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'tzs' | 'uah' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'yer' | 'zar' | 'zmw' | 'clp' | 'djf' | 'gnf' | 'ugx' | 'pyg' | 'xof' | 'xpf' — The price currency
          - `flatPrice` object — Flat price for this tier
            - `amount` number, required — The price amount
            - `currency` 'usd' | 'aed' | 'all' | 'amd' | 'ang' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bgn' | 'bif' | 'bmd' | 'bnd' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'brl' | 'cad' | 'cdf' | 'chf' | 'cny' | 'czk' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gyd' | 'hkd' | 'hrk' | 'htg' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nok' | 'npr' | 'nzd' | 'pgk' | 'php' | 'pkr' | 'pln' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'sle' | 'sll' | 'sos' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'tzs' | 'uah' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'yer' | 'zar' | 'zmw' | 'clp' | 'djf' | 'gnf' | 'ugx' | 'pyg' | 'xof' | 'xpf' — The price currency
        - `creditGrantCadence` 'BEGINNING_OF_BILLING_PERIOD' | 'MONTHLY' — When credits are granted
    - `overagePricingModels` object[] — Array of overage pricing model configurations
      - `billingModel` 'FLAT_FEE' | 'MINIMUM_SPEND' | 'PER_UNIT' | 'USAGE_BASED' | 'CREDIT_BASED', required — The billing model for overages
      - `billingCadence` 'RECURRING' | 'ONE_OFF' — The billing cadence for overages
      - `featureId` string — The feature ID for overage pricing
      - `currencyId` string — The refId of the custom currency this credit overage applies to
      - `pricePeriods` object[], required — Price periods for overage pricing
        - `billingPeriod` 'MONTHLY' | 'ANNUALLY', required — The billing period (MONTHLY or ANNUALLY)
        - `billingCountryCode` string — ISO country code for localized pricing
        - `price` object — The price amount and currency
          - `amount` number, required — The price amount
          - `currency` 'usd' | 'aed' | 'all' | 'amd' | 'ang' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bgn' | 'bif' | 'bmd' | 'bnd' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'brl' | 'cad' | 'cdf' | 'chf' | 'cny' | 'czk' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gyd' | 'hkd' | 'hrk' | 'htg' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nok' | 'npr' | 'nzd' | 'pgk' | 'php' | 'pkr' | 'pln' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'sle' | 'sll' | 'sos' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'tzs' | 'uah' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'yer' | 'zar' | 'zmw' | 'clp' | 'djf' | 'gnf' | 'ugx' | 'pyg' | 'xof' | 'xpf' — The price currency
        - `creditRate` object — Credit rate configuration for credit-based pricing
          - `amount` number, required — The credit rate amount
          - `currencyId` string, required — The custom currency ID
          - `costFormula` string — Optional cost formula expression
        - `blockSize` number — Block size for usage-based pricing
        - `tiers` object[] — Tiered pricing configuration
          - `upTo` number — Upper bound of this tier (null for unlimited)
          - `unitPrice` object — Per-unit price in this tier
            - `amount` number, required — The price amount
            - `currency` 'usd' | 'aed' | 'all' | 'amd' | 'ang' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bgn' | 'bif' | 'bmd' | 'bnd' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'brl' | 'cad' | 'cdf' | 'chf' | 'cny' | 'czk' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gyd' | 'hkd' | 'hrk' | 'htg' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nok' | 'npr' | 'nzd' | 'pgk' | 'php' | 'pkr' | 'pln' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'sle' | 'sll' | 'sos' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'tzs' | 'uah' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'yer' | 'zar' | 'zmw' | 'clp' | 'djf' | 'gnf' | 'ugx' | 'pyg' | 'xof' | 'xpf' — The price currency
          - `flatPrice` object — Flat price for this tier
            - `amount` number, required — The price amount
            - `currency` 'usd' | 'aed' | 'all' | 'amd' | 'ang' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bgn' | 'bif' | 'bmd' | 'bnd' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'brl' | 'cad' | 'cdf' | 'chf' | 'cny' | 'czk' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gyd' | 'hkd' | 'hrk' | 'htg' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nok' | 'npr' | 'nzd' | 'pgk' | 'php' | 'pkr' | 'pln' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'sle' | 'sll' | 'sos' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'tzs' | 'uah' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'yer' | 'zar' | 'zmw' | 'clp' | 'djf' | 'gnf' | 'ugx' | 'pyg' | 'xof' | 'xpf' — The price currency
        - `creditGrantCadence` 'BEGINNING_OF_BILLING_PERIOD' | 'MONTHLY' — When credits are granted
      - `entitlement` object — Entitlement configuration for the overage feature
        - `featureId` string, required — The feature ID for the entitlement
        - `usageLimit` number — The usage limit before overage kicks in
        - `hasUnlimitedUsage` boolean — Whether usage is unlimited
        - `hasSoftLimit` boolean — Whether the limit is soft (allows overage)
        - `resetPeriod` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' — The usage reset period
        - `yearlyResetPeriodConfiguration` object — Yearly reset configuration
          - `accordingTo` 'SubscriptionStart', required — Reset anchor (SubscriptionStart)
        - `monthlyResetPeriodConfiguration` object — Monthly reset configuration
          - `accordingTo` 'SubscriptionStart' | 'StartOfTheMonth', required — Reset anchor (SubscriptionStart or StartOfTheMonth)
        - `weeklyResetPeriodConfiguration` object — Weekly reset configuration
          - `accordingTo` 'SubscriptionStart' | 'EverySunday' | 'EveryMonday' | 'EveryTuesday' | 'EveryWednesday' | 'EveryThursday' | 'EveryFriday' | 'EverySaturday', required — Reset anchor (SubscriptionStart or specific day)
      - `creditEntitlement` object — Credit entitlement to grant when a credit overage targets a currency not yet granted on the plan
        - `customCurrencyId` string, required — The refId of the custom currency to grant
        - `amount` number, required — The base credit balance granted per cadence
        - `cadence` 'MONTH' | 'YEAR', required — The credit grant cadence (MONTH or YEAR)
    - `overageBillingPeriod` 'ON_SUBSCRIPTION_RENEWAL' | 'MONTHLY' — When overage charges are billed
    - `minimumSpend` object[], nullable — Minimum spend configuration per billing period
      - `billingPeriod` 'MONTHLY' | 'ANNUALLY', required — The billing period
      - `minimum` object, required — The minimum spend amount
        - `amount` number, required — The price amount
        - `currency` 'usd' | 'aed' | 'all' | 'amd' | 'ang' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bgn' | 'bif' | 'bmd' | 'bnd' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'brl' | 'cad' | 'cdf' | 'chf' | 'cny' | 'czk' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gyd' | 'hkd' | 'hrk' | 'htg' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nok' | 'npr' | 'nzd' | 'pgk' | 'php' | 'pkr' | 'pln' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'sle' | 'sll' | 'sos' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'tzs' | 'uah' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'yer' | 'zar' | 'zmw' | 'clp' | 'djf' | 'gnf' | 'ugx' | 'pyg' | 'xof' | 'xpf' — The price currency
    - `billingId` string — Deprecated: billing integration ID

## Response `200`

The updated addon object.

- AddonResponseDto — Response object
  - `data` object, required — Addon configuration object
    - `id` string, required — The unique identifier for the entity
    - `displayName` string, required — The display name of the package
    - `description` string, nullable, required — The description of the package
    - `productId` string, required — The product id of the package
    - `status` 'DRAFT' | 'PUBLISHED' | 'ARCHIVED', required — The status of the package
    - `pricingType` 'FREE' | 'PAID' | 'CUSTOM', nullable, required — The pricing type of the package
    - `billingId` string, nullable, required — The unique identifier for the entity in the billing provider
    - `versionNumber` integer, required — The version number of the package
    - `isLatest` boolean, nullable, required — Indicates if the package is the latest version
    - `entitlements` object[], required — List of entitlements of the package
      - `type` 'FEATURE' | 'CREDIT', required
      - `id` string, required — The unique identifier for the entity
    - `metadata` object, required — Metadata associated with the entity
    - `createdAt` string, date-time, required — Timestamp of when the record was created
    - `updatedAt` string, date-time, required — Timestamp of when the record was last updated
    - `maxQuantity` integer, nullable, required — The maximum quantity of this addon that can be added to a subscription
    - `dependencies` string[], nullable, required — List of addons the addon is dependant on

## Other responses

- `400` — bad request.
- `401` — User is not authenticated.
- `403` — User is not allowed to access this resource.
- `404` — Addon not found.
- `429` — Too many requests.

---

[API](https://skmtc.net/stiggio/apis/stigg-api.md) · [All operations](https://skmtc.net/stiggio/apis/stigg-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stiggio/stigg-api/versions/ffc977f1c07e/schema)
