---
title: "Create a product rate plan charge with Dynamic Pricing"
method: POST
path: "/commerce/charges"
tags: ["Commerce"]
---

# Create a product rate plan charge with Dynamic Pricing

`POST /commerce/charges`

Create a product rate plan charge (PRPC) in the Product Catalog.
Use this endpoint to configure Dynamic Pricing, including default pricing at the charge level 
and conditional rate cards evaluated by attribute values.

## Headers

- `Idempotency-Key` string
- `Accept-Encoding` string
- `Content-Encoding` string
- `Zuora-Entity-Ids` string
- `Zuora-Org-Ids` string
- `Zuora-Track-Id` string

## Request body

- CreateChargeRequest
  - `charge` object, required — Product rate plan charge (PRPC) definition including pricing model, billing settings, trigger event, and attribute-based rate cards for Dynamic Pricing.
    - `prepaymentUnitType` 'unit' | 'currency' — Unit type used for the prepayment charge. Replaces the deprecated `commitmentUnitType` field.
    - `prepaid` boolean — Indicates whether the charge is prepaid.
    - `chargeFunction` string — Function of the charge. Use `charge_function_prepayment` for a prepayment charge.
    - `charge_model` 'flat_fee' | 'per_unit' | 'overage' | 'volume' | 'tiered' | 'tiered_overage' | 'discount_fixed_amount' | 'discount_percentage' | 'custom_charge_model' | 'delivery' | 'minimum_commitment_true_up' | 'calculated' | 'high_water_mark_volume_pricing' | 'high_water_mark_tiered_pricing' | 'multi_attribute_pricing' | 'prerated_pricing' | 'prerated_per_unit', required — Charge model that determines how the charge is calculated.
    - `charge_type` 'one_time' | 'recurring' | 'usage', required — Charge category in the catalog.
    - `description` string — Human-readable description of the charge.
    - `name` string, required — Name of the charge as displayed in the product catalog.
    - `unit_of_measure` string, required — Unit of measure (UOM) used to quantify or price the charge (for example, Each, Seats, Licenses).
    - `default_quantity` number, double — Default quantity applied when the charge is added, if not specified elsewhere.
    - `end_date_condition` 'end_date_one_time' | 'subscription_end' | 'fixed_period' | 'specific_end_date' — Condition that determines when the charge becomes inactive. Use `subscription_end` when the charge should remain active until the subscription ends. Duration-based fields such as `up_to_periods` and `up_to_periods_type` do not apply when this value is used.
    - `up_to_periods_type` 'billing_periods' | 'days' | 'weeks' | 'months' | 'years' — Granularity used with `end_date_condition = fixed_period` to express how long the charge remains active. When `end_date_condition = subscription_end`, this field is ignored.
    - `up_to_periods` integer — Number of periods used with `end_date_condition = fixed_period`. Combined with `up_to_periods_type` to determine the fixed duration of the charge. Ignored when `end_date_condition = subscription_end`.
    - `bill_cycle` object, required — Billing period configuration that controls frequency, alignment, and timing of billing for this charge.
      - `type` 'default_from_customer' | 'specific_day_of_month' | 'subscription_start_day' | 'charge_trigger_day' | 'specific_day_of_week' | 'term_start_day' | 'term_end_day', required — Determines how the billing day is selected for this charge.
      - `period` 'bill_cycle_period_month' | 'bill_cycle_period_quarter' | 'bill_cycle_period_semi_annual' | 'bill_cycle_period_annual' | 'bill_cycle_period_eighteen_months' | 'bill_cycle_period_two_years' | 'bill_cycle_period_three_years' | 'bill_cycle_period_five_years' | 'bill_cycle_period_specific_months' | 'bill_cycle_period_subscription_term' | 'bill_cycle_period_week' | 'bill_cycle_period_specific_weeks' | 'bill_cycle_period_specific_days', required — Length of each billing period.
      - `period_alignment` 'align_to_charge' | 'align_to_subscription_start' | 'align_to_term_start' | 'align_to_term_end', required — How the billing period start aligns.
      - `timing` 'in_advance' | 'in_arrears' — When the charge is billed relative to the service period.
      - `day_of_month` integer — Required when `type` is `specific_day_of_month`.
      - `day_of_week` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' — Used when `type` is `specific_day_of_week`.
    - `list_price_base` 'Per_Billing_Period' | 'Per_Month' | 'Per_Week' | 'Per_Year' | 'Per_Specific_Months' | 'Per_Validity_Period' — List price basis for this charge. This is used when interpreting list prices and, for some models, in conjunction with `specific_list_price_base`.
    - `specific_list_price_base` number, double — Optional specific value used when `list_price_base` requires an explicit quantity (for example, number of months for `Per_Specific_Months`).
    - `trigger_event` 'contract_effective' | 'service_activation' | 'customer_acceptance' | 'specific_date', required — Event that makes the charge active on a subscription.
    - `product_rate_plan_id` string, required — Identifier of the product rate plan that owns this charge.
    - `specificListPriceBase` integer, nullable — The number of months for the list price base of the charge. This field is required if you set the value of the `ListPriceBase` field to `Per Specific Months`. The value must be a positive integer between **1** and **120** inclusive. **Notes**: - This field is available only if you have the <a href="https://docs.zuora.com?resourceId=billing-annual-list-price" target="_blank">Annual List Price</a> feature enabled. - To use this field, you must set the `X-Zuora-WSDL-Version` request header to `129` or later. Otherwise, an error occurs. - The value of this field is `null` if you do not set the value of the `ListPriceBase` field to `Per Specific Months`.
    - `prepayment` object — Prepayment configuration for the charge, including credit, operation, quantity, validity period, rollover, and drawdown settings.
      - `creditOption` 'time_based' | 'consumption_based' | 'full_credit_back' | 'credit_option_unspecified' — Specifies how prepayment credits are applied.
      - `operationType` 'prepaid_operation_type_topup' — Specifies the type of prepayment operation.
      - `quantity` number, double — Number of units included in the prepayment charge.
      - `rollover` boolean — Indicates whether unused prepayment funds roll over.
      - `rolloverApply` 'apply_first' | 'apply_last' — Specifies whether rollover funds are consumed before or after normal funds.
      - `rolloverPeriodLength` integer — Length of each rollover period.
      - `rolloverPeriods` integer — Number of rollover periods allowed.
      - `unitOfMeasure` string — Unit of measure for the prepayment charge.
      - `validityPeriod` 'subscription_term' | 'annual' | 'semi_annual' | 'quarter' | 'month' | 'specific_days' | 'specific_weeks' | 'specific_months' — Period during which prepayment units are valid. When enhanced unit-based Prepaid with Drawdown is enabled, specific days, specific weeks, and specific months are supported. When using a specific validity period, specify the `specificValidityPeriodLength` field.
      - `validityPeriodAlignment` 'vp_alignment_charge_start' | 'vp_alignment_term_start' | 'vp_alignment_term_end' — Alignment point used to determine the start of the validity period. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `validityPeriodProrationOption` 'vp_proration_option_prorate_units' | 'vp_proration_option_no_prorate' — Specifies whether the validity period is prorated. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `specificValidityPeriodLength` integer — Specifies the length of the validity period when a specific validity period is used. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `rolloverPeriodType` 'rollover_period_type_day' | 'rollover_period_type_month' | 'rollover_period_type_quarter' | 'rollover_period_type_annual' — Unit of time used for the rollover period. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `rolloverFundPriority` integer — Priority assigned to rolled-over funds. Funds with lower priority values are consumed first. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `rolloverEndDateType` 'rollover_end_date_type_charge_end_date' | 'rollover_end_date_type_subscription_term' — Determines when rolled-over funds expire. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `fundSupportAccountHierarchy` boolean — Indicates whether child accounts can consume drawdown funds from the parent account. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `drawdownPriority` integer — Priority used to determine the order in which drawdown funds are consumed. Lower values are consumed first. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `drawdownScope` 'commitment_level_subscription' | 'commitment_level_account' — Scope at which drawdown funds are tracked and consumed. Use this field to specify whether funds are available at the subscription level or account level. This field replaces the deprecated `commitmentLevel` field. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
    - `drawdown` object — Drawdown configuration for the charge when using Prepaid with Drawdown. Use this object to define the unit of measure used for drawdown consumption and the conversion rate applied during drawdown evaluation.
      - `unitOfMeasure` string — Unit of measure used for drawdown consumption. For example, `USD` for currency-based drawdown or another supported unit defined for the charge. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
      - `conversionRate` number, double — Conversion rate applied when converting usage or rated amounts into the drawdown unit of measure. For example, a value of `1.25` means the drawdown calculation uses a 1.25 conversion factor. **Note**: This field is only available if you have the Enhanced Unit-Based Prepaid with Drawdown feature enabled.
    - `formula` string — Optional formula applied after rate-card lookup to adjust the computed price.
    - `tax_mode` 'non_taxable' | 'tax_exclusive' | 'tax_inclusive' — Tax mode for this charge.
    - `tax_code` string — Tax code used for tax calculation on this charge.
    - `accounting` AccountingRequest — Accounting fields accepted on create/update requests. Field names use snake_case. **Conditional requirement rules** - If **Allow blank Accounting Codes** = **Yes** → Accounting fields are **optional**. - If **Allow blank Accounting Codes** = **No** and the tenant **has Zuora Revenue** → **all Accounting fields except `accounting_code` are required**. - If **Allow blank Accounting Codes** = **No** and the tenant **does NOT have Zuora Revenue** → only `recognized_revenue_account` and `deferred_revenue_account` are required. These rules apply to **all operations that accept `accounting`** in the payload.
      - `accounting_code` string — An accounting code associated with the charge for reporting/ERP mapping. Typically a short code or identifier, not the GL account name.
      - `accounts_receivable_account` string — Accounts Receivable (AR) account to book invoices for this charge. Must match an existing account in the tenant's chart of accounts.
      - `accounts_receivable_account_type` string — The account type associated with `accounts_receivable_account`. Maps to the `accountsReceivableAccountType` field in the accounting object.
      - `deferred_revenue_account` string — Deferred revenue (liability) account to book revenue before recognition. Must match an existing account in the tenant's chart of accounts.
      - `deferred_revenue_accounting_type` string — Accounting method/type applied to deferred revenue. Maps to the `deferredRevenueAccountingType` field in the accounting object.
      - `recognized_revenue_account` string — The name of the account where the Account Type is "Recognized Revenue".
      - `recognized_revenue_account_type` string — The account type associated with `recognized_revenue_account`. Maps to the `recognizedRevenueAccountType` field in the accounting object.
      - `adjustment_liability_account` string — The name of the account where the Account Type is "Adjustment Liability".
      - `adjustment_liability_account_type` string — The account type associated with `adjustment_liability_account`. Maps to the `adjustmentLiabilityAccountType` field in the accounting object.
      - `adjustment_revenue_account` string — The name of the account where the Account Type is "Adjustment Revenue".
      - `adjustment_revenue_account_type` string — The account type associated with `adjustment_revenue_account`. Maps to the `adjustmentRevenueAccountType` field in the accounting object.
      - `contract_asset_account` string — The name of the account where the Account Type is "Contract Asset".
      - `contract_asset_account_type` string — The account type associated with `contract_asset_account`. Maps to the `contractAssetAccountType` field in the accounting object.
      - `contract_liability_account` string — The name of the account where the Account Type is "Contract Liability".
      - `contract_liability_account_type` string — The account type associated with `contract_liability_account`. Maps to the `contractLiabilityAccountType` field in the accounting object.
      - `contract_recognized_revenue_account` string — Recognized revenue account used specifically for contract-based recognition flows. Must match an existing account in the tenant's chart of accounts.
      - `contract_recognized_revenue_account_type` string — The account type associated with `contract_recognized_revenue_account`. Maps to the `contractRecognizedRevenueAccountType` field in the accounting object.
      - `unbilled_receivables_account` string — The name of the account where the Account Type is "Unbilled Receivables".
      - `unbilled_receivables_account_type` string — The account type associated with `unbilled_receivables_account`. Maps to the `unbilledReceivablesAccountType` field in the accounting object.
    - `revenue` object — Revenue recognition configuration, for example, `revenue_recognition_rule_name`, triggers, allocation flags.
    - `custom_fields` object — Tenant custom fields on the charge.
    - `attributes` object[] — Declares the attribute metadata used by Dynamic Pricing for this charge. Each entry defines an attribute that pricing rules can reference, along with its data type and (optionally) a mapping to a Zuora object field used to resolve values at runtime. Examples: Region, Age, EffectiveDate.
      - `name` string, required — Attribute name, for example, Age, Region, EffectiveDate.
      - `type` 'String' | 'Integer' | 'Double' | 'Boolean' | 'Date' | 'Datetime' — Attribute data type.
      - `mapping` object — Optional mapping to a Zuora business object field used to automatically resolve the attribute value at runtime.
        - `object` string, required — Target Zuora object, for example, account, subscription.
        - `field` string, required — Field on the target object, for example, age__c.
    - `pricing` union — Default (charge-level) pricing for the PRPC, used when no rate-card row matches. The structure depends on the charge_model: - flat_fee → flat_amounts - per_unit → unit_amounts - volume/tiered → tiers - discount_fixed_amount → discount_amounts - discount_percentage → discount_percentage
      - object
        - `flat_amounts` object, required — Map of currency to flat amount.
      - object
        - `unit_amounts` object, required — Map of currency to per-unit price.
      - object
        - `tiers` object[], required — Tier definitions (volume or tiered) with optional min/max caps.
          - `tier` string, required — Tier identifier (e.g., "1", "2").
          - `from` number, required — Lower bound (inclusive).
          - `up_to` number, nullable — Upper bound (inclusive). Omit/null for open-ended last tier.
          - `price_format` string, required — For example, price_format_per_unit.
          - `unit_amounts` object — Per-unit price by currency for this tier.
          - `flat_amounts` object — Flat amount by currency for this tier (if applicable).
          - `min_amounts` object — Minimum billed amount by currency for this tier.
          - `max_amounts` object — Maximum billed amount by currency for this tier.
      - object
        - `discount_amounts` object, required — Map of currency to discount amount.
      - object
        - `discount_percentage` number, double, required — Discount percentage (e.g., 15 for 15%).
    - `rate_cards` object[] — Defines the conditional pricing table (**rate cards**) for the PRPC. Each rate-card entry specifies: - `attributes`: The match conditions evaluated at runtime. - `pricing`: The price or rate to apply when the conditions match. If multiple rows match, Zuora applies the first matching rate card. If no row matches, the default `pricing` (defined above) is used.
      - `attributes` object[], required — Defines the set of match conditions that must all evaluate to true for this rate-card row to apply. Each condition corresponds to a declared pricing attribute. Use `between` for range or date-based conditions.
        - `name` string, required — Attribute name for the condition (for example, Age, Region, EffectiveDate).
        - `operator` '>' | '>=' | '<' | '<=' | '==' | 'between' | 'between-inclusive' — Comparison operator for the condition.
        - `value` union — Comparison value. For `between`, provide an array of two values. The value type must align with the attribute’s declared type.
          - string
          - number
          - boolean
          - union[]
            - union
              - …
      - `pricing` union, required — Pricing configuration returned when this rate-card row matches. The structure depends on the charge_model: - flat_fee → flat_amounts - per_unit → unit_amounts - volume/tiered → tiers - discount_fixed_amount → discount_amounts - discount_percentage → discount_percentage
        - object
          - `flat_amounts` object, required — Map of currency to flat amount.
        - object
          - `unit_amounts` object, required — Map of currency to per-unit price.
        - object
          - `tiers` object[], required — Tier definitions (volume or tiered) with optional min/max caps.
            - `tier` string, required — Tier identifier (e.g., "1", "2").
            - `from` number, required — Lower bound (inclusive).
            - `up_to` number, nullable — Upper bound (inclusive). Omit/null for open-ended last tier.
            - `price_format` string, required — For example, price_format_per_unit.
            - `unit_amounts` object — Per-unit price by currency for this tier.
            - `flat_amounts` object — Flat amount by currency for this tier (if applicable).
            - `min_amounts` object — Minimum billed amount by currency for this tier.
            - `max_amounts` object — Maximum billed amount by currency for this tier.

