---
title: "Get a specific purchase of an account"
method: GET
path: "/purchases/{purchase_id}"
tags: ["Accounts"]
---

# Get a specific purchase of an account

`GET /purchases/{purchase_id}`

Get purchase information of an account for a specific plan using account_id and price_plan_id

## Path parameters

- `purchase_id` string, required

## Response `200`

Response for getting a specific purchase detail of an account

- GetPurchaseResponse — Represents a Purchase
  - `id` string, required
  - `accountId` string, required
  - `pricePlanId` string — Id of the price plan, Required for ENTITLEMENT_GRANT, ASSOCIATION purchase
  - `quantity` integer
  - `rateCardQuantities` object
  - `idempotencyKey` string
  - `pricePlanVersion` integer
  - `purchasePlanOverride` PricePlanDetailsOverride
    - `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[]
    - `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
    - `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
    - `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'
    - `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
  - `associationOverride` CreatePricePlanDetailsOverride
    - `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[]
    - `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
    - `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
    - `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'
    - `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
  - `walletTopupDetails` WalletTopupDetails — Information related to wallet topup purchase
    - `purchaseAmount` number — Specifies the amount to be paid to top up wallet with the specified top up amount. If left null, purchase amount will be same as top up amount
    - `topupAmount` number, required — Specifies the value to be topped up in the wallet
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time
  - `effectiveFrom` string, date
  - `effectiveUntil` string, date
  - `expiryDate` string, date-time
  - `price` number
  - `invoiceId` string
  - `invoiceCurrency` string
  - `status` 'SUCCESS' | 'FAILURE' | 'PENDING' | 'IN_PROGRESS' | 'PROPOSAL_ACTIVE' | 'PROPOSAL_APPROVED' | 'PROPOSAL_DECLINED' | 'PROPOSAL_EXPIRED', required — Status of the purchase
  - `type` 'ENTITLEMENT_GRANT' | 'ASSOCIATION' | 'WALLET_TOPUP' | 'PREPAID', required — Specifies whether this purchase is for granting entitlements or for an association or for wallet topup or prepaid purchase. If left null, ENTITLEMENT_GRANT is taken as default
  - `comment` string
  - `purchasePlan` 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
            - `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
    - `type` 'BILLING' | 'PURCHASE' — Type of price plan
    - `deferredRevenue` boolean
  - `features` object[]
    - `id` string, required
    - `name` string, required
    - `creditsGranted` number, required
    - `creditsAvailable` number, required
    - `updatedAt` string, date-time, required
    - `effectiveFrom` string, date-time, required
    - `effectiveUntil` string, date-time, 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)
