> ## Documentation Index
> Fetch the complete documentation index at: https://togai.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a specific purchase of an account

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



## OpenAPI

````yaml get /purchases/{purchase_id}
openapi: 3.0.3
info:
  version: '1.0'
  title: Togai Apis
  contact:
    email: engg@togai.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  description: APIs for Togai App
servers:
  - description: Api endpoint
    url: https://api.togai.com/
  - description: Sandbox api endpoint
    url: https://sandbox-api.togai.com/
security:
  - bearerAuth: []
tags:
  - name: Customers
    description: Customer level calls
  - name: Accounts
    description: Account level calls
  - name: Event Schemas
    description: Event Schema level calls
  - name: Usage Meters
    description: Usage Meter level calls
  - name: Price Plans
    description: Price Plan level calls
  - name: Settings
    description: Settings
  - name: Price Experimentation
    description: Price Experimentation apis
  - name: InvoiceGroups
    description: Invoice Group level calls
  - name: Organization
    description: Organization level calls
  - name: FileStorage
    description: File Storage level calls
  - name: Aliases
    description: Alias level calls
  - name: Event Management
    description: APIs for getting events ingested in Togai
    externalDocs:
      description: docs
      url: https://togai.com/docs/billing/events
  - name: Metrics
    description: APIs for getting Togai metrics
    externalDocs:
      description: docs
      url: https://togai.com/docs/metrics
  - name: Licenses
    description: APIs for getting or updating license records in Togai
  - name: Entitlements
    description: APIs related to entitlements
  - name: Invoices
    description: Invoices API
  - name: Credits
    description: Credits API
  - name: Wallet
    description: Wallet API
  - name: InvoiceTemplates
    description: InvoiceTemplates API
  - name: Payments
    description: Payments API
  - name: Authentication
    description: Authentication API
externalDocs:
  description: Find out more about Togai
  url: https://docs.togai.com/docs
