subscription

POST /v1/subscription/{handle}/upgrade

Upgrade subscription

Request

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

Path parameters

handlestring required

Subscription handle

Request body

target_plan_handlestring required

Handle of the target subscription plan

remove_add_onsstring[]

Subscription add-on handles to remove from subscription

Example request

{
  "add_ons": [
    {
      "handle": "sub002_addon001",
      "quantity": 3,
      "amount": 20000,
      "name": "Extra storage with special price",
      "description": "Special price given to vip customer",
      "add_on": "addon_001",
      "fixed_amount": true,
      "cost_object": "KT-4711",
      "pricing_strategy": "fixed",
      "pricing": {
        "pricing_model": "per_unit",
        "unit_label": "seats",
        "unit_handle": "seat",
        "unit_label_plural": "seats",
        "unit_ranges": [
          {
            "to": 100,
            "price_per_unit": "10.0"
          }
        ]
      }
    }
  ],
  "metered_billing_products": [
    {
      "vat": 0.25,
      "metered_billing_product_handle": "storage",
      "cost_object": "KT-4711",
      "unit_label": "API Calls",
      "unit_handle": "gb",
      "included_units": 10,
      "minimum_fee": "100",
      "pricing_model": "per_unit",
      "amount_incl_vat": true,
      "tax_policy": "tp_handle",
      "unit_ranges": [
        {
          "to": 100,
          "price_per_unit": "10.0"
        }
      ]
    }
  ],
  "remove_metered_billing_products": [
    {
      "metered_billing_product_handle": "storage"
    }
  ]
}

Response

Successful operation

previewboolean

Whether this is a preview of the upgrade

previous_plan_handlestring

Previous plan handle before the upgrade

new_plan_handlestring

New plan handle after the upgrade

Example response

{
  "subscription": {
    "handle": "sub000219",
    "plan": "plan0033",
    "state": "active",
    "created": "2015-02-04T12:40:56.656Z",
    "plan_name": "Fitness",
    "next_period_start": "2015-05-14T08:12:19.558Z"
  },
  "upgradeable_configuration": {
    "handle": "config_001",
    "name": "Default Upgrade Rules",
    "description": "Standard upgrades available to most customers",
    "state": "active",
    "allowed_upgrades": [
      {
        "from_upgradeable": {
          "type": "plan",
          "upgradeable_handle": "plan_basic_monthly"
        },
        "to_upgradeable": {
          "type": "plan",
          "upgradeable_handle": "plan_basic_monthly"
        },
        "from_plan": {
          "name": "Fitness",
          "description": "Fitness 149/month subscription",
          "vat": 0.25,
          "amount": 25000,
          "quantity": 3,
          "prepaid": true,
          "handle": "plan02",
          "version": 1,
          "state": "active",
          "currency": "DKK",
          "dunning_plan": "dunning_plan_02",
          "tax_policy": "default_tax_policy_handle",
          "renewal_reminder_email_days": 7,
          "trial_reminder_email_days": 7,
          "partial_period_handling": "bill_prorated",
          "include_zero_amount": true,
          "setup_fee": 10000,
          "setup_fee_text": "Subscription setup fee",
          "setup_fee_handling": "first",
          "setup_fee_vat": 0.2,
          "setup_fee_tax_policy": "setup_fee_tax_policy_handle",
          "setup_fee_amount_incl_vat": true,
          "partial_proration_days": true,
          "fixed_trial_days": true,
          "minimum_prorated_amount": 100,
          "account_funding": true,
          "cost_object": "KT-4711",
          "amount_incl_vat": true,
          "fixed_count": 12,
          "fixed_life_time_unit": "months",
          "fixed_life_time_length": 12,
          "trial_interval_unit": "months",
          "trial_interval_length": 1,
          "interval_length": 12,
          "schedule_type": "month_startdate",
          "schedule_fixed_day": 12,
          "base_month": 1,
          "notice_periods": 1,
          "fixation_periods": 3,
          "fixation_period_unit_type": "month",
          "notice_period_unit_type": "month",
          "contract_period": 12,
          "contract_period_unit_type": "month",
          "contract_period_after_renewal_period": 6,
          "contract_period_after_renewal_unit_type": "month",
          "subscription_duration_type": "auto_renew",
          "effective_setup_fee_vat": 0.25,
          "effective_setup_fee_amount_incl_vat": true
        },
        "to_plan": {
          "name": "Fitness",
          "description": "Fitness 149/month subscription",
          "vat": 0.25,
          "amount": 25000,
          "quantity": 3,
          "prepaid": true,
          "handle": "plan02",
          "version": 1,
          "state": "active",
          "currency": "DKK",
          "dunning_plan": "dunning_plan_02",
          "tax_policy": "default_tax_policy_handle",
          "renewal_reminder_email_days": 7,
          "trial_reminder_email_days": 7,
          "partial_period_handling": "bill_prorated",
          "include_zero_amount": true,
          "setup_fee": 10000,
          "setup_fee_text": "Subscription setup fee",
          "setup_fee_handling": "first",
          "setup_fee_vat": 0.2,
          "setup_fee_tax_policy": "setup_fee_tax_policy_handle",
          "setup_fee_amount_incl_vat": true,
          "partial_proration_days": true,
          "fixed_trial_days": true,
          "minimum_prorated_amount": 100,
          "account_funding": true,
          "cost_object": "KT-4711",
          "amount_incl_vat": true,
          "fixed_count": 12,
          "fixed_life_time_unit": "months",
          "fixed_life_time_length": 12,
          "trial_interval_unit": "months",
          "trial_interval_length": 1,
          "interval_length": 12,
          "schedule_type": "month_startdate",
          "schedule_fixed_day": 12,
          "base_month": 1,
          "notice_periods": 1,
          "fixation_periods": 3,
          "fixation_period_unit_type": "month",
          "notice_period_unit_type": "month",
          "contract_period": 12,
          "contract_period_unit_type": "month",
          "contract_period_after_renewal_period": 6,
          "contract_period_after_renewal_unit_type": "month",
          "subscription_duration_type": "auto_renew",
          "effective_setup_fee_vat": 0.25,
          "effective_setup_fee_amount_incl_vat": true
        },
        "created_at": "2025-08-22T09:45:12Z",
        "self_upgrade_allowed": true
      }
    ],
    "created_at": "2025-08-22T09:45:12Z",
    "updated_at": "2025-08-22T10:15:30Z",
    "deleted_at": "2025-08-22T10:05:03Z",
    "is_transitive": true,
    "max_downgrade_steps": 2,
    "downgrade_cooldown_seconds": 3600
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.