---
title: "Preview manage plan"
method: POST
path: "/manage-plan/preview"
tags: ["checkout"]
---

# Preview manage plan

`POST /manage-plan/preview`

## Request body

- ManagePlanRequest
  - `add_on_selections` PlanSelection[], required
    - `plan_id` string, required
    - `price_id` string, nullable
    - `version_id` string, nullable
  - `base_plan_id` string, nullable
  - `base_plan_price_id` string, nullable
  - `base_plan_version_id` string, nullable
  - `billing_entity_id` string, nullable — The company that pays for this subscription. Must already have a Stripe customer. Only honored when starting a new subscription.
  - `cancel_immediately` boolean, nullable — If false, subscription cancels at period end. Only applies when removing all plans. Defaults to true.
  - `company_id` string, required
  - `coupon_external_id` string, nullable
  - `credit_bundles` UpdateCreditBundleRequestBody[], required
    - `bundle_id` string, required
    - `quantity` integer, required
  - `custom_field_values` CheckoutFieldValue[], required
    - `id` string, required
    - `value` string, required
  - `pay_in_advance_entitlements` UpdatePayInAdvanceRequestBody[], required
    - `price_id` string, required
    - `quantity` integer, required
  - `payment_method_external_id` string, nullable
  - `promo_code` string, nullable
  - `prorate` boolean, nullable — If true and cancel_immediately is true, issue prorated credit. Only applies when removing all plans. Defaults to true.
  - `trial_end` string, date-time, nullable

## Response `200`

OK

