---
title: "Create a price plan"
method: POST
path: "/price_plans"
tags: ["Price Plans"]
---

# Create a price plan

`POST /price_plans`

This API let's you create and price plan
Learn more about [Price Plans](https://docs.togai.com/docs/priceplan)

## Query parameters

- `dry_run` boolean

## Request body

- CreatePricePlanRequest — Request to create a price plan
  - `name` string, required — Name of the price plan
  - `description` string — Description of price plan
  - `type` 'BILLING' | 'PURCHASE' — Type of price plan
  - `pricePlanDetails` CreatePricePlanDetails, required
    - `pricingCycleConfig` PricingCycleConfig — Represents configurations related to pricing cycle
      - `interval` 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ANNUALLY', required — Interval field allow you to define the billing interval you would like to set
      - `startOffset` object — Represents the start of pricing cycle in terms of - dayOffset - number of days from beginning of week / month and - monthOffset - number of months from beginning of interval (quarter, half-year or year) Note: If a day with offset doesn't exist for a month, closest previous day is considered Examples: WEEKLY - - {dayOffset: 1, monthOffset: NIL} - First day of every week (Monday) - {dayOffset: 3, monthOffset: NIL} - 3rd day of every week (Wednesday) - {dayOffset: LAST, monthOffset: NIL} - Last day of every week (Sunday) MONTHLY - - {dayOffset: 1, monthOffset: NIL} - First day of every month - {dayOffset: 12, monthOffset: NIL} - 12th of every month - {dayOffset: 28, monthOffset: NIL} - 28th of every month. i.e, 28th of Jan, 28th of Feb, ... - {dayOffset: 30, monthOffset: NIL} - 30th of every month. i.e, 28th of Jan, 28th of Feb, ... - {dayOffset: LAST, monthOffset: NIL} - Last day of every month. i.e, 31st of Jan, 28th of Feb, ... QUARTERLY - {dayOffset: 15, monthOffset: FIRST} - 15th Jan, 15th Apr, 15th Jul and 15th Oct - {dayOffset: 15, monthOffset: 2} - 15th Feb, 15th May, 15th Aug and 15th Nov - {dayOffset: 15, monthOffset: LAST} - 15th Mar, 15th Jun, 15th Sep and 15th Dec - {dayOffset: LAST, monthOffset: FIRST} - 31st Jan, 30th Apr, 30th Jul and 31th Oct HALF_YEARLY - {dayOffset: 15, monthOffset: FIRST} - 15th Jan and 15th Jul - {dayOffset: 15, monthOffset: 4} - 15th Apr and 15th Oct - {dayOffset: 15, monthOffset: LAST} - 15th Jun and 15th Dec ANNUALLY - {dayOffset: 15, monthOffset: FIRST} - 15th Jan - {dayOffset: 15, monthOffset: 1} - 15th Jan - {dayOffset: LAST, monthOffset: 2} - 29th Feb on Leap year, 28th otherwise - {dayOffset: 15, monthOffset: 8} - 15th Aug - {dayOffset: 15, monthOffset: LAST} - 15th Dec
        - `dayOffset` string, required — If interval is WEEKLY, min: "1" and max: "7" as strings. Spl. string allowed: LAST Otherwise, min: "1" and max: "31" as strings. Spl. string allowed: LAST
        - `monthOffset` string, required — min: "1" and max: "12". Spl. string allowed: FIRST / LAST. For QUARTERLY only 1 - 3 is allowed and for HALF_YEARLY 1 - 6. This being an optional field, shouldn't be passed for MONTHLY.
      - `gracePeriod` integer, required — Togai allows you to ingest past dated events that will be processed by a pricing cycle till the end grace period. For example: Pricing cycle is Monthly from 1st to 30th and gracePeriod is 5 days which next month 1 to 5th date, you can ingest past dated events during this grace period.
      - `anniversaryCycle` boolean — Togai calculates the startOffsets based on the date of association instead of requiring from the user and these offsets will be applied as an override if this flag is enabled. Examples: WEEKLY - - 23/10/2023 (Monday) - {dayOffset: 1, monthOffset: NIL} - 25/10/2023 (Wednesday) - {dayOffset: 3, monthOffset: NIL} - 29/10/2023 (Sunday) - {dayOffset: 7, monthOffset: NIL} MONTHLY - - 1st Oct - {dayOffset: 1, monthOffset: NIL} - 12th Oct - {dayOffset: 12, monthOffset: NIL} - 28th Oct - {dayOffset: 28, monthOffset: NIL} - 30th Oct - {dayOffset: 30, monthOffset: NIL} - 31th Oct - {dayOffset: LAST, monthOffset: NIL} QUARTERLY - 15th Jan, 15th Apr, 15th Jul and 15th Oct - {dayOffset: 15, monthOffset: 1} - 15th Feb, 15th May, 15th Aug and 15th Nov - {dayOffset: 15, monthOffset: 2} - 15th Mar, 15th Jun, 15th Sep and 15th Dec - {dayOffset: 15, monthOffset: 3} HALF_YEARLY - 15th Jan and 15th Jul - {dayOffset: 15, monthOffset: 1} - 15th Apr and 15th Oct - {dayOffset: 15, monthOffset: 4} - 15th Jun and 15th Dec - {dayOffset: 15, monthOffset: 6} ANNUALLY - 15th Jan - {dayOffset: 15, monthOffset: 1} - 29th Feb on Leap year - {dayOffset: LAST, monthOffset: 2} - 28th Feb - {dayOffset: LAST, monthOffset: 2} - 15th Aug - {dayOffset: 15, monthOffset: 8} - 15th Dec - {dayOffset: 15, monthOffset: 12}
    - `supportedCurrencies` string[], required — List of currencies supported by the price plan
    - `usageRateCards` UsageRateCard[] — List of usage rate cards
      - `displayName` string — Name your rate card, this will be displayed in the Togai App
      - `tag` string — A tag string to group usageRateCards
      - `usageMeterId` string, required
      - `ratePlan` RatePlan, required — Contains all rate related configurations
        - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
        - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
          - `order` integer, required
          - `startAfter` number, required
          - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
          - `slabConfig` object
      - `rateValues` RateValue[], required
        - `currency` string, required
        - `slabRates` SlabRate[], required
          - `order` integer, required
          - `rate` number, required
          - `slabRateConfig` object
        - `rateConfig` object
    - `fixedFeeRateCards` FixedFeeRateCard[]
      - `id` string, required — Unique Identifier of the attached AddOn
      - `displayName` string — Name of the attached AddOn
      - `tag` string — A tag string to group fixedFeeRateCards
      - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID' — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
      - `type` 'ONE_TIME' | 'RECURRING' — Fixed fee applies either for a one-time occurrence or for each cycle.
      - `rateValues` CurrencyRateValue[], required
        - `currency` string, required
        - `rate` number, required
      - `enableProration` boolean, required
      - `recurrenceConfig` RecurrenceConfig
        - `interval` integer — Represents the number of pricing cycles after which the rate card will be charged
        - `offset` integer — Represents the offset for pricing cycles after which the rate card will be charged
    - `licenseRateCards` LicenseRateCard[]
      - `id` string, required — Unique Identifier of the attached AddOn
      - `type` 'LICENSE' | 'FIXED_FEE' | 'CREDIT_GRANT' | 'NAMED_LICENSE' — LICENSE: Addon can be used in license rate cards FIXED_FEE: Addon can be used in fixed fee rate cards CREDIT_GRANT: Addon can be used in credit grant rate cards NAMED_LICENSE: Addon can be used in license rate cards
      - `displayName` string — Name of the attached AddOn
      - `tag` string — A tag string to group licenseRateCards
      - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID' — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
      - `usageCycle` 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ANNUALLY' — UsageCycleInterval field allows you to treat the billing interval as many smaller windows. Revenue is calculated for each of the windows (usage cycles) and their sum is considered as the billing interval revenue. Example: 1 Named License being used across entire billing interval. Rate Value: $1/license CASE 1: Without usage cycle. $1 is charged for the entire billing cycle. CASE 2: Usage cycle is configure to be WEEKLY and the billing interval has 4 weeks. In this case $1 is charged for each week totalling to $4 across for the billing interval
      - `enableProration` boolean, required
      - `config` LicenseRateCardConfig
        - `maxQuantity` integer — Max allowed quantity for a particular license in a price plan
        - `maxQuantityBreachAction` 'DO_NOTHING' — Action to be taken when the license maxQuantity is breached: - `DO_NOTHING`: Refrain from granting any new licenses.
      - `ratePlan` RatePlan, required — Contains all rate related configurations
        - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
        - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
          - `order` integer, required
          - `startAfter` number, required
          - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
          - `slabConfig` object
      - `rateValues` RateValue[], required
        - `currency` string, required
        - `slabRates` SlabRate[], required
          - `order` integer, required
          - `rate` number, required
          - `slabRateConfig` object
        - `rateConfig` object
      - `proratedRefundMode` 'NONE' | 'CREDITS' | 'PAYMENT' | 'WALLET'
    - `billingEntitlementRateCards` BillingEntitlementRateCard[]
      - `featureId` string, required
      - `featureConfigs` FeatureConfig[], required
        - `effectiveFrom` string, duration
        - `effectiveUntil` string, duration, required
        - `featureCreditLimit` number, required
      - `tag` string — A tag string to group rate cards
      - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID', required — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
      - `displayName` string — Name your rate card, this will be used in invoice
      - `ratePlan` RatePlan, required — Contains all rate related configurations
        - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
        - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
          - `order` integer, required
          - `startAfter` number, required
          - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
          - `slabConfig` object
      - `rateValues` RateValue[], required
        - `currency` string, required
        - `slabRates` SlabRate[], required
          - `order` integer, required
          - `rate` number, required
          - `slabRateConfig` object
        - `rateConfig` object
      - `recurrenceConfig` RecurrenceConfig
        - `interval` integer — Represents the number of pricing cycles after which the rate card will be charged
        - `offset` integer — Represents the offset for pricing cycles after which the rate card will be charged
    - `minimumCommitment` MinimumCommitment
      - `displayName` string, required
      - `rateValues` CurrencyRateValue[], required
        - `currency` string, required
        - `rate` number, required
    - `creditGrantRateCards` CreditGrantRateCard[]
      - `id` string, required
      - `displayName` string
      - `tag` string — A tag string to group creditGrantRateCard
      - `grantDetails` GrantDetails, required — Grant details of Credit Grant Rate Card
        - `priority` integer, required
        - `expiryType` 'PRICING_CYCLE' | 'NO_EXPIRY' | 'CUSTOM', required — Expiry type of grant
        - `expiryDuration` string, duration
        - `applicableEntityIds` string[]
      - `rateDetails` CreditRateDetails, required — Amount to be credited
        - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
        - `currencySlabRateDetails` CurrencySlabRateDetail[], required
          - `currency` string, required
          - `creditAmount` number, required — The amount of credit that needs to be credited
          - `slabDetails` SlabDetail[], required
            - `startAfter` number, required
            - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
            - `slabConfig` object
            - `rate` number, required
            - `slabRateConfig` object
          - `rateConfig` object
      - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID' — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
      - `type` 'ONE_TIME' | 'RECURRING' — Credit grant applies either for a one-time occurrence or for each cycle.
      - `recurrenceConfig` RecurrenceConfig
        - `interval` integer — Represents the number of pricing cycles after which the rate card will be charged
        - `offset` integer — Represents the offset for pricing cycles after which the rate card will be charged
    - `entitlementOverageRateCards` EntitlementOverageRateCard[]
      - `featureId` string, required — Unique Identifier of the attached Feature
      - `displayName` string — Name to be displayed during invoice
      - `tag` string — A tag string to group rate cards
      - `maxQuantity` number — Maximum quantity allowed for the feature, if not specified, unlimited quantity is allowed
      - `ratePlan` RatePlan, required — Contains all rate related configurations
        - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
        - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
          - `order` integer, required
          - `startAfter` number, required
          - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
          - `slabConfig` object
      - `rateValues` RateValue[], required
        - `currency` string, required
        - `slabRates` SlabRate[], required
          - `order` integer, required
          - `rate` number, required
          - `slabRateConfig` object
        - `rateConfig` object
      - `billingConfig` BillingConfig
        - `interval` integer — Represents the number of pricing cycles after which the rate card will be billed
        - `startOffset` integer — Represents the offset for pricing cycles after which the rate card will be billed
    - `deferredRevenue` boolean — This option can be enabled while creating a price plan to opt for deferred revenue finalization. i.e, Togai will assume that the price plan may change any time during the pricing cycle and thereby does not compute the revenue in near-real time. This gives the flexibility of editing rate cards in price plan from beginning of the pricing cycle. Enabling this mode comes with the following limitations. 1. Following rate cards are not supported under a `deferredRevenue` plan * creditGrantRateCards, * billingEntitlementRateCards, * entitlementOverageRateCards, * IN_ADVANCE fixedFeeRateCards, * IN_ADVANCE licenseRateCards 2. Metrics API return revenue metrics only after the grace period of the account's pricing cycle (i.e, only once the invoice becomes DUE)
  - `pricingRules` CreatePricingRule[]
    - `name` string, required — Name of the pricing rule
    - `order` integer, required — Order of the pricing rule
    - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' — If IN_ADVANCE, the rule will be applied on rate cards with invoice timing IN_ADVANCE . If IN_ARREARS, the rule will be applied on rate cards with invoice timing IN_ARREARS .
    - `condition` string — JSON logic condition deciding whether to compute this pricing rule or not
    - `computation` string, required — JSON logic to be computed
    - `action` PricingRuleAction, required
      - `type` 'ADD' | 'UPDATE', required
      - `target` string
      - `id` string
      - `description` string
      - `metadata` object

## Response `200`

Response for Create and Get price plan requests

- PricePlan — Price plan entity
  - `id` string, required — Price plan id
  - `name` string, required — Name of the price plan
  - `type` 'BILLING' | 'PURCHASE', required — Type of price plan
  - `description` string — Description of price plan
  - `status` 'DRAFT' | 'ACTIVE' | 'ARCHIVED', required — Status of Price plan
  - `pricingSchedule` PricingSchedule[], required
    - `id` string, required
    - `pricePlanDetails` PricePlanDetails
      - `supportedCurrencies` string[], required
      - `activeCurrencies` string[], required
      - `pricingCycleConfig` PricingCycleConfig — Represents configurations related to pricing cycle
        - `interval` 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ANNUALLY', required — Interval field allow you to define the billing interval you would like to set
        - `startOffset` object — Represents the start of pricing cycle in terms of - dayOffset - number of days from beginning of week / month and - monthOffset - number of months from beginning of interval (quarter, half-year or year) Note: If a day with offset doesn't exist for a month, closest previous day is considered Examples: WEEKLY - - {dayOffset: 1, monthOffset: NIL} - First day of every week (Monday) - {dayOffset: 3, monthOffset: NIL} - 3rd day of every week (Wednesday) - {dayOffset: LAST, monthOffset: NIL} - Last day of every week (Sunday) MONTHLY - - {dayOffset: 1, monthOffset: NIL} - First day of every month - {dayOffset: 12, monthOffset: NIL} - 12th of every month - {dayOffset: 28, monthOffset: NIL} - 28th of every month. i.e, 28th of Jan, 28th of Feb, ... - {dayOffset: 30, monthOffset: NIL} - 30th of every month. i.e, 28th of Jan, 28th of Feb, ... - {dayOffset: LAST, monthOffset: NIL} - Last day of every month. i.e, 31st of Jan, 28th of Feb, ... QUARTERLY - {dayOffset: 15, monthOffset: FIRST} - 15th Jan, 15th Apr, 15th Jul and 15th Oct - {dayOffset: 15, monthOffset: 2} - 15th Feb, 15th May, 15th Aug and 15th Nov - {dayOffset: 15, monthOffset: LAST} - 15th Mar, 15th Jun, 15th Sep and 15th Dec - {dayOffset: LAST, monthOffset: FIRST} - 31st Jan, 30th Apr, 30th Jul and 31th Oct HALF_YEARLY - {dayOffset: 15, monthOffset: FIRST} - 15th Jan and 15th Jul - {dayOffset: 15, monthOffset: 4} - 15th Apr and 15th Oct - {dayOffset: 15, monthOffset: LAST} - 15th Jun and 15th Dec ANNUALLY - {dayOffset: 15, monthOffset: FIRST} - 15th Jan - {dayOffset: 15, monthOffset: 1} - 15th Jan - {dayOffset: LAST, monthOffset: 2} - 29th Feb on Leap year, 28th otherwise - {dayOffset: 15, monthOffset: 8} - 15th Aug - {dayOffset: 15, monthOffset: LAST} - 15th Dec
          - `dayOffset` string, required — If interval is WEEKLY, min: "1" and max: "7" as strings. Spl. string allowed: LAST Otherwise, min: "1" and max: "31" as strings. Spl. string allowed: LAST
          - `monthOffset` string, required — min: "1" and max: "12". Spl. string allowed: FIRST / LAST. For QUARTERLY only 1 - 3 is allowed and for HALF_YEARLY 1 - 6. This being an optional field, shouldn't be passed for MONTHLY.
        - `gracePeriod` integer, required — Togai allows you to ingest past dated events that will be processed by a pricing cycle till the end grace period. For example: Pricing cycle is Monthly from 1st to 30th and gracePeriod is 5 days which next month 1 to 5th date, you can ingest past dated events during this grace period.
        - `anniversaryCycle` boolean — Togai calculates the startOffsets based on the date of association instead of requiring from the user and these offsets will be applied as an override if this flag is enabled. Examples: WEEKLY - - 23/10/2023 (Monday) - {dayOffset: 1, monthOffset: NIL} - 25/10/2023 (Wednesday) - {dayOffset: 3, monthOffset: NIL} - 29/10/2023 (Sunday) - {dayOffset: 7, monthOffset: NIL} MONTHLY - - 1st Oct - {dayOffset: 1, monthOffset: NIL} - 12th Oct - {dayOffset: 12, monthOffset: NIL} - 28th Oct - {dayOffset: 28, monthOffset: NIL} - 30th Oct - {dayOffset: 30, monthOffset: NIL} - 31th Oct - {dayOffset: LAST, monthOffset: NIL} QUARTERLY - 15th Jan, 15th Apr, 15th Jul and 15th Oct - {dayOffset: 15, monthOffset: 1} - 15th Feb, 15th May, 15th Aug and 15th Nov - {dayOffset: 15, monthOffset: 2} - 15th Mar, 15th Jun, 15th Sep and 15th Dec - {dayOffset: 15, monthOffset: 3} HALF_YEARLY - 15th Jan and 15th Jul - {dayOffset: 15, monthOffset: 1} - 15th Apr and 15th Oct - {dayOffset: 15, monthOffset: 4} - 15th Jun and 15th Dec - {dayOffset: 15, monthOffset: 6} ANNUALLY - 15th Jan - {dayOffset: 15, monthOffset: 1} - 29th Feb on Leap year - {dayOffset: LAST, monthOffset: 2} - 28th Feb - {dayOffset: LAST, monthOffset: 2} - 15th Aug - {dayOffset: 15, monthOffset: 8} - 15th Dec - {dayOffset: 15, monthOffset: 12}
      - `usageRateCards` UsageRateCard[]
        - `displayName` string — Name your rate card, this will be displayed in the Togai App
        - `tag` string — A tag string to group usageRateCards
        - `usageMeterId` string, required
        - `ratePlan` RatePlan, required — Contains all rate related configurations
          - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
          - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
            - `order` integer, required
            - `startAfter` number, required
            - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
            - `slabConfig` object
        - `rateValues` RateValue[], required
          - `currency` string, required
          - `slabRates` SlabRate[], required
            - `order` integer, required
            - `rate` number, required
            - `slabRateConfig` object
          - `rateConfig` object
      - `fixedFeeRateCards` FixedFeeRateCard[]
        - `id` string, required — Unique Identifier of the attached AddOn
        - `displayName` string — Name of the attached AddOn
        - `tag` string — A tag string to group fixedFeeRateCards
        - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID' — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
        - `type` 'ONE_TIME' | 'RECURRING' — Fixed fee applies either for a one-time occurrence or for each cycle.
        - `rateValues` CurrencyRateValue[], required
          - `currency` string, required
          - `rate` number, required
        - `enableProration` boolean, required
        - `recurrenceConfig` RecurrenceConfig
          - `interval` integer — Represents the number of pricing cycles after which the rate card will be charged
          - `offset` integer — Represents the offset for pricing cycles after which the rate card will be charged
      - `licenseRateCards` LicenseRateCard[]
        - `id` string, required — Unique Identifier of the attached AddOn
        - `type` 'LICENSE' | 'FIXED_FEE' | 'CREDIT_GRANT' | 'NAMED_LICENSE' — LICENSE: Addon can be used in license rate cards FIXED_FEE: Addon can be used in fixed fee rate cards CREDIT_GRANT: Addon can be used in credit grant rate cards NAMED_LICENSE: Addon can be used in license rate cards
        - `displayName` string — Name of the attached AddOn
        - `tag` string — A tag string to group licenseRateCards
        - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID' — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
        - `usageCycle` 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'HALF_YEARLY' | 'ANNUALLY' — UsageCycleInterval field allows you to treat the billing interval as many smaller windows. Revenue is calculated for each of the windows (usage cycles) and their sum is considered as the billing interval revenue. Example: 1 Named License being used across entire billing interval. Rate Value: $1/license CASE 1: Without usage cycle. $1 is charged for the entire billing cycle. CASE 2: Usage cycle is configure to be WEEKLY and the billing interval has 4 weeks. In this case $1 is charged for each week totalling to $4 across for the billing interval
        - `enableProration` boolean, required
        - `config` LicenseRateCardConfig
          - `maxQuantity` integer — Max allowed quantity for a particular license in a price plan
          - `maxQuantityBreachAction` 'DO_NOTHING' — Action to be taken when the license maxQuantity is breached: - `DO_NOTHING`: Refrain from granting any new licenses.
        - `ratePlan` RatePlan, required — Contains all rate related configurations
          - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
          - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
            - `order` integer, required
            - `startAfter` number, required
            - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
            - `slabConfig` object
        - `rateValues` RateValue[], required
          - `currency` string, required
          - `slabRates` SlabRate[], required
            - `order` integer, required
            - `rate` number, required
            - `slabRateConfig` object
          - `rateConfig` object
        - `proratedRefundMode` 'NONE' | 'CREDITS' | 'PAYMENT' | 'WALLET'
      - `billingEntitlementRateCards` BillingEntitlementRateCard[]
        - `featureId` string, required
        - `featureConfigs` FeatureConfig[], required
          - `effectiveFrom` string, duration
          - `effectiveUntil` string, duration, required
          - `featureCreditLimit` number, required
        - `tag` string — A tag string to group rate cards
        - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID', required — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
        - `displayName` string — Name your rate card, this will be used in invoice
        - `ratePlan` RatePlan, required — Contains all rate related configurations
          - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
          - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
            - `order` integer, required
            - `startAfter` number, required
            - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
            - `slabConfig` object
        - `rateValues` RateValue[], required
          - `currency` string, required
          - `slabRates` SlabRate[], required
            - `order` integer, required
            - `rate` number, required
            - `slabRateConfig` object
          - `rateConfig` object
        - `recurrenceConfig` RecurrenceConfig
          - `interval` integer — Represents the number of pricing cycles after which the rate card will be charged
          - `offset` integer — Represents the offset for pricing cycles after which the rate card will be charged
      - `entitlementOverageRateCards` EntitlementOverageRateCard[]
        - `featureId` string, required — Unique Identifier of the attached Feature
        - `displayName` string — Name to be displayed during invoice
        - `tag` string — A tag string to group rate cards
        - `maxQuantity` number — Maximum quantity allowed for the feature, if not specified, unlimited quantity is allowed
        - `ratePlan` RatePlan, required — Contains all rate related configurations
          - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
          - `slabs` Slab[], required — Rate cards can have single or multiple slab up to 100.
            - `order` integer, required
            - `startAfter` number, required
            - `priceType` 'FLAT' | 'PER_UNIT' | 'PACKAGE', required
            - `slabConfig` object
        - `rateValues` RateValue[], required
          - `currency` string, required
          - `slabRates` SlabRate[], required
            - `order` integer, required
            - `rate` number, required
            - `slabRateConfig` object
          - `rateConfig` object
        - `billingConfig` BillingConfig
          - `interval` integer — Represents the number of pricing cycles after which the rate card will be billed
          - `startOffset` integer — Represents the offset for pricing cycles after which the rate card will be billed
      - `minimumCommitment` MinimumCommitment
        - `displayName` string, required
        - `rateValues` CurrencyRateValue[], required
          - `currency` string, required
          - `rate` number, required
      - `creditGrantRateCards` CreditGrantRateCard[]
        - `id` string, required
        - `displayName` string
        - `tag` string — A tag string to group creditGrantRateCard
        - `grantDetails` GrantDetails, required — Grant details of Credit Grant Rate Card
          - `priority` integer, required
          - `expiryType` 'PRICING_CYCLE' | 'NO_EXPIRY' | 'CUSTOM', required — Expiry type of grant
          - `expiryDuration` string, duration
          - `applicableEntityIds` string[]
        - `rateDetails` CreditRateDetails, required — Amount to be credited
          - `pricingModel` 'TIERED' | 'VOLUME', required — Togai supports two type of pricing model Tiered and Volume. Tiered pricing model applies respective slab and its rate to the usage value while volume pricing model applies the latest matching slab of the usage value and applies respective rate. For more understanding read [Rate Cards](https://docs.togai.com/docs/priceplan#setting-up-multiple-rate-cards)
          - `currencySlabRateDetails` CurrencySlabRateDetail[], required
            - `currency` string, required
            - `creditAmount` number, required — The amount of credit that needs to be credited
            - `slabDetails` SlabDetail[], required
              - …
            - `rateConfig` object
        - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' | 'PREPAID' — If IN_ADVANCE, the rate card will be invoiced in the previous billing cycle. If IN_ARREARS, the rate card will be invoiced in the current billing cycle. If PREPAID, credits/entitlements will be granted only after invoice is paid
        - `type` 'ONE_TIME' | 'RECURRING' — Credit grant applies either for a one-time occurrence or for each cycle.
        - `recurrenceConfig` RecurrenceConfig
          - `interval` integer — Represents the number of pricing cycles after which the rate card will be charged
          - `offset` integer — Represents the offset for pricing cycles after which the rate card will be charged
      - `type` 'BILLING' | 'PURCHASE' — Type of price plan
      - `deferredRevenue` boolean
    - `startDate` string, date-time, required
    - `endDate` string, date-time, required
    - `version` integer, required
    - `pricingRules` PricingRule[]
      - `id` string, required
      - `name` string, required
      - `version` integer, required
      - `invoiceTiming` 'IN_ADVANCE' | 'IN_ARREARS' — If IN_ADVANCE, the rule will be applied on rate cards with invoice timing IN_ADVANCE . If IN_ARREARS, the rule will be applied on rate cards with invoice timing IN_ARREARS .
      - `order` integer, required
      - `condition` string — JSON logic condition deciding whether to compute this pricing rule or not
      - `computation` string, required — JSON logic to be computed
      - `action` PricingRuleAction, required
        - `type` 'ADD' | 'UPDATE', required
        - `target` string
        - `id` string
        - `description` string
        - `metadata` object
    - `isOverriden` boolean, required

## Other responses

- `400` — Error response
- `401` — Error response
- `403` — Error response
- `404` — Error response
- `429` — Error response
- `default` — Error response

---

[API](https://skmtc.net/togaihq/apis/togai-apis.md) · [All operations](https://skmtc.net/togaihq/apis/togai-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/togaihq/togai-apis/revisions/442f5d8f4aa0/schema)