paths:
  /purchases/{purchase_id}:
    get:
      tags:
        - Accounts
      summary: Get a specific purchase of an account
      description: >-
        Get purchase information of an account for a specific plan using
        account_id and price_plan_id
      operationId: getPurchase
      parameters:
        - $ref: '#/components/parameters/purchase_id'
      responses:
        '200':
          $ref: '#/components/responses/GetPurchaseResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '401':
          $ref: '#/components/responses/ErrorResponse'
        '403':
          $ref: '#/components/responses/ErrorResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '429':
          $ref: '#/components/responses/ErrorResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  parameters:
    purchase_id:
      in: path
      name: purchase_id
      required: true
      schema:
        type: string
        maxLength: 50
        example: purchase.1zYnCiM9Bpg.lv25y
  responses:
    GetPurchaseResponse:
      description: Response for getting a specific purchase detail of an account
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetPurchaseResponse'
          examples:
            GetPurchaseForEntitlementPlanResponse:
              $ref: '#/components/examples/GetPurchaseForEntitlementPlanResponse'
            GetPurchaseForPurchasePlanResponse:
              $ref: '#/components/examples/GetPurchaseForPurchasePlanResponse'
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            ErrorResponse:
              summary: Error message
              value:
                message: <Reason message>
  schemas:
    GetPurchaseResponse:
      allOf:
        - $ref: '#/components/schemas/Purchase'
        - type: object
          additionalProperties: false
          properties:
            price:
              type: number
            invoiceCurrency:
              type: string
            purchasePlan:
              $ref: '#/components/schemas/PurchasePlanOverride'
            features:
              type: array
              items:
                title: PurchaseFeatureDetails
                type: object
                additionalProperties: false
                required:
                  - id
                  - name
                  - creditsGranted
                  - creditsAvailable
                  - updatedAt
                  - effectiveFrom
                  - effectiveUntil
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  creditsGranted:
                    type: number
                  creditsAvailable:
                    type: number
                  updatedAt:
                    type: string
                    format: date-time
                  effectiveFrom:
                    type: string
                    format: date-time
                  effectiveUntil:
                    type: string
                    format: date-time
    ErrorResponse:
      type: object
      additionalProperties: false
      required:
        - message
      properties:
        message:
          type: string
          description: error description
          maxLength: 500
    Purchase:
      type: object
      description: Represents a Purchase
      additionalProperties: false
      required:
        - id
        - accountId
        - pricePlanId
        - pricePlanVersion
        - createdAt
        - status
        - type
      properties:
        id:
          type: string
        accountId:
          type: string
          minLength: 1
        pricePlanId:
          type: string
          minLength: 1
        quantity:
          type: integer
          format: int32
        rateCardQuantities:
          type: object
          additionalProperties:
            type: number
        idempotencyKey:
          type: string
        pricePlanVersion:
          type: integer
          format: int32
        purchasePlanOverride:
          $ref: '#/components/schemas/PricePlanDetailsOverride'
        associationOverride:
          $ref: '#/components/schemas/CreatePricePlanDetailsOverride'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        effectiveFrom:
          type: string
          format: date
        effectiveUntil:
          type: string
          format: date
        expiryDate:
          type: string
          format: date-time
        price:
          type: number
        invoiceId:
          type: string
        invoiceCurrency:
          type: string
        status:
          $ref: '#/components/schemas/PurchaseStatus'
        type:
          type: string
          enum:
            - ENTITLEMENT_GRANT
            - ASSOCIATION
        comment:
          type: string
    PurchasePlanOverride:
      description: >-
        entitlements override options for purchase of a price plan for an
        account
      type: object
      additionalProperties: false
      properties:
        rateDetails:
          $ref: '#/components/schemas/RateDetails'
        entitlementRateCards:
          type: array
          maxItems: 50
          items:
            $ref: '#/components/schemas/EntitlementRateCard'
        billingEntitlementRateCards:
          type: array
          maxItems: 50
          items:
            $ref: '#/components/schemas/BillingEntitlementRateCard'
        creditGrantRateCards:
          type: array
          maxItems: 50
          items:
            $ref: '#/components/schemas/CreditGrantRateCard'
    PricePlanDetailsOverride:
      allOf:
        - $ref: '#/components/schemas/CreatePricePlanDetailsOverride'
        - type: object
          properties:
            fixedFeeRateCards:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/FixedFeeRateCard'
    CreatePricePlanDetailsOverride:
      type: object
      properties:
        pricingCycleConfig:
          $ref: '#/components/schemas/PricingCycleConfig'
        supportedCurrencies:
          type: array
          uniqueItems: true
          minItems: 1
          items:
            type: string
        usageRateCards:
          type: array
          items:
            $ref: '#/components/schemas/UsageRateCard'
        billingEntitlementRateCards:
          type: array
          items:
            $ref: '#/components/schemas/BillingEntitlementRateCard'
        entitlementOverageRateCards:
          type: array
          items:
            $ref: '#/components/schemas/EntitlementOverageRateCard'
        fixedFeeRateCards:
          type: array
          items:
            $ref: '#/components/schemas/FixedFeeRateCard'
        licenseRateCards:
          type: array
          items:
            $ref: '#/components/schemas/LicenseRateCard'
        minimumCommitment:
          $ref: '#/components/schemas/MinimumCommitment'
        rateDetails:
          $ref: '#/components/schemas/RateDetails'
        entitlementRateCards:
          type: array
          maxItems: 50
          items:
            $ref: '#/components/schemas/EntitlementRateCard'
        creditGrantRateCards:
          type: array
          items:
            $ref: '#/components/schemas/CreditGrantRateCard'
    PurchaseStatus:
      type: string
      enum:
        - SUCCESS
        - FAILURE
        - PENDING
        - IN_PROGRESS
        - PROPOSAL_ACTIVE
        - PROPOSAL_APPROVED
        - PROPOSAL_DECLINED
        - PROPOSAL_EXPIRED
      description: Status of the purchase
    RateDetails:
      type: object
      description: rate details for a price plan
      additionalProperties: false
      required:
        - rateValues
        - ratePlan
      properties:
        rateValues:
          type: array
          items:
            $ref: '#/components/schemas/RateValue'
        ratePlan:
          $ref: '#/components/schemas/RatePlan'
    EntitlementRateCard:
      description: Entitlement type rate card
      type: object
      additionalProperties: false
      required:
        - featureId
        - featureConfigs
      properties:
        featureId:
          type: string
        featureConfigs:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/FeatureConfig'
    BillingEntitlementRateCard:
      allOf:
        - $ref: '#/components/schemas/EntitlementRateCard'
        - type: object
          required:
            - ratePlan
            - rateValues
            - invoiceTiming
          properties:
            tag:
              type: string
              description: A tag string to group rate cards
            invoiceTiming:
              $ref: '#/components/schemas/InvoiceTiming'
            displayName:
              type: string
              description: Name your rate card, this will be used in invoice
            ratePlan:
              $ref: '#/components/schemas/RatePlan'
            rateValues:
              type: array
              items:
                $ref: '#/components/schemas/RateValue'
            recurrenceConfig:
              $ref: '#/components/schemas/RecurrenceConfig'
    CreditGrantRateCard:
      description: Credit grant rate card
      type: object
      additionalProperties: false
      required:
        - id
        - rateDetails
        - grantDetails
      properties:
        id:
          type: string
        displayName:
          type: string
        tag:
          type: string
          description: A tag string to group creditGrantRateCard
        grantDetails:
          $ref: '#/components/schemas/GrantDetails'
        rateDetails:
          $ref: '#/components/schemas/CreditRateDetails'
        invoiceTiming:
          $ref: '#/components/schemas/InvoiceTiming'
        type:
          $ref: '#/components/schemas/CreditGrantType'
        recurrenceConfig:
          $ref: '#/components/schemas/RecurrenceConfig'
    FixedFeeRateCard:
      title: FixedFeeRateCard
      type: object
      required:
        - id
        - rateValues
        - enableProration
      properties:
        id:
          description: Unique Identifier of the attached AddOn
          type: string
          maxLength: 50
        displayName:
          type: string
          description: Name of the attached AddOn
        tag:
          type: string
          description: A tag string to group fixedFeeRateCards
        invoiceTiming:
          $ref: '#/components/schemas/InvoiceTiming'
        type:
          $ref: '#/components/schemas/FixedFeeType'
        rateValues:
          type: array
          items:
            $ref: '#/components/schemas/CurrencyRateValue'
        enableProration:
          type: boolean
          example: false
        recurrenceConfig:
          $ref: '#/components/schemas/RecurrenceConfig'
    PricingCycleConfig:
      type: object
      description: Represents configurations related to pricing cycle
      required:
        - interval
        - gracePeriod
      properties:
        interval:
          type: string
          description: >-
            Interval field allow you to define the billing interval you would
            like to set
          enum:
            - WEEKLY
            - MONTHLY
            - QUARTERLY
            - HALF_YEARLY
            - ANNUALLY
        startOffset:
          type: object
          description: >
            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
          required:
            - dayOffset
            - monthOffset
          properties:
            dayOffset:
              type: string
              description: >
                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:
              type: string
              description: >
                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:
          type: integer
          description: >
            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.
          format: int32
          example: 3
        anniversaryCycle:
          type: boolean
          description: >
            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}
    UsageRateCard:
      type: object
      required:
        - usageMeterId
        - ratePlan
        - rateValues
      properties:
        displayName:
          type: string
          description: Name your rate card, this will be displayed in the Togai App
        tag:
          type: string
          description: A tag string to group usageRateCards
        usageMeterId:
          type: string
          example: um.1zYnCiM9Bpg.1zYn
        ratePlan:
          $ref: '#/components/schemas/RatePlan'
        rateValues:
          type: array
          items:
            $ref: '#/components/schemas/RateValue'
    EntitlementOverageRateCard:
      type: object
      required:
        - ratePlan
        - rateValues
        - featureId
      properties:
        featureId:
          type: string
          description: Unique Identifier of the attached Feature
          maxLength: 50
        displayName:
          type: string
          description: Name to be displayed during invoice
        tag:
          type: string
          description: A tag string to group rate cards
        maxQuantity:
          type: number
          description: >-
            Maximum quantity allowed for the feature, if not specified,
            unlimited quantity is allowed
        ratePlan:
          $ref: '#/components/schemas/RatePlan'
        rateValues:
          type: array
          items:
            $ref: '#/components/schemas/RateValue'
        billingConfig:
          $ref: '#/components/schemas/BillingConfig'
          description: >-
            Represents the billing config of the entitlement overage rate card.
            If not specified interval:1 and startOffset:0 is taken as default
            value
    LicenseRateCard:
      title: LicenseRateCard
      type: object
      required:
        - id
        - rateValues
        - ratePlan
        - enableProration
      properties:
        id:
          description: Unique Identifier of the attached AddOn
          type: string
          maxLength: 50
        displayName:
          type: string
          description: Name of the attached AddOn
        tag:
          type: string
          description: A tag string to group licenseRateCards
        invoiceTiming:
          $ref: '#/components/schemas/InvoiceTiming'
        enableProration:
          type: boolean
          example: false
        config:
          $ref: '#/components/schemas/LicenseRateCardConfig'
        ratePlan:
          $ref: '#/components/schemas/RatePlan'
        rateValues:
          type: array
          items:
            $ref: '#/components/schemas/RateValue'
        proratedRefundMode:
          $ref: '#/components/schemas/ProratedRefundMode'
    MinimumCommitment:
      title: MinimumCommitment
      type: object
      required:
        - displayName
        - rateValues
      properties:
        displayName:
          type: string
        rateValues:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CurrencyRateValue'
    RateValue:
      type: object
      description: Represents a rate
      required:
        - currency
        - slabRates
      properties:
        currency:
          type: string
        slabRates:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/SlabRate'
    RatePlan:
      type: object
      description: Contains all rate related configurations
      required:
        - pricingModel
        - slabs
      properties:
        pricingModel:
          $ref: '#/components/schemas/PricingModel'
        slabs:
          description: Rate cards can have single or multiple slab up to 100.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Slab'
    FeatureConfig:
      description: Feature configuration object
      type: object
      additionalProperties: false
      required:
        - effectiveUntil
        - featureCreditLimit
      properties:
        effectiveFrom:
          type: string
          format: duration
        effectiveUntil:
          type: string
          format: duration
        featureCreditLimit:
          type: number
          minimum: 0
    InvoiceTiming:
      type: string
      enum:
        - IN_ADVANCE
        - IN_ARREARS
      x-enum-varnames:
        - IN_ADVANCE
        - IN_ARREARS
      description: >
        If IN_ADVANCE, the fixed fee will be invoiced in the previous billing
        cycle.

        If IN_ARREARS, the fixed fee will be invoiced in the current billing
        cycle.
    RecurrenceConfig:
      type: object
      properties:
        interval:
          description: >-
            Represents the number of pricing cycles after which the rate card
            will be charged
          type: integer
          format: int64
          example: 3
        offset:
          description: >-
            Represents the offset for pricing cycles after which the rate card
            will be charged
          type: integer
          format: int64
          example: 5
    GrantDetails:
      description: Grant details of Credit Grant Rate Card
      type: object
      additionalProperties: false
      required:
        - priority
        - expiryType
      properties:
        priority:
          type: integer
          minimum: 0
        expiryType:
          $ref: '#/components/schemas/ExpiryType'
        expiryDuration:
          type: string
          format: duration
        applicableEntityIds:
          type: array
          items:
            type: string
    CreditRateDetails:
      type: object
      description: Amount to be credited
      additionalProperties: false
      required:
        - pricingModel
        - currencySlabRateDetails
      properties:
        pricingModel:
          $ref: '#/components/schemas/PricingModel'
        currencySlabRateDetails:
          type: array
          items:
            $ref: '#/components/schemas/CurrencySlabRateDetail'
    CreditGrantType:
      type: string
      enum:
        - ONE_TIME
        - RECURRING
      description: Credit grant applies either for a one-time occurrence or for each cycle.
    FixedFeeType:
      type: string
      enum:
        - ONE_TIME
        - RECURRING
      description: Fixed fee applies either for a one-time occurrence or for each cycle.
    CurrencyRateValue:
      type: object
      required:
        - currency
        - rate
      properties:
        currency:
          type: string
        rate:
          type: number
    BillingConfig:
      type: object
      properties:
        interval:
          description: >-
            Represents the number of pricing cycles after which the rate card
            will be billed
          type: integer
          format: int64
          example: 3
        startOffset:
          description: >-
            Represents the offset for pricing cycles after which the rate card
            will be billed
          type: integer
          format: int64
          example: 5
    LicenseRateCardConfig:
      title: LicenseRateCardConfig
      type: object
      properties:
        maxQuantity:
          description: Max allowed quantity for a particular license in a price plan
          type: integer
          format: int64
          example: 100
        maxQuantityBreachAction:
          $ref: '#/components/schemas/MaxQuantityBreachAction'
    ProratedRefundMode:
      type: string
      enum:
        - NONE
        - CREDITS
        - PAYMENT
    SlabRate:
      type: object
      description: Represents a rate for a slab
      required:
        - order
        - rate
      properties:
        order:
          type: integer
          format: int32
        rate:
          type: number
        slabRateConfig:
          type: object
          additionalProperties:
            type: string
    PricingModel:
      type: string
      description: >
        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)
      enum:
        - TIERED
        - VOLUME
    Slab:
      type: object
      description: Represents a pricing priceType (rates + slabs) for usage price plan
      required:
        - order
        - startAfter
        - priceType
      properties:
        order:
          type: integer
          format: int32
          minimum: 1
          maximum: 10
        startAfter:
          type: number
        priceType:
          $ref: '#/components/schemas/PriceType'
        slabConfig:
          type: object
          additionalProperties:
            type: string
    ExpiryType:
      type: string
      description: Expiry type of grant
      enum:
        - PRICING_CYCLE
        - NO_EXPIRY
        - CUSTOM
    CurrencySlabRateDetail:
      type: object
      description: The association of a currency along with its slab detail
      additionalProperties: false
      required:
        - currency
        - creditAmount
        - slabDetails
      properties:
        currency:
          type: string
        creditAmount:
          type: number
          description: The amount of credit that needs to be credited
          minimum: 0
        slabDetails:
          type: array
          items:
            $ref: '#/components/schemas/SlabDetail'
    MaxQuantityBreachAction:
      type: string
      enum:
        - DO_NOTHING
      description: |
        Action to be taken when the license maxQuantity is breached: 
        - `DO_NOTHING`: Refrain from granting any new licenses.
    PriceType:
      type: string
      enum:
        - FLAT
        - PER_UNIT
        - PACKAGE
    SlabDetail:
      type: object
      description: The details of a slab
      additionalProperties: false
      required:
        - startAfter
        - priceType
        - rate
      properties:
        startAfter:
          type: number
        priceType:
          $ref: '#/components/schemas/PriceType'
        slabConfig:
          type: object
          additionalProperties:
            type: string
        rate:
          type: number
        slabRateConfig:
          type: object
          additionalProperties:
            type: string
  examples:
    GetPurchaseForEntitlementPlanResponse:
      value:
        id: purchase.1zYnCiM9Bpg.lv25y
        accountId: G234DZZKBKACATFFGVGEMERFI
        pricePlanId: pp.1zYnCiM9Bpg.lv25y
        quantity: 1
        idempotencyKey: AAAAABBBDDIIEOO42
        pricePlanVersion: 1
        purchasePlan:
          rateValues:
            - CurrencyRateValue:
                currency: USD
                rate: 10
            - CurrencyRateValue:
                currency: INR
                rate: 150
          entitlementRateCards:
            - EntitlementRateCard:
                featureId: feature.1zYnCiM9Bpg.lv25y
                featureCredits: 100
                expiryDurationSeconds: 1000
        features:
          - id: feature.1zYnCiM9Bpg.lv25y
            name: DiscountCredits
            description: Discount Credits Feature
            effectiveUntil: '2020-01-01T00:00:00Z'
            grantedCredits: 100
            credits: 100
            updatedAt: '2020-01-01T00:00:00Z'
        createdAt: '2020-01-01T00:00:00Z'
        updatedAt: '2020-01-01T00:00:00Z'
    GetPurchaseForPurchasePlanResponse:
      value:
        id: purchase.20txx14r0m8.VKxaB
        accountId: c102
        pricePlanId: pp.20txw0FrqjQ.byM8V
        pricePlanVersion: 1
        createdAt: '2023-07-31T15:49:25.007848Z'
        status: SUCCESS
        purchasePlan:
          billingEntitlementRateCards:
            - featureId: feature.20txvOAhiIS.m3X3d
              featureConfigs:
                - effectiveUntil: P20D
                  featureCreditLimit: 100
                  effectiveFrom: PT0S
              invoiceTiming: IN_ADVANCE
              ratePlan:
                pricingModel: TIERED
                slabs:
                  - order: 1
                    startAfter: 0
                    priceType: PER_UNIT
                    slabConfig: null
              rateValues:
                - currency: USD
                  slabRates:
                    - order: 1
                      rate: 1
                      slabRateConfig: null
              tag: null
              displayName: feature1
        features:
          - id: feature.20txvOAhiIS.m3X3d
            name: feature1
            creditsGranted: 120
            creditsAvailable: 120
            updatedAt: '2023-07-31T15:47:52.570011Z'
            effectiveFrom: '2023-07-31T15:51:34.308371Z'
            effectiveUntil: '2023-08-20T15:51:34.308371Z'
        quantity: null
        rateCardQuantities:
          feature.20txvOAhiIS.m3X3d: 1.2
        idempotencyKey: null
        planOverride: null
        updatedAt: '2023-07-31T15:51:35.093598Z'
        price: 120
        invoiceId: inv.20txx3jeQU4.nlMQh
        invoiceCurrency: USD
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Bearer <credential>

````