- object
  - `data` ManagePlanPreviewResponseResponseData, required
    - `subscription_change_preview` PreviewSubscriptionChangeResponseData
      - `amount_off` integer, required
      - `due_now` integer, required
      - `finance` PreviewSubscriptionFinanceResponseData
        - `amount_off` integer, required
        - `discounts` PreviewSubscriptionDiscountResponseData[], required
          - `amount_off` integer, nullable
          - `coupon_name` string, required
          - `currency` string, nullable
          - `customer_facing_code` string, nullable
          - `duration` string, required
          - `duration_in_months` integer, nullable
          - `ended_at` string, date-time, nullable
          - `is_active` boolean, required
          - `percent_off` number, double, nullable
          - `promo_code_external_id` string, nullable
          - `started_at` string, date-time, required
        - `due_now` integer, required
        - `new_charges` integer, required
        - `percent_off` number, double, required
        - `period_end` string, date-time, required
        - `period_start` string, date-time, required
        - `promo_code_applied` boolean, required
        - `proration` integer, required
        - `tax_amount` integer, nullable
        - `tax_display_name` string, nullable
        - `tax_require_billing_details` boolean, required
        - `total_per_billing_period` integer, required
        - `trial_end` string, date-time, nullable
        - `upcoming_invoice_line_items` PreviewSubscriptionUpcomingInvoiceLineItems[], required
          - `amount` integer, required
          - `description` string, required
          - `price_id` string, required
          - `proration` boolean, required
          - `quantity` integer, required
      - `is_scheduled_downgrade` boolean, required
      - `new_charges` integer, required
      - `opt_in_required` boolean, required
      - `opt_in_text` string, nullable
      - `opt_in_title` string, nullable
      - `payment_method_required` boolean, required
      - `percent_off` number, double, required
      - `period_start` string, date-time, required
      - `promo_code_applied` boolean, required
      - `proration` integer, required
      - `scheduled_change_time` string, date-time, nullable
      - `trial_end` string, date-time, nullable
      - `usage_violations` FeatureUsageResponseData[], required
        - `access` boolean, required — Whether further usage is permitted.
        - `allocation` integer, nullable — The maximum amount of usage that is permitted; a null value indicates that unlimited usage is permitted or that this is a credit-based entitlement (use credit_remaining instead).
        - `allocation_type` 'boolean' | 'credit' | 'numeric' | 'trait' | 'unknown' | 'unlimited', required
        - `company_override` CompanyOverrideResponseData
          - `company` CompanyDetailResponseData
            - `add_ons` CompanyPlanWithBillingSubView[], required
              - …
            - `billing_credit_balances` object, nullable
            - `billing_subscription` BillingSubscriptionView
              - …
            - `billing_subscriptions` BillingSubscriptionView[], required
              - …
            - `created_at` string, date-time, required
            - `custom_plan_billings` CustomPlanBillingResponseData[], required
              - …
            - `default_payment_method` PaymentMethodResponseData
              - …
            - `entitlements` FeatureEntitlement[], required
              - …
            - `entity_traits` EntityTraitDetailResponseData[], required
              - …
            - `environment_id` string, required
            - `id` string, required
            - `keys` EntityKeyDetailResponseData[], required
              - …
            - `last_seen_at` string, date-time, nullable
            - `logo_url` string, nullable
            - `metrics` CompanyEventPeriodMetricsResponseData[], required
              - …
            - `name` string, required
            - `payment_methods` PaymentMethodResponseData[], required
              - …
            - `plan` CompanyPlanWithBillingSubView
              - …
            - `plans` GenericPreviewObject[], required
              - …
            - `rules` Rule[], required
              - …
            - `scheduled_downgrade` ScheduledDowngradeResponseData
              - …
            - `traits` object — A map of trait names to trait values
            - `updated_at` string, date-time, required
            - `user_count` integer, required
          - `company_id` string, required
          - `consumption_rate` number, double, nullable
          - `created_at` string, date-time, required
          - `environment_id` string, required
          - `expiration_date` string, date-time, nullable
          - `feature` FeatureResponseData
            - `created_at` string, date-time, required
            - `description` string, required
            - `event_subtype` string, nullable
            - `feature_type` 'boolean' | 'event' | 'license' | 'trait', required
            - `icon` string, required
            - `id` string, required
            - `license_id` string, nullable — The license sold through this feature. Set only on features of type license, and created automatically with them.
            - `lifecycle_phase` 'add_on' | 'alpha' | 'beta' | 'deprecated' | 'ga' | 'inactive' | 'in_plan' | 'internal_testing' | 'legacy'
            - `maintainer_account_member_id` string, nullable
            - `name` string, required
            - `plural_name` string, nullable
            - `singular_name` string, nullable
            - `trait_id` string, nullable
            - `updated_at` string, date-time, required
            - `usage_limit_trait_id` string, nullable — Set when the feature carries a pay-in-advance quantity. Provisioned lazily for other feature types, and at creation for license features.
          - `feature_id` string, required
          - `id` string, required
          - `metric_period` 'all_time' | 'current_day' | 'current_month' | 'current_week'
          - `metric_period_month_reset` 'billing_cycle' | 'first_of_month'
          - `notes` CompanyOverrideNoteResponseData[], required
            - `created_at` string, date-time, required
            - `external_user_id` string, required
            - `external_user_name` string, required
            - `id` string, required
            - `note` string, required
            - `updated_at` string, date-time, required
          - `rule_id` string, nullable
          - `rule_id_usage_exceeded` string, nullable
          - `updated_at` string, date-time, required
          - `value_bool` boolean, nullable
          - `value_numeric` integer, nullable
          - `value_trait` EntityTraitDefinitionResponseData
            - `created_at` string, date-time, required
            - `display_name` string, required
            - `entity_type` 'company' | 'user', required
            - `hierarchy` string[], required
            - `id` string, required
            - `trait_type` 'boolean' | 'currency' | 'date' | 'number' | 'string' | 'url', required
            - `updated_at` string, date-time, required
          - `value_trait_id` string, nullable
          - `value_type` 'boolean' | 'credit' | 'numeric' | 'trait' | 'unknown' | 'unlimited', required
        - `credit_consumption_rate` number, double, nullable — The rate at which credits are consumed per unit of usage
        - `credit_grant_counts` object
        - `credit_grant_details` CreditGrantDetail[]
          - `credit_type_icon` string, nullable
          - `expires_at` string, date-time, nullable
          - `grant_reason` 'adjustment' | 'billing_credit_auto_topup' | 'free' | 'plan' | 'purchased' | 'rollover', required
          - `quantity` number, double, required
        - `credit_grant_reason` 'adjustment' | 'billing_credit_auto_topup' | 'free' | 'plan' | 'purchased' | 'rollover'
        - `credit_remaining` number, double, nullable
        - `credit_total` number, double, nullable — Deprecated: Use credit_remaining instead.
        - `credit_type_icon` string, nullable — Icon identifier for the credit type
        - `credit_usage_aggregation` CreditUsageAggregation
          - `usage_this_billing_period` number, double, nullable — Credit usage within the current billing period
          - `usage_this_calendar_month` number, double, nullable — Credit usage within the current calendar month
          - `usage_this_week` number, double, nullable — Credit usage within the current calendar week (Monday to Sunday)
          - `usage_today` number, double, nullable — Credit usage for the current day
        - `credit_used` number, double, nullable
        - `effective_limit` integer, nullable — Effective limit for usage calculations. For overage pricing, this is the soft limit where overage charges begin. For tiered pricing, this is the first tier boundary. For other pricing models, this is the base allocation. Used to calculate usage percentages and determine access thresholds.
        - `effective_price` number, double, nullable — Per-unit price for current usage scenario
        - `entitlement_expiration_date` string, date-time, nullable
        - `entitlement_id` string, required
        - `entitlement_source` string, nullable — Source of the entitlement (plan or company_override)
        - `entitlement_type` 'company_override' | 'plan_entitlement' | 'unknown', required
        - `feature` FeatureInPlanResponseData
          - `billing_linked_resource` BillingLinkedResourceResponseData
            - `billing_provider` 'metronome' | 'orb' | 'schematic' | 'stripe', required
            - `external_resource_id` string, required
            - `originator` 'metronome' | 'orb' | 'schematic' | 'stripe', required
          - `created_at` string, date-time, required
          - `description` string, required
          - `event_subtype` string, nullable
          - `event_summary` EventSummaryResponseData
            - `company_count` integer, required
            - `environment_id` string, required
            - `event_count` integer, required
            - `event_subtype` string, required
            - `last_seen_at` string, date-time, nullable
            - `user_count` integer, required
          - `feature_type` 'boolean' | 'event' | 'license' | 'trait', required
          - `flags` FlagInPlanResponseData[], required
            - `created_at` string, date-time, required
            - `default_value` boolean, required
            - `description` string, required
            - `feature` FeatureResponseData
              - …
            - `feature_id` string, nullable
            - `flag_type` 'boolean', required
            - `id` string, required
            - `key` string, required
            - `last_checked_at` string, date-time, nullable
            - `maintainer_account_member_id` string, nullable
            - `name` string, required
            - `rules` RuleDetailResponseData[], required
              - …
            - `updated_at` string, date-time, required
          - `icon` string, required
          - `id` string, required
          - `license_id` string, nullable — The license sold through this feature. Set only on features of type license, and created automatically with them.
          - `lifecycle_phase` 'add_on' | 'alpha' | 'beta' | 'deprecated' | 'ga' | 'inactive' | 'in_plan' | 'internal_testing' | 'legacy'
          - `maintainer_account_member_id` string, nullable
          - `name` string, required
          - `plans` PreviewObject[], required
            - `description` string, nullable
            - `id` string, required
            - `image_url` string, nullable
            - `name` string, required
          - `plural_name` string, nullable
          - `singular_name` string, nullable
          - `trait` EntityTraitDefinitionResponseData
            - `created_at` string, date-time, required
            - `display_name` string, required
            - `entity_type` 'company' | 'user', required
            - `hierarchy` string[], required
            - `id` string, required
            - `trait_type` 'boolean' | 'currency' | 'date' | 'number' | 'string' | 'url', required
            - `updated_at` string, date-time, required
          - `trait_id` string, nullable
          - `updated_at` string, date-time, required
          - `usage_limit_trait_id` string, nullable — Set when the feature carries a pay-in-advance quantity. Provisioned lazily for other feature types, and at creation for license features.
        - `has_valid_allocation` boolean, nullable — Whether a valid allocation exists
        - `is_unlimited` boolean, nullable — Whether this is an unlimited allocation
        - `metric_reset_at` string, date-time, nullable — The time at which the metric will reset.
        - `month_reset` 'billing_cycle' | 'first_of_month'
        - `monthly_usage_based_price` BillingPriceView
          - `billing_scheme` 'per_unit' | 'tiered', required
          - `created_at` string, date-time, required
          - `currency` string, required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `is_active` boolean, required
          - `meter_event_name` string, nullable
          - `meter_event_payload_key` string, nullable
          - `meter_id` string, nullable
          - `nickname` string, nullable
          - `package_size` integer, required
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_external_id` string, required
          - `price_id` string, required
          - `price_tier` BillingProductPriceTierResponseData[], required
            - `flat_amount` integer, nullable
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `up_to` integer, nullable
          - `product_external_id` string, required
          - `product_id` string, required
          - `product_name` string, required
          - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
          - `tiers_mode` 'graduated' | 'volume'
          - `updated_at` string, date-time, required
          - `usage_type` 'licensed' | 'metered', required
        - `overuse` integer, nullable — Amount of usage exceeding soft limit (overage pricing only)
        - `percent_used` number, double, nullable — Percentage of allocation consumed (0-100+)
        - `period` 'all_time' | 'current_day' | 'current_month' | 'current_week'
        - `plan` PlanResponseData
          - `audience_type` string, nullable
          - `company_id` string, nullable
          - `copied_from_plan_id` string, nullable
          - `created_at` string, date-time, required
          - `description` string, required
          - `icon` 'amber' | 'blue' | 'blueGray' | 'blueGreen' | 'cyan' | 'emerald' | 'fuchsia' | 'gray' | 'green' | 'indigo' | 'lightBlue' | 'lime' | 'orange' | 'pink' | 'purple' | 'red' | 'redOrange' | 'rose' | 'sky' | 'slate' | 'teal' | 'trueGray' | 'violet' | 'warmGray' | 'yellow', required
          - `id` string, required
          - `name` string, required
          - `plan_type` 'plan' | 'add_on', required
          - `updated_at` string, date-time, required
        - `plan_entitlement` PlanEntitlementResponseData
          - `billing_linked_resource` BillingLinkedResourceResponseData
            - `billing_provider` 'metronome' | 'orb' | 'schematic' | 'stripe', required
            - `external_resource_id` string, required
            - `originator` 'metronome' | 'orb' | 'schematic' | 'stripe', required
          - `billing_threshold` integer, nullable
          - `consumption_rate` number, double, nullable
          - `created_at` string, date-time, required
          - `currency_prices` EntitlementCurrencyPricesResponseData[], required
            - `currency` string, required
            - `monthly_price` BillingPriceView
              - …
            - `quarterly_price` BillingPriceView
              - …
            - `yearly_price` BillingPriceView
              - …
          - `environment_id` string, required
          - `feature` FeatureResponseData
            - `created_at` string, date-time, required
            - `description` string, required
            - `event_subtype` string, nullable
            - `feature_type` 'boolean' | 'event' | 'license' | 'trait', required
            - `icon` string, required
            - `id` string, required
            - `license_id` string, nullable — The license sold through this feature. Set only on features of type license, and created automatically with them.
            - `lifecycle_phase` 'add_on' | 'alpha' | 'beta' | 'deprecated' | 'ga' | 'inactive' | 'in_plan' | 'internal_testing' | 'legacy'
            - `maintainer_account_member_id` string, nullable
            - `name` string, required
            - `plural_name` string, nullable
            - `singular_name` string, nullable
            - `trait_id` string, nullable
            - `updated_at` string, date-time, required
            - `usage_limit_trait_id` string, nullable — Set when the feature carries a pay-in-advance quantity. Provisioned lazily for other feature types, and at creation for license features.
          - `feature_id` string, required
          - `id` string, required
          - `metered_monthly_price` BillingPriceView
            - `billing_scheme` 'per_unit' | 'tiered', required
            - `created_at` string, date-time, required
            - `currency` string, required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `is_active` boolean, required
            - `meter_event_name` string, nullable
            - `meter_event_payload_key` string, nullable
            - `meter_id` string, nullable
            - `nickname` string, nullable
            - `package_size` integer, required
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_external_id` string, required
            - `price_id` string, required
            - `price_tier` BillingProductPriceTierResponseData[], required
              - …
            - `product_external_id` string, required
            - `product_id` string, required
            - `product_name` string, required
            - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
            - `tiers_mode` 'graduated' | 'volume'
            - `updated_at` string, date-time, required
            - `usage_type` 'licensed' | 'metered', required
          - `metered_quarterly_price` BillingPriceView
            - `billing_scheme` 'per_unit' | 'tiered', required
            - `created_at` string, date-time, required
            - `currency` string, required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `is_active` boolean, required
            - `meter_event_name` string, nullable
            - `meter_event_payload_key` string, nullable
            - `meter_id` string, nullable
            - `nickname` string, nullable
            - `package_size` integer, required
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_external_id` string, required
            - `price_id` string, required
            - `price_tier` BillingProductPriceTierResponseData[], required
              - …
            - `product_external_id` string, required
            - `product_id` string, required
            - `product_name` string, required
            - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
            - `tiers_mode` 'graduated' | 'volume'
            - `updated_at` string, date-time, required
            - `usage_type` 'licensed' | 'metered', required
          - `metered_yearly_price` BillingPriceView
            - `billing_scheme` 'per_unit' | 'tiered', required
            - `created_at` string, date-time, required
            - `currency` string, required
            - `id` string, required
            - `interval` 'day' | 'month' | 'one-time' | 'year', required
            - `interval_count` integer, required
            - `is_active` boolean, required
            - `meter_event_name` string, nullable
            - `meter_event_payload_key` string, nullable
            - `meter_id` string, nullable
            - `nickname` string, nullable
            - `package_size` integer, required
            - `price` integer, required
            - `price_decimal` string, nullable
            - `price_external_id` string, required
            - `price_id` string, required
            - `price_tier` BillingProductPriceTierResponseData[], required
              - …
            - `product_external_id` string, required
            - `product_id` string, required
            - `product_name` string, required
            - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
            - `tiers_mode` 'graduated' | 'volume'
            - `updated_at` string, date-time, required
            - `usage_type` 'licensed' | 'metered', required
          - `metric_period` 'all_time' | 'current_day' | 'current_month' | 'current_week'
          - `metric_period_month_reset` 'billing_cycle' | 'first_of_month'
          - `plan` PlanResponseData
            - `audience_type` string, nullable
            - `company_id` string, nullable
            - `copied_from_plan_id` string, nullable
            - `created_at` string, date-time, required
            - `description` string, required
            - `icon` 'amber' | 'blue' | 'blueGray' | 'blueGreen' | 'cyan' | 'emerald' | 'fuchsia' | 'gray' | 'green' | 'indigo' | 'lightBlue' | 'lime' | 'orange' | 'pink' | 'purple' | 'red' | 'redOrange' | 'rose' | 'sky' | 'slate' | 'teal' | 'trueGray' | 'violet' | 'warmGray' | 'yellow', required
            - `id` string, required
            - `name` string, required
            - `plan_type` 'plan' | 'add_on', required
            - `updated_at` string, date-time, required
          - `plan_id` string, required
          - `price_behavior` 'credit_burndown' | 'overage' | 'pay_as_you_go' | 'pay_in_advance' | 'tier'
          - `rule_id` string, required
          - `rule_id_usage_exceeded` string, nullable
          - `soft_limit` integer, nullable
          - `updated_at` string, date-time, required
          - `usage_based_product` BillingProductResponseData
            - `account_id` string, required
            - `created_at` string, date-time, required
            - `currency` string, nullable — Deprecated; currencies are associated with prices, not products
            - `environment_id` string, required
            - `external_id` string, required
            - `is_active` boolean, required
            - `name` string, required
            - `price` number, double, required
            - `price_decimal` string, nullable
            - `product_id` string, required
            - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
            - `quantity` number, double, required
            - `updated_at` string, date-time, required
          - `usage_quantity` integer, nullable — The committed unit quantity for this entitlement. For custom plans this is the quantity the company is contractually committed to; for standard plans it is the quantity pre-filled when subscribing. Only applies to pay-in-advance entitlements. Note: this is not yet enforced/auto-provisioned as a true default — it is currently stored for downstream billing use.
          - `value_bool` boolean, nullable
          - `value_credit` BillingCreditResponseData
            - `burn_strategy` 'expiration_priority' | 'first_in_first_out' | 'last_in_first_out' | 'plan_first_then_credit_bundles_first_in_first_out', required
            - `cost_editable` boolean, required
            - `created_at` string, date-time, required
            - `currency_prices` CreditCurrencyPriceResponseData[], required
              - …
            - `default_expiry_unit` 'billing_periods' | 'days', required
            - `default_expiry_unit_count` integer, nullable
            - `default_rollover_policy` 'expire' | 'none' | 'rollover', required
            - `description` string, required
            - `icon` string, nullable
            - `id` string, required
            - `name` string, required
            - `plural_name` string, nullable
            - `price` BillingPriceResponseData
              - …
            - `product` BillingProductResponseData
              - …
            - `singular_name` string, nullable
            - `updated_at` string, date-time, required
          - `value_numeric` integer, nullable
          - `value_trait` EntityTraitDefinitionResponseData
            - `created_at` string, date-time, required
            - `display_name` string, required
            - `entity_type` 'company' | 'user', required
            - `hierarchy` string[], required
            - `id` string, required
            - `trait_type` 'boolean' | 'currency' | 'date' | 'number' | 'string' | 'url', required
            - `updated_at` string, date-time, required
          - `value_trait_id` string, nullable
          - `value_type` 'boolean' | 'credit' | 'numeric' | 'trait' | 'unknown' | 'unlimited', required
          - `warning_tiers` WarningTierResponseData[], required
            - `id` string, required
            - `key` string, required
            - `value` integer, required
        - `price_behavior` 'credit_burndown' | 'overage' | 'pay_as_you_go' | 'pay_in_advance' | 'tier'
        - `quarterly_usage_based_price` BillingPriceView
          - `billing_scheme` 'per_unit' | 'tiered', required
          - `created_at` string, date-time, required
          - `currency` string, required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `is_active` boolean, required
          - `meter_event_name` string, nullable
          - `meter_event_payload_key` string, nullable
          - `meter_id` string, nullable
          - `nickname` string, nullable
          - `package_size` integer, required
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_external_id` string, required
          - `price_id` string, required
          - `price_tier` BillingProductPriceTierResponseData[], required
            - `flat_amount` integer, nullable
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `up_to` integer, nullable
          - `product_external_id` string, required
          - `product_id` string, required
          - `product_name` string, required
          - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
          - `tiers_mode` 'graduated' | 'volume'
          - `updated_at` string, date-time, required
          - `usage_type` 'licensed' | 'metered', required
        - `soft_limit` integer, nullable — The soft limit for the feature usage. Available only for overage price behavior
        - `usage` integer, nullable — The amount of usage that has been consumed; a null value indicates that usage is not being measured or that this is a credit-based entitlement (use credit_used instead).
        - `yearly_usage_based_price` BillingPriceView
          - `billing_scheme` 'per_unit' | 'tiered', required
          - `created_at` string, date-time, required
          - `currency` string, required
          - `id` string, required
          - `interval` 'day' | 'month' | 'one-time' | 'year', required
          - `interval_count` integer, required
          - `is_active` boolean, required
          - `meter_event_name` string, nullable
          - `meter_event_payload_key` string, nullable
          - `meter_id` string, nullable
          - `nickname` string, nullable
          - `package_size` integer, required
          - `price` integer, required
          - `price_decimal` string, nullable
          - `price_external_id` string, required
          - `price_id` string, required
          - `price_tier` BillingProductPriceTierResponseData[], required
            - `flat_amount` integer, nullable
            - `per_unit_price` integer, nullable
            - `per_unit_price_decimal` string, nullable
            - `up_to` integer, nullable
          - `product_external_id` string, required
          - `product_id` string, required
          - `product_name` string, required
          - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
          - `tiers_mode` 'graduated' | 'volume'
          - `updated_at` string, date-time, required
          - `usage_type` 'licensed' | 'metered', required
  - `params` object, required — Input parameters

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Server error

---

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