---
title: "POST /v1/subscription/{handle}/upgrade"
method: POST
path: "/v1/subscription/{handle}/upgrade"
tags: ["subscription"]
---

# POST /v1/subscription/{handle}/upgrade

`POST /v1/subscription/{handle}/upgrade`

## Request

- Base URL: `https://customer-portal-api.frisbii.com`
- URL: `https://customer-portal-api.frisbii.com/v1/subscription/{handle}/upgrade`
- Auth: none declared

Upgrade subscription

## Path parameters

- `handle` string, required

## Request body

- UpgradeSubscription
  - `target_plan_handle` string, required: Handle of the target subscription plan
  - `add_ons` CreateSubscriptionAddOn[]: Add-ons to attach to subscription
    - `handle` string, required: Optional per subscription unique handle for the subscription add-on. If not defined the handle will default to the add-on handle, this means that by default an add-on can only be attached once to each subscription. The handle can be used to link the subscription add-on to an entity like computer serial number or vehicle license plate.
    - `quantity` integer: Optional quantity of the of the add-on for this subscription. Defaults to 1. May only be provided for add-on with type `quantity`.
    - `amount` integer: Optional custom fixed per quantity add-on price. If provided the add-on price billed for each billing period will be overridden by this price. Implicitly defines `fixed_amount` as true. Cannot be provided with `fixed_amount` false.
    - `name` string: Optional name overriding the add-on name. If not defined the add-on name will be used as order line text.
    - `description` string: Optional description overriding the add-on description. If not defined the add-on description will be used.
    - `add_on` string, required: Add-on for subscription add-on
    - `fixed_amount` boolean: Whether the price of the subscription add-on should be fixed to the current price of add-on, or the price should follow the add-on price. Defaults to true. If set to false the price of the add-on will be determined by the add-on price at the time of subscription billing.
    - `amount_incl_vat` boolean: Whether the optional amount is including VAT. Defaults to true.
    - `cost_object` string: Cost object number (Kostenträger-Nr.) used for accounting export
    - `pricing_strategy` 'fixed' | 'flexible' | 'custom': Pricing strategy for the subscription add-on's price. `fixed` snapshots the add-on's pricing at attach time, and it never changes afterwards. `flexible` follows the add-on's live pricing, and `amount` and `pricing` are rejected. `custom` overrides the price with `amount` or `pricing`, one of which is required; both are only accepted when `amount` equals the single per-unit price of the `pricing` curve, otherwise the request is rejected with 422. When omitted, the strategy is `custom` if `amount` or `pricing` is given, otherwise `flexible` if the deprecated `fixed_amount` is false, otherwise `fixed`.
    - `pricing` AddOnPricing: Pricing curve of an add-on or of a subscription add-on, used instead of a flat amount. Any pricing other than a `per_unit` model with a single range requires the `ADVANCED_ADDON_PRICING` entitlement, otherwise the request is rejected with HTTP 403 and error code 209 (`FEATURE_NOT_INCLUDED_IN_PLAN`).
      - `pricing_model` 'per_unit' | 'per_unit_step' | 'per_tier' | 'per_tier_step': Pricing model, applied to the quantity of the add-on: - `per_unit`: all units are charged at the price per unit of the range the quantity falls in. - `per_unit_step`: the units in each range are charged at that range's price per unit, and the charges are summed. - `per_tier`: a flat fee, the price of the range the quantity falls in, is charged regardless of the number of units. - `per_tier_step`: the flat fees of all ranges up to and including the one the quantity falls in are summed. The per-unit models scale with the number of units, the per-tier models charge a flat fee per range. Percentage models are not supported for add-ons. Required when `pricing` is given on an add-on. On a `custom` subscription add-on it defaults to the add-on's pricing model when omitted.
      - `unit_label` string: Label for the unit the add-on is priced in. Ignored while `unit_handle` links a unit. On a `custom` subscription add-on it defaults to the add-on's value when omitted.
      - `unit_handle` string: Handle of the unit of measure the pricing is linked to. While a unit is linked, the response reports the unit's names as `unit_label` and `unit_label_plural`, and the stored `unit_label` is ignored. Rejected for percentage pricing models. On update, `null` removes the link and leaving the field out keeps it.
      - `unit_label_plural` string: Plural name of the linked unit. Response only; left out when no unit is linked.
      - `unit_ranges` UnitRangeDto[]: Unit price ranges, in ascending order. The first range starts at 0, the ranges are contiguous (the `from` of a range is the `to` of the previous range plus 1) and only the last range may be open-ended (`to` not set). `price_per_unit` must not be negative. Required and not empty when `pricing` is given on a subscription add-on.
        - `from` integer, required: From value of the range (incl.). The first range starts at 0, and every following range starts at the `to` of the previous range plus 1.
        - `to` integer: To value of the range (incl.). If not set, the range is open ended, which is only allowed for the last range.
        - `price_per_unit` string, required: Price per unit in the range, a non-negative decimal string with up to 3 decimals. For the per-unit and per-tier pricing models it is an amount in major currency units, so `10.00` is 10 DKK.
  - `remove_add_ons` string[]: Subscription add-on handles to remove from subscription
  - `metered_billing_products` CreateSubscriptionMeteredBillingProduct[]: Metered billing products to attach to subscription
    - `vat` number, float: VAT percentage for the product. Defaults to the account's VAT
    - `metered_billing_product_handle` string, required: Handle of usage-based billing product that will be added to subscription
    - `unbilled_usage` string, required: The strategy for unbilled usage for this usage-based billing product if it was previously added to the subscription.
    - `pricing_strategy` string, required: The pricing strategy for this usage-based billing product. Accepted values: `fixed`, `flexible`, or `custom`. Fixed - the subscription usage-based billing product won't follow any price changes from the base usage-based billing product. Flexible - the subscription usage-based billing product will follow all changes from the base usage-based billing product. Custom - Custom - the subscription usage-based billing product will override the base product's pricing configuration using the provided custom values (e.g. unit ranges, pricing model, VAT, etc.).
    - `cost_object` string: Cost object number (Kostenträger-Nr.) used for accounting export
    - `unit_label` string: Name of the unit
    - `unit_handle` string: Handle of the unit of measure for a custom pricing. Only used with pricing_strategy custom. While a unit is linked, its names are shown as unit_label and unit_label_plural. Not allowed with percentage pricing models.
    - `included_units` integer: Included units for free. Defaults to 0.
    - `minimum_fee` string: Minimum fee for the product. Defaults to 0.
    - `pricing_model` 'per_unit' | 'per_tier' | 'per_unit_step' | 'per_tier_step' | 'percentage' | 'percentage_step': Pricing model for the product.
    - `amount_incl_vat` boolean: Whether the amount is including VAT. Defaults to true.
    - `tax_policy` string: Tax policy handle for the product.
    - `unit_ranges` UnitRangeDto[]: Unit ranges for this product
      - `from` integer, required: From value of the range (incl.). The first range starts at 0, and every following range starts at the `to` of the previous range plus 1.
      - `to` integer: To value of the range (incl.). If not set, the range is open ended, which is only allowed for the last range.
      - `price_per_unit` string, required: Price per unit in the range, a non-negative decimal string with up to 3 decimals. For the per-unit and per-tier pricing models it is an amount in major currency units, so `10.00` is 10 DKK.
    - `invoice_period_source` string: Source used to derive invoice service period for metered invoice lines on this subscription product override. If omitted, product-level configuration is used. RECORD_CREATED is deprecated and will be removed by 2026-08-01.
    - `include_zero_amount` boolean: Override whether a metered usage order line with amount = 0 should be included in the invoice. If omitted, product-level configuration is used.
  - `remove_metered_billing_products` RemoveSubscriptionMeteredBillingProduct[]: Subscription metered billing product handles to remove from subscription
    - `metered_billing_product_handle` string, required: Handle of usage-based billing product that will be removed from the subscription
    - `unbilled_usage` string, required: The strategy for unbilled usage for this usage-based billing product