## Response `200`

OK

- CreateChargeResponse
  - `accounting` AccountingResponse — Accounting fields returned by the API. `*Type` fields are derived from the tenant's chart of accounts and are read-only.
    - `accountingCode` string — An accounting code associated with the charge for reporting or ERP mapping. Typically a short code or identifier, not the GL account name.
    - `accountsReceivableAccount` string — Accounts Receivable (AR) account to book invoices for this charge. Must match an existing account in the tenant's chart of accounts.
    - `accountsReceivableAccountType` string — System-derived type/category of the AR account from the chart of accounts. Examples include "AccountsReceivable".
    - `adjustmentLiabilityAccount` string — The name of the account where the Account Type is "Adjustment Liability".
    - `adjustmentLiabilityAccountType` string — System-derived type/category of the Adjustment Liability account from the chart of accounts. Examples include "AdjustmentLiability".
    - `adjustmentRevenueAccount` string — The name of the account where the Account Type is "Adjustment Revenue".
    - `adjustmentRevenueAccountType` string — System-derived type/category of the Adjustment Revenue account from the chart of accounts. Examples include "AdjustmentRevenue".
    - `contractAssetAccount` string — The name of the account where the Account Type is "Contract Asset".
    - `contractAssetAccountType` string — System-derived type/category of the Contract Asset account from the chart of accounts.
    - `contractLiabilityAccount` string — The name of the account where the Account Type is "Contract Liability".
    - `contractLiabilityAccountType` string — System-derived type/category of the Contract Liability account from the chart of accounts. Examples include "ContractLiability".
    - `contractRecognizedRevenueAccount` string — Recognized revenue account used specifically for contract-based recognition flows. Must match an existing account in the tenant's chart of accounts.
    - `contractRecognizedRevenueAccountType` string — System-derived type/category of the Contract Recognized Revenue account from the chart of accounts.
    - `deferredRevenueAccount` string — Deferred revenue (liability) account to book revenue before recognition. Must match an existing account in the tenant's chart of accounts.
    - `deferredRevenueAccountType` string — System-derived type/category of the Deferred Revenue account from the chart of accounts.
    - `recognizedRevenueAccount` string — The name of the account where the Account Type is "Recognized Revenue".
    - `recognizedRevenueAccountType` string — System-derived type/category of the Recognized Revenue account from the chart of accounts.
    - `unbilledReceivablesAccount` string — The name of the account where the Account Type is "Unbilled Receivables".
    - `unbilledReceivablesAccountType` string — System-derived type/category of the Unbilled Receivables account from the chart of accounts.
    - `productRatePlanChargeId` string — The ID of your product rate plan charge.
  - `attributes` object[] — Attribute metadata associated with Dynamic Pricing for this charge.
  - `billCycle` object
    - `dayOfMonth` integer — Specific day of month to bill when type = specific_day_of_month.
    - `period` string — Billing period length.
    - `periodAlignment` string — How the billing period start aligns.
    - `timing` string — Whether the charge bills before or after the service period.
    - `type` string — Bill-cycle mode (inherit defaults or set specific day rules).
  - `chargeFunction` 'charge_function_standard' | 'charge_function_prepayment' | 'charge_function_commitment_true_up' | 'charge_function_drawdown' | 'charge_function_credit_commitment' | 'charge_function_drawdown_and_credit_commitment' — Internal function/category of the charge used by rating.
  - `chargeModel` string — Pricing model that determines how the amount is calculated.
  - `chargeType` string — Whether the charge recurs, rates usage, or is a one-time fee.
  - `createdById` string — User ID that created the charge record.
  - `createdTime` string, date-time — Timestamp when the charge record was created.
  - `customFields` object — Tenant-specific custom field values on the charge.
  - `deliverySchedule` object — Day-of-week delivery settings when delivery scheduling is enabled.
    - `frequency` string — Delivery frequency label for schedule rules.
    - `friday` boolean — Deliver on Friday.
    - `monday` boolean — Deliver on Monday.
    - `saturday` boolean — Deliver on Saturday.
    - `sunday` boolean — Deliver on Sunday.
    - `thursday` boolean — Deliver on Thursday.
    - `tuesday` boolean — Deliver on Tuesday.
    - `wednesday` boolean — Deliver on Wednesday.
  - `discountOptions` object — How discount charges apply and interact with other discounts.
    - `applyDetails` object[] — Per-target discount application details (if populated).
    - `applyTo` string[] — Which components or charges the discount applies to.
    - `applyToBillingPeriodPartially` boolean — Whether the discount duration can partially align to a period.
    - `reflectDiscountInNetAmount` boolean — Whether discounts reduce the net amount on invoices.
    - `rollover` boolean — Whether unused discount can roll over to future periods.
    - `stackedDiscount` boolean — Whether this discount stacks with other discounts.
  - `drawdown` object — Drawdown configuration for the charge when using prepaid with drawdown.
    - `unitOfMeasure` string — Unit of measure used for drawdown consumption. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `conversionRate` number, double — Conversion rate used when converting usage or rated amounts into the drawdown unit of measure. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
  - `endDateCondition` string — Rule for when the charge ends.
  - `upToPeriodsType` string — Unit used for the fixed period when `endDateCondition` is `fixed_period`, for example, billing periods or days.
  - `upToPeriods` integer — Number of periods, in units of `upToPeriodsType`, that the charge remains active when `endDateCondition` is `fixed_period`.
  - `extendedPrice` object — Calculated extended price details (model-dependent).
  - `id` string — Unique identifier of the product rate plan charge (PRPC).
  - `isChargeLevelMinCommit` boolean — Whether a minimum commit is enforced at the charge level.
  - `isCommitted` boolean — Indicates if the charge definition is committed/finalized.
  - `labels` object — Free-form labels/tags attached to the charge.
  - `listPriceBase` string — List price basis, for example, Per Billing Period, Per Month, Per Year.
  - `specificListPriceBase` integer — The number of months for the list price base of the charge. This field is required when the `ListPriceBase` field is set to `Per Specific Months`. The value must be a positive integer between **1** and **120**, inclusive. **Notes**: - This field is available only if you have the Annual List Price feature enabled. - To use this field, you must set the `X-Zuora-WSDL-Version` request header to `129` or later. - The value of this field is `null` if you do not set the value of the `ListPriceBase` field to `Per Specific Months`.
  - `mergedRateCards` object[] — Effective rate-card rows after merges (if any).
  - `name` string — Display name of the charge in the plan.
  - `negotiatedRateCards` object[] — Customer- or deal-specific rate-card rows applied by negotiation.
  - `netsuite` object — NetSuite integration attributes mapped for this charge.
  - `ocmJsonByCurrency` object — Offer/OCM metadata keyed by currency (internal use).
  - `organizationLabels` string[] — Organization-level labels associated with the charge.
  - `overageOptions` object — Overage settings for usage charges.
    - `includedUnits` number — Included units before overage starts.
    - `unusedUnitsCreditRates` object — Credit rates for unused units (by currency).
  - `prepaid` boolean — Indicates whether the charge is prepaid.
  - `prepaymentUnitType` 'unit' | 'currency' — Unit type used for the prepayment charge.
  - `prepayment` object — Prepayment configuration for the charge, including credit, operation, quantity, validity period, rollover, and drawdown settings.
    - `creditOption` 'time_based' | 'consumption_based' | 'full_credit_back' | 'credit_option_unspecified' — How prepayment credits are applied (if supported).
    - `operationType` 'prepaid_operation_type_topup' — Type of prepayment operation.
    - `quantity` number, double — Number of units included in the prepayment charge.
    - `rollover` boolean — Whether unused prepayment funds roll over.
    - `rolloverApply` 'apply_first' | 'apply_last' — Specifies whether rollover funds are consumed before or after normal funds.
    - `rolloverPeriodLength` integer — Length of each rollover period.
    - `rolloverPeriods` integer — Number of rollover periods allowed.
    - `unitOfMeasure` string — Unit of measure for the prepayment charge.
    - `validityPeriod` 'subscription_term' | 'annual' | 'semi_annual' | 'quarter' | 'month' | 'specific_days' | 'specific_weeks' | 'specific_months' — Period during which prepayment units are valid. When enhanced unit-based Prepaid with Drawdown is enabled, specific days, specific weeks, and specific months are supported. When using a specific validity period, specify the `specificValidityPeriodLength` field.
    - `validityPeriodAlignment` 'vp_alignment_charge_start' | 'vp_alignment_term_start' | 'vp_alignment_term_end' — Alignment point used to determine the start of the validity period. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `validityPeriodProrationOption` 'vp_proration_option_prorate_units' | 'vp_proration_option_no_prorate' — Specifies whether the validity period is prorated. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `specificValidityPeriodLength` integer — Length of the validity period when a specific validity period is used. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `rolloverPeriodType` 'rollover_period_type_day' | 'rollover_period_type_month' | 'rollover_period_type_quarter' | 'rollover_period_type_annual' — Unit of time used for the rollover period. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `rolloverFundPriority` integer — Priority assigned to rolled-over funds. Lower values are consumed first. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `rolloverEndDateType` 'rollover_end_date_type_charge_end_date' | 'rollover_end_date_type_subscription_term' — Determines when rolled-over funds expire. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `fundSupportAccountHierarchy` boolean — Whether child accounts can consume drawdown funds from the parent account. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `drawdownPriority` integer — Priority used to determine the order in which drawdown funds are consumed. Lower values are consumed first. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
    - `drawdownScope` 'commitment_level_subscription' | 'commitment_level_account' — Scope at which drawdown funds are tracked and consumed. This field replaces the deprecated `commitmentLevel` field. **Note**: This field is only available if you have the enhanced unit-based Prepaid with Drawdown feature enabled.
  - `priceChangeOption` string — How price changes are applied across renewals/amendments.
  - `pricing` object — Default (charge-level) price configuration by model/currency.
    - `adjustments` object — Price adjustments metadata.
    - `discountAmounts` object — Fixed discount amounts by currency.
    - `discountPercentages` object — Percentage discount values by currency.
    - `flatAmounts` object — Flat amounts by currency for flat-fee pricing.
    - `maxAmounts` object — Maximum caps by currency.
    - `minAmounts` object — Minimum charges by currency.
    - `percentages` object — Percentage price values by currency (model-dependent).
    - `tiers` object[] — Tier definitions for tiered/volume pricing.
    - `unitAmounts` object — Per-unit amounts by currency for per-unit/usage pricing.
  - `pricingSummary` string[] — Human-readable price summary strings, for example, USD100.
  - `pricingWaterfalls` object — Detailed pricing/waterfall breakdown (if available).
  - `productChargeDefinitions` object[] — Underlying charge definitions referenced for pricing lookup.
  - `productRatePlanChargeNumber` string — PRPC number.
  - `productRatePlanId` string — ID of the plan (PRP) that owns this charge.
  - `prorationOption` string — How proration is handled relative to tenant defaults.
  - `rateCards` object[] — Dynamic Pricing rate-card rows configured on the charge.
  - `revenue` object — Revenue policy settings for this charge.
    - `excludeItemBillingFromRevenueAccounting` boolean — If true, item billing is excluded from revenue accounting.
    - `excludeItemBookingFromRevenueAccounting` boolean — If true, item booking is excluded from revenue accounting.
    - `legacyReporting` boolean — Indicator for legacy revenue reporting behaviors.
    - `revenueRecognitionRuleName` string — Name of the revenue rule to apply, for example, "Recognize upon invoicing".
  - `taxCode` string — Tax code applied to the charge (for example, a tax category code).
  - `taxMode` string — Tax mode for the charge.
  - `taxable` boolean — Whether the charge is taxable.
  - `triggerEvent` string — Event that triggers the charge.
  - `unitOfMeasure` string — Unit of measure used for pricing (for example, Each, Seats).
  - `updatedById` string — User ID that last updated the charge record.
  - `updatedTime` string, date-time — Timestamp when the charge record was last updated.
  - `useTenantDefaultForPriceChange` boolean — Whether tenant defaults govern price change behavior.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

---

[API](https://skmtc.dev/zuora/apis/api-reference.md) · [All operations](https://skmtc.dev/zuora/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zuora/api-reference/revisions/d11e237f3e54/schema)