## Response `200`

Successful operation

- SubscriptionUpgradeResponse
  - `preview` boolean: Whether this is a preview of the upgrade
  - `subscription` CustomerSubscription: Subscription after upgrade
    - `handle` string: Per account unique handle for subscription
    - `plan` string: Subscription plan handle
    - `state` 'active' | 'expired' | 'on_hold' | 'pending': State of the subscription, one of the following: `active`, `expired`, `on_hold` or `pending`.
    - `created` string, date-time: Date when the subscription was created. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `plan_name` string: Subscription plan name
    - `in_trial` boolean: Whether the subscription is in its trial period, or if the subscription will start a trial period at a start date in the future. See `has_started` to determine if the actual trial period has started or not.
    - `is_cancelled` boolean: Whether the subscription has been cancelled. Cancelled subscriptions will expire at the end of the current billing period.
    - `is_withdrawal_eligible` boolean: Whether the customer can currently withdraw from the subscription under the EU statutory right of withdrawal. True when the customer has no VAT ID, the customer's country is an EU member state or not set, and no more than 14 days have passed since the subscription was activated (or started). The subscription state is not taken into account.
    - `next_period_start` string, date-time: Start date and time for the next billing period, and also end date and time for the current billing period. Is also the date and time for next invoice if the subscription is renewing. In ISO-8601 extended offset date-time format.
    - `start_date` string, date-time: Date and time from which the subscription is eligible to schedule invoices. Either from create or from the latest reactivate or subscription change. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `end_date` string, date-time: Fixed end date and time. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `current_period_start` string, date-time: Start date and time for the current billing period. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `first_period_start` string, date-time: Start date and time for the first ever billing period. In ISO-8601 extended offset date-time format.
    - `last_period_start` string, date-time: Start date and time for the previous billing period. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `trial_start` string, date-time: Start date and time of free trial period. In ISO-8601 extended offset date-time format.
    - `trial_end` string, date-time: End date and time of free trial period. In ISO-8601 extended offset date-time format.
    - `cancelled_date` string, date-time: Date when the subscription was cancelled. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `expires` string, date-time: Fixed date when the subscription will expire because of cancellation. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `expired_date` string, date-time: Date when the subscription expired. [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `on_hold_date` string, date-time: Date when the subscription was put on hold. [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `reactivated` string, date-time: Date when the subscription was reactivated from on hold. [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `activated` string, date-time: Date when the subscription was activated. Will only differ from created in a two step prepared -> activated subscription create scenario. In [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601) extended offset date-time format.
    - `active_payment_methods` string[]: List of active payment method ids which are connected to this subscription
  - `previous_plan_handle` string: Previous plan handle before the upgrade
  - `new_plan_handle` string: New plan handle after the upgrade
  - `upgradeable_configuration` UpgradeableConfiguration: Upgradeable configuration used for validation
    - `handle` string, required: Unique handle of the configuration
    - `name` string, required: Name of the configuration
    - `description` string: Optional description of the configuration
    - `state` 'active' | 'deleted', required: State of the configuration
    - `allowed_upgrades` AllowedUpgradePair[], required: List of allowed upgrade pairs
      - `from_upgradeable` UpgradeableRef, required: Target upgradeable reference
        - `type` 'plan', required: Type of upgradeable entity
        - `upgradeable_handle` string, required: Handle of the upgradeable entity
      - `to_upgradeable` UpgradeableRef, required: Target upgradeable reference
        - `type` 'plan', required: Type of upgradeable entity
        - `upgradeable_handle` string, required: Handle of the upgradeable entity
      - `from_plan` Plan: Expanded target plan details (only when type is 'plan' and expand parameter includes 'plans')
        - `name` string, required: Name of the plan
        - `description` string: Description of the plan
        - `vat` number, float: Optional vat for this plan. Account default is used if none given.
        - `amount` integer, required: Amount for the plan in the smallest unit for the account currency
        - `quantity` integer: Optional default quantity of the subscription plan product for new subscriptions. Default is 1.
        - `prepaid` boolean: Subscriptions can either be prepaid where an amount is paid in advance, or the opposite. This setting only relates to handling of pause scenarios.
        - `handle` string, required: Per account unique handle for the subscription plan. Max length 255 with allowable characters [a-zA-Z0-9_.-@].
        - `version` integer, required: Plan version
        - `state` 'active' | 'superseded' | 'deleted', required: State of the subscription plan one of the following: `active`, `superseded`, `deleted`
        - `currency` string, required: Currency for the subscription plan in [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) three letter alpha code
        - `created` string, date-time, required: Date when the subscription plan was created. In ISO-8601 extended offset date-time format.
        - `deleted` string, date-time: Date when the subscription plan was deleted. In ISO-8601 extended offset date-time format.
        - `dunning_plan` string: Dunning plan by handle to use for the subscription plan. Default dunning plan will be used if none given.
        - `tax_policy` string: Optional tax policy handle for this plan. If vat and tax policy is given, vat will be ignored.
        - `renewal_reminder_email_days` integer: Optional renewal reminder email settings. Number of days before next billing to send a reminder email.
        - `trial_reminder_email_days` integer: Optional end of trial reminder email settings. Number of days before end of trial to send a reminder email.
        - `partial_period_handling` 'bill_full' | 'bill_prorated' | 'bill_zero_amount' | 'no_bill': How to handle a potential initial partial billing period for fixed day scheduling. The options are to bill for a full period, bill prorated for the partial period, bill a zero amoumt, or not to consider the period before first fixed day a billing period. The default is to bill prorated. Options: `bill_full`, `bill_prorated`, `bill_zero_amount`, `no_bill`.
        - `include_zero_amount` boolean: Whether to add a zero amount order line to subscription invoices if plan amount is zero or the subscription overrides to zero amount. The default is to not include the line. If no other order lines are present the plan order line will be added.
        - `setup_fee` integer: Optional one-time setup fee billed with the first invoice or as a separate invoice depending on the setting `setup_fee_handling`.
        - `setup_fee_text` string: Optional invoice order text for the setup fee that
        - `setup_fee_handling` string: How the billing of the setup fee should be done. The options are: `first` - include setup fee as order line on the first scheduled invoice. `separate` - create a separate invoice for the setup fee, is appropriate if first invoice is not in conjunction with creation. `separate_conditional` - create a separate invoice for setup fee if the first invoice is not created in conjunction with the creation. Default is `first`.
        - `setup_fee_vat` number, float: Optional VAT for setup fee. Only returns the explicitly configured VAT rate, not the resolved rate from tax policy. Use effective_setup_fee_vat to see what will be used.
        - `setup_fee_tax_policy` string: Optional tax policy handle for setup fee. If both setup_fee_vat and setup_fee_tax_policy are configured, tax policy takes precedence.
        - `setup_fee_amount_incl_vat` boolean: Whether setup fee amount is including VAT. Only returns the explicitly configured value. Use effective_setup_fee_amount_incl_vat to see what will be used.
        - `partial_proration_days` boolean: For fixed day scheduling and prorated partial handling calculate prorated amount using whole days counting start day as a full day, or use by the minute proration calculation from start date time to the next period start. Default is true (whole days).
        - `fixed_trial_days` boolean: When using trial for fixed day scheduling use this setting to control if trial expires at midnight or the trial period is down to the minute. Default is true (trial until start of day). Trial in days can only be true if `partial_proration_days` is also set to true.
        - `minimum_prorated_amount` integer: When using prorated partial handling the prorated amount for plan and add-ons might result in very small amounts. A minimum prorated amount for plan and add-ons can be defined. If the prorated amount is below this minimum the amount will be changed to zero.
        - `account_funding` boolean: Indicates that Account Funding Transaction (AFT) is requested.
        - `cost_object` string: Cost object number (Kostenträger-Nr.) used for accounting export
        - `amount_incl_vat` boolean: Whether the amount is including VAT. Default true.
        - `fixed_count` integer: Fixed number of renewals for subscriptions using this plan. Equals the number of scheduled invoices. Default is no fixed amount of renewals.
        - `fixed_life_time_unit` 'months' | 'days': Time unit use for fixed life time
        - `fixed_life_time_length` integer: Optional fixed life time length for subscriptions using this plan. E.g. 12 months. Subscriptions will cancel after the fixed life time and expire when the active billing cycle ends.
        - `trial_interval_unit` 'months' | 'days': Time unit for free trial period
        - `trial_interval_length` integer: Optional free trial interval length. E.g. 1 monts.
        - `interval_length` integer: The length of intervals. E.g. every second month or every 14 days.
        - `schedule_type` 'manual' | 'daily' | 'weekly_fixedday' | 'month_startdate' | 'month_fixedday' | 'month_lastday', required: Scheduling type, one of the following: `manual`, `daily`, `weekly_fixedday`, `month_startdate`, `month_fixedday`, `month_lastday`. See documentation for descriptions of the different types.
        - `schedule_fixed_day` integer: If a fixed day scheduling type is used a fixed day must be provided. For months the allowed value is 1-28 for weeks it is 1-7
        - `schedule_fixed_hour` integer: Fixed hour (0-23) for monthly and weekly fixed day schedules. If not null, subscription will be scheduled at this hour.
        - `base_month` integer: For fixed month schedule types the base month can be used to control which months are eligible for start of first billing period. The eligible months are calculated as `base_month + k * interval_length` up to 12. E.g. to use quaterly billing in the months jan-apr-jul-oct, `base_month` 1 and `interval_length` 3 can be used. If not defined the first fixed day will be used as start of first billing period.
        - `notice_periods` integer: Optional number of notice periods for a cancel. The subscription will be cancelled for this number of full periods before expiring. Either from the cancellation date, or from the end of the the current period. See `notice_periods_after_current`. The default is to expire at the end of current period (0). A value of 1 (and `notice_periods_after_current` set to true) will for example result in a scenario where the subscription is cancelled until the end of current period, and then for the full subsequent period before expiring.
        - `notice_periods_after_current` boolean: If notice periods is set, this option controls whether the number of full notice periods should start at the end of the current period, or run from cancellation date and result in a partial period with partial amount for the last period. The default is true. E.g. if set to false and `notice_periods = 1` then the subscription will be cancelled for exactly for one period from the cancellation time and a partial amount will be billed at the start of the next billing period.
        - `fixation_periods` integer: Optional number of fixation periods. Fixation periods will guarantee that a subscription will have this number of paid full periods before expiring after a cancel. Default is to have no requirement (0).
        - `fixation_periods_full` boolean: If fixation periods are defined, and the subscription can have a partial prorated first period, this parameter controls if the the last period should be full, or partial to give exactly `fixation_periods` paid periods. Default is false.
        - `entitlements` string[]: List of entitlement handles to be added to the plan
        - `fixation_period_unit_type` 'day' | 'week' | 'month' | 'year': Time unit use in conjunction with fixation periods. If not fulfilled, it falls back to fixed_life_time_unit
        - `notice_period_unit_type` 'day' | 'week' | 'month' | 'year': Time unit used in conjunction with notice periods. If not fulfilled, it falls back to plan schedule_type
        - `contract_period` integer: Optional contract period length. E.g. 12 months.
        - `contract_period_unit_type` 'day' | 'week' | 'month' | 'year': Time unit used for the contract period
        - `contract_period_after_renewal_period` integer: Optional contract period length after renewal. E.g. 6 months.
        - `contract_period_after_renewal_unit_type` 'day' | 'week' | 'month' | 'year': Time unit used for the contract period after renewal
        - `subscription_duration_type` 'auto_renew' | 'fixed_number_of_billing_cycles' | 'end_on_contract_end': Subscription duration type
        - `effective_setup_fee_vat` number, float: Read-only. The effective VAT rate that will be used for setup fee after applying fallback logic. Returns the country-specific rate from setup_fee_tax_policy if set, otherwise returns setup_fee_vat if set, otherwise falls back to plan vat.
        - `effective_setup_fee_amount_incl_vat` boolean: Read-only. Whether the setup fee amount is including VAT after applying fallback logic. Returns setup_fee_amount_incl_vat if set, otherwise falls back to plan amount_incl_vat.
      - `to_plan` Plan: Expanded target plan details (only when type is 'plan' and expand parameter includes 'plans')
        - `name` string, required: Name of the plan
        - `description` string: Description of the plan
        - `vat` number, float: Optional vat for this plan. Account default is used if none given.
        - `amount` integer, required: Amount for the plan in the smallest unit for the account currency
        - `quantity` integer: Optional default quantity of the subscription plan product for new subscriptions. Default is 1.
        - `prepaid` boolean: Subscriptions can either be prepaid where an amount is paid in advance, or the opposite. This setting only relates to handling of pause scenarios.
        - `handle` string, required: Per account unique handle for the subscription plan. Max length 255 with allowable characters [a-zA-Z0-9_.-@].
        - `version` integer, required: Plan version
        - `state` 'active' | 'superseded' | 'deleted', required: State of the subscription plan one of the following: `active`, `superseded`, `deleted`
        - `currency` string, required: Currency for the subscription plan in [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) three letter alpha code
        - `created` string, date-time, required: Date when the subscription plan was created. In ISO-8601 extended offset date-time format.
        - `deleted` string, date-time: Date when the subscription plan was deleted. In ISO-8601 extended offset date-time format.
        - `dunning_plan` string: Dunning plan by handle to use for the subscription plan. Default dunning plan will be used if none given.
        - `tax_policy` string: Optional tax policy handle for this plan. If vat and tax policy is given, vat will be ignored.
        - `renewal_reminder_email_days` integer: Optional renewal reminder email settings. Number of days before next billing to send a reminder email.
        - `trial_reminder_email_days` integer: Optional end of trial reminder email settings. Number of days before end of trial to send a reminder email.
        - `partial_period_handling` 'bill_full' | 'bill_prorated' | 'bill_zero_amount' | 'no_bill': How to handle a potential initial partial billing period for fixed day scheduling. The options are to bill for a full period, bill prorated for the partial period, bill a zero amoumt, or not to consider the period before first fixed day a billing period. The default is to bill prorated. Options: `bill_full`, `bill_prorated`, `bill_zero_amount`, `no_bill`.
        - `include_zero_amount` boolean: Whether to add a zero amount order line to subscription invoices if plan amount is zero or the subscription overrides to zero amount. The default is to not include the line. If no other order lines are present the plan order line will be added.
        - `setup_fee` integer: Optional one-time setup fee billed with the first invoice or as a separate invoice depending on the setting `setup_fee_handling`.
        - `setup_fee_text` string: Optional invoice order text for the setup fee that
        - `setup_fee_handling` string: How the billing of the setup fee should be done. The options are: `first` - include setup fee as order line on the first scheduled invoice. `separate` - create a separate invoice for the setup fee, is appropriate if first invoice is not in conjunction with creation. `separate_conditional` - create a separate invoice for setup fee if the first invoice is not created in conjunction with the creation. Default is `first`.
        - `setup_fee_vat` number, float: Optional VAT for setup fee. Only returns the explicitly configured VAT rate, not the resolved rate from tax policy. Use effective_setup_fee_vat to see what will be used.
        - `setup_fee_tax_policy` string: Optional tax policy handle for setup fee. If both setup_fee_vat and setup_fee_tax_policy are configured, tax policy takes precedence.
        - `setup_fee_amount_incl_vat` boolean: Whether setup fee amount is including VAT. Only returns the explicitly configured value. Use effective_setup_fee_amount_incl_vat to see what will be used.
        - `partial_proration_days` boolean: For fixed day scheduling and prorated partial handling calculate prorated amount using whole days counting start day as a full day, or use by the minute proration calculation from start date time to the next period start. Default is true (whole days).
        - `fixed_trial_days` boolean: When using trial for fixed day scheduling use this setting to control if trial expires at midnight or the trial period is down to the minute. Default is true (trial until start of day). Trial in days can only be true if `partial_proration_days` is also set to true.
        - `minimum_prorated_amount` integer: When using prorated partial handling the prorated amount for plan and add-ons might result in very small amounts. A minimum prorated amount for plan and add-ons can be defined. If the prorated amount is below this minimum the amount will be changed to zero.
        - `account_funding` boolean: Indicates that Account Funding Transaction (AFT) is requested.
        - `cost_object` string: Cost object number (Kostenträger-Nr.) used for accounting export
        - `amount_incl_vat` boolean: Whether the amount is including VAT. Default true.
        - `fixed_count` integer: Fixed number of renewals for subscriptions using this plan. Equals the number of scheduled invoices. Default is no fixed amount of renewals.
        - `fixed_life_time_unit` 'months' | 'days': Time unit use for fixed life time
        - `fixed_life_time_length` integer: Optional fixed life time length for subscriptions using this plan. E.g. 12 months. Subscriptions will cancel after the fixed life time and expire when the active billing cycle ends.
        - `trial_interval_unit` 'months' | 'days': Time unit for free trial period
        - `trial_interval_length` integer: Optional free trial interval length. E.g. 1 monts.
        - `interval_length` integer: The length of intervals. E.g. every second month or every 14 days.
        - `schedule_type` 'manual' | 'daily' | 'weekly_fixedday' | 'month_startdate' | 'month_fixedday' | 'month_lastday', required: Scheduling type, one of the following: `manual`, `daily`, `weekly_fixedday`, `month_startdate`, `month_fixedday`, `month_lastday`. See documentation for descriptions of the different types.
        - `schedule_fixed_day` integer: If a fixed day scheduling type is used a fixed day must be provided. For months the allowed value is 1-28 for weeks it is 1-7
        - `schedule_fixed_hour` integer: Fixed hour (0-23) for monthly and weekly fixed day schedules. If not null, subscription will be scheduled at this hour.
        - `base_month` integer: For fixed month schedule types the base month can be used to control which months are eligible for start of first billing period. The eligible months are calculated as `base_month + k * interval_length` up to 12. E.g. to use quaterly billing in the months jan-apr-jul-oct, `base_month` 1 and `interval_length` 3 can be used. If not defined the first fixed day will be used as start of first billing period.
        - `notice_periods` integer: Optional number of notice periods for a cancel. The subscription will be cancelled for this number of full periods before expiring. Either from the cancellation date, or from the end of the the current period. See `notice_periods_after_current`. The default is to expire at the end of current period (0). A value of 1 (and `notice_periods_after_current` set to true) will for example result in a scenario where the subscription is cancelled until the end of current period, and then for the full subsequent period before expiring.
        - `notice_periods_after_current` boolean: If notice periods is set, this option controls whether the number of full notice periods should start at the end of the current period, or run from cancellation date and result in a partial period with partial amount for the last period. The default is true. E.g. if set to false and `notice_periods = 1` then the subscription will be cancelled for exactly for one period from the cancellation time and a partial amount will be billed at the start of the next billing period.
        - `fixation_periods` integer: Optional number of fixation periods. Fixation periods will guarantee that a subscription will have this number of paid full periods before expiring after a cancel. Default is to have no requirement (0).
        - `fixation_periods_full` boolean: If fixation periods are defined, and the subscription can have a partial prorated first period, this parameter controls if the the last period should be full, or partial to give exactly `fixation_periods` paid periods. Default is false.
        - `entitlements` string[]: List of entitlement handles to be added to the plan
        - `fixation_period_unit_type` 'day' | 'week' | 'month' | 'year': Time unit use in conjunction with fixation periods. If not fulfilled, it falls back to fixed_life_time_unit
        - `notice_period_unit_type` 'day' | 'week' | 'month' | 'year': Time unit used in conjunction with notice periods. If not fulfilled, it falls back to plan schedule_type
        - `contract_period` integer: Optional contract period length. E.g. 12 months.
        - `contract_period_unit_type` 'day' | 'week' | 'month' | 'year': Time unit used for the contract period
        - `contract_period_after_renewal_period` integer: Optional contract period length after renewal. E.g. 6 months.
        - `contract_period_after_renewal_unit_type` 'day' | 'week' | 'month' | 'year': Time unit used for the contract period after renewal
        - `subscription_duration_type` 'auto_renew' | 'fixed_number_of_billing_cycles' | 'end_on_contract_end': Subscription duration type
        - `effective_setup_fee_vat` number, float: Read-only. The effective VAT rate that will be used for setup fee after applying fallback logic. Returns the country-specific rate from setup_fee_tax_policy if set, otherwise returns setup_fee_vat if set, otherwise falls back to plan vat.
        - `effective_setup_fee_amount_incl_vat` boolean: Read-only. Whether the setup fee amount is including VAT after applying fallback logic. Returns setup_fee_amount_incl_vat if set, otherwise falls back to plan amount_incl_vat.
      - `created_at` string, date-time: Date when the upgrade pair was created
      - `self_upgrade_allowed` boolean: Indicates if self-upgrade is allowed for this pair. Default is true.
    - `created_at` string, date-time, required: Date when the configuration was created
    - `updated_at` string, date-time: Date when the configuration was last updated
    - `deleted_at` string, date-time: Date when the configuration was deleted (only present if state is 'deleted')
    - `is_transitive` true | false: Set whether transitive upgrades are allowed. A transitive upgrade may skip one or more plans during the upgrade.For example, a transitive upgrade could go from plan A to plan D directly without requiring upgrading to plan B or C first.
    - `max_downgrade_steps` integer: Maximum allowed steps per downgrade
    - `downgrade_cooldown_seconds` integer: Minimum seconds that have to pass since the last upgrade before a downgrade is allowed

## Other responses

- `400`: Invalid request, see error codes at https://api.frisbii.com/v1/error_codes
- `401`: None or invalid credentials provided in access to secured resource
- `403`: Not authorized to perform resource operation
- `404`: Resource or referenced resource not found, see error codes at https://api.frisbii.com/v1/error_codes
- `429`: Request limiting exceeded, request rate or concurrent requests, see error code 122 and 123
- `500`: Internal service error, error is reported automatically to Frisbii

---

[API](https://skmtc.dev/frisbii/apis/frisbii-customer-portal-api.md) - [All operations](https://skmtc.dev/frisbii/apis/frisbii-customer-portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/frisbii/apis/frisbii-customer-portal-api/revisions/f0261fb63b1b?raw)
