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

# Generate Incremental Coupon Codes

> Generates additional coupon codes, on demand. Available when the coupon campaign is already active.

* Incremental coupons are only available after the campaign's original coupons were fully generated and relevant for active coupon campaigns.
* In order to generate incremental coupon codes, on_demand_codes_allowed campaign attribute must be enabled (1) in the Campaign object.
* The response to the call provides a list of the coupon codes for use and redemption by the customers. Incremental codes are not generated in the Subscribe Portal. You may choose to add an additional security step that requires activation of the codes prior to redemption. See coupon_code_requires_activation in the Campaign object.
* The maximal number of codes per generation attempt is 100.




## OpenAPI

````yaml /marketONE/MarketONEAPIs.yaml post /slmgw/v1/campaigns/{campaign}/actions/generate_incremental_codes
openapi: 3.0.1
info:
  title: MarketONE APIs
  description: >
    The MarketONE OpenAPIs provide a quick and easy way to access MarketONE
    features and your data. These APIs let Resellers (Service Providers) and
    Merchants work together to resell products and handle billing on a single
    platform.


    With an API key, you can authenticate and perform various tasks, like
    accessing and managing data. You can use an HTTP client in any programming
    language to send HTTP requests to MarketONE to create, edit, or delete data.
    The data you work with, like subscriptions or entitlements, are called
    resources, and each resource has its own endpoint (URL).


    The MarketONE OpenAPIs use built-in HTTP features, like HTTP authentication
    and HTTP verbs, which are easy for standard HTTP clients to understand. They
    also use HTTP response codes to indicate errors. All responses, including
    errors, are in JSON format, but our API libraries convert them into objects
    that are specific to the programming language you're using. 


    You can also download the MarketONE OpenAPIs in a YAML file, which is easy
    to read and manage.


    For more information about the MarketONE OpenAPIs, see the [API Reference
    Guide for Merchants](https://docs.saas.amdocs.com/bundle/b_partnerAPIGuide/)
    and the [API Reference Guide for Resellers (Service
    Providers)](https://docs.saas.amdocs.com/bundle/b_aggregatorAPIGuide).


    ## Other MarketONE APIs


    Other MarketONE APIs, such as the [Reseller (CSP) Adapter
    OpenAPIs](https://docs.saas.amdocs.com/bundle/MarketONECSPAdapter/page/index.html),
    the [Merchant (OTT) Service
    Callbacks](https://docs.saas.amdocs.com/bundle/MarketONEOTTServiceCallbacks/page/index.html),
    and the [Commerce Gateway
    OpenAPIs](https://docs.saas.amdocs.com/bundle/Amdocs_Media-Commerce-Gateway-Latest-resolved/page/index.html),
    are available to provide additional services for specific organizations.


    # Environments


    MarketONE provides two distinct environments for testing and production:

    - **Prodtest environment**: this is a pre-production environment allowing
    you to test your application with test data. Use server
    <https://int-prodtest.m1amdocs.io/>.

    - **Production environment**: this is the live environment for the
    real-world implementation of  data. Use server <https://int.m1amdocs.com/>.


    # HTTP Verbs


    The MarketONE OpenAPIs support the following HTTP verbs:

    - **GET**: Retrieve resources (as a list or single record fetch).

    - **POST**:  Create new resources or update existing ones (overloading
    during create/update is permitted where specified).

    - **PUT**: Create a new resource or replace a resource with the request
    payload.

    - **DELETE**: Remove ownership or hierarchical association between certain
    resources.


    #  Example

     ## Request Example

     ```
    POST /v1/entitlement 

    Content-Type: application/json

    {
      "account": {
        "id": "2922fbf1-1dc4-2293-9d0e-c9a46630ad6e"
      },
      "subscriptionId": "ef1917b8-4a06-4595-9998-718799a33ed6",
      "productCodes": [
        "Basic_Addon"
      ],
      "metadata": {
        "email": "j.smith@email.com"
      }
    }

    ```

      ## Response Example

    ```

    Response: 200 OK

    Content-Type: application/json

    [
      {
        "partnerSubscriptionId": "80e08955-b0e9-4ba6-b882-b24230bfc703",
        "account": {
          "id": "0006fbf1-1ac4-4793-9d0e-c0a0080ad6e",
          "partnerCustomerId": "1bbbb3a5-0f05-4009-b4ae-b01f7eba7g"
        },
       "subscriptionId": "ef1417b8-4a06-7775-8518-718714a33ed2",
        "externalPartnerSubscriptionId": "7d50531-31eb-45f9-91ce-6355250f5501",
        "partnerCode": "PRTNR",
        "productCode": "Basic_Addon",
        "createdDate": "2024-05-04T17:38:10.889",
        "updatedDate": "2024-05-04T17:38:11.160",
        "startServiceDate": "2024-05-04T17:38:10.889",
        "serviceStatus": "PROVISION-COMPLETE"
      }
    ]

    ```


    # Status Codes


    MarketONE uses the following HTTP response codes to indicate the success or
    failure of an API request.


    | Code | Status | Description |

    | -------  | ------   | ------------------- |

    | **200** | OK | Everything worked as expected. |

    | **201** | OK | Everything worked as expected. |

    | **400** | Bad Request | The request was unacceptable, often due to missing
    a required parameter. Other possibilities include: <ul><li>A parameter
    doesn't fit the data type</li><li>A parameter is outside the maximum or
    minimum boundaries of what can be accepted.</li> |

    | **401** | Unauthorized | Couldn’t authenticate your request. This could be
    due to a wrong or invalid API key. |

    | **403** | Forbidden | Authentication failed. Check your username and
    password. |

    | **404** | Not Found | The requested resource doesn’t exist. |

    | **409** | Conflict | |

    | **429** | Too Many Requests | Too many requests were made to the API too
    quickly. |

    | **500** | Internal Server Error  | |

    | **501** | Not Implemented | |

    | **503** | Service Unavailable | We’re temporarily offline for maintenance.
    Please try again later. |


    # Authentication


    API keys are required to make requests to the MarketONE OpenAPIs. In Partner
    Ecosystem Management, Resellers (Service Providers) can conveniently
    [generate an API
    key](https://docs.saas.amdocs.com/bundle/b_userGuideForResellers/page/topics/apiKeysAggregatorManage_t.html).
    Merchants can also [generate an API key for each Reseller (Service Provider)
    partnership](https://docs.saas.amdocs.com/bundle/b_userGuideForMerchants/page/topics/apiKeysManage_t.html)
    in Partner Ecosystem Management. After you authenticate with your API
    key(s), you can access resources through the MarketONE OpenAPIs.


    Each API key is a JSON Web Token (JWT) that doesn't expire. For every API
    call you make to the MarketONE OpenAPIs, the API key must be included in the
    header (`X-API-KEY`) of the call to ensure trusted communication. All
    communication is HTTP(s) based and supports SSL/TLS encryption.


    # Errors


    All error responses will return an error object.


    # Attributes


    | Name | Type | Required/Optional | Description |

    | -------  | ------ | ------ | ------ |

    | **code** | string | required | The error type, such as
    "authentication-required" (401) or "not-found" (404). |

    | **message** | string | required | A human-readable message providing more
    detailed information about the error. |

    | **validationErrors** | object | optional | An array of validation errors
    with **code** and **message** attributes provided. |
  license:
    name: Amdocs Inc.
    url: http://www.amdocs.com
  version: Released
servers:
  - url: https://int-prodtest.m1amdocs.io/
    description: Sandbox server (uses test data)
  - url: https://int.m1amdocs.com/
    description: Production server (uses live data)
security: []
paths:
  /slmgw/v1/campaigns/{campaign}/actions/generate_incremental_codes:
    post:
      tags:
        - campaigns
      summary: Generate Incremental Coupon Codes
      description: >
        Generates additional coupon codes, on demand. Available when the coupon
        campaign is already active.


        * Incremental coupons are only available after the campaign's original
        coupons were fully generated and relevant for active coupon campaigns.

        * In order to generate incremental coupon codes, on_demand_codes_allowed
        campaign attribute must be enabled (1) in the Campaign object.

        * The response to the call provides a list of the coupon codes for use
        and redemption by the customers. Incremental codes are not generated in
        the Subscribe Portal. You may choose to add an additional security step
        that requires activation of the codes prior to redemption. See
        coupon_code_requires_activation in the Campaign object.

        * The maximal number of codes per generation attempt is 100.
      operationId: generateIncrementalCodes
      parameters:
        - name: campaign
          in: path
          description: The id or the vid of the campaigns to retrieve.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: number_of_codes
          in: query
          description: >-
            The number of incremental codes required . Maximal number of codes
            allowed is 100.
          required: true
          style: form
          explode: true
          schema:
            type: integer
      responses:
        '200':
          description: A list of Campaign Codes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_200_1'
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Error'
components:
  schemas:
    inline_response_200_1:
      type: object
      properties:
        object:
          type: string
          enum:
            - List
        total_count:
          type: integer
          description: Integer count of the number of items in the returned list.
        data:
          type: array
          items:
            $ref: '#/components/schemas/CampaignCode'
        url:
          type: string
          description: The query string provided in the request
        next:
          type: string
          description: >-
            The route (partial URL) to the next Transaction object (string to
            select the “next”); included id should match that of the last object
            returned here.
        previous:
          type: string
          description: >-
            The route (partial URL) to the previous Transaction object (string
            to select the “previous”); included id should match that of the
            first object returned here.
      description: A list of Campaign Codes.
    400Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - invalid-request
        message:
          type: string
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/400ValError'
    401Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - authentication-required
            - invalid-api-key
            - api-key-not-found
        message:
          type: string
    404Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - not-found
        message:
          type: string
    500Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - server-error
        message:
          type: string
    CampaignCode:
      required:
        - id
        - object
      type: object
      properties:
        object:
          type: string
          description: Value is "CampaignCode"
        id:
          type: string
          description: >-
            Primary redemption string (either a Promotion code or a Coupon code)
            used for redeeming CampaignCoode
        vid:
          description: >-
            A Globally Unique Identifier (GUID) for this object. Assigned by
            CashBox
          allOf:
            - $ref: '#/components/schemas/VID'
        code_aliases:
          type: string
          description: >-
            An array of alternative redemption codes specified on a Promotion
            Campaign
        type:
          type: string
          description: Type of Campaign associated with this CampaignCode
          enum:
            - Promotion
            - Campaign
        campaign:
          type: object
          description: Campaign associated with the CampaignCode
          allOf:
            - $ref: '#/components/schemas/Campaigns'
        sequence:
          type: integer
          description: Unique sequence number for the CampaignCode in the parent code set.
        state:
          type: string
          description: State of the CampaignCode
          enum:
            - Not Yet Activated
            - Activated
            - Redeemed
            - Expired
            - Marked Used
            - Retrieved
            - Invalidated
            - Initialized
        last_chars:
          type: string
          description: Last characters (typically 4) of the CampaignCode
        redemption_count:
          type: integer
          description: Number of times the (Coupon) CampaignCode has been redeemed
    400ValError:
      required:
        - code
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    VID:
      maxLength: 128
      type: string
      description: >-
        A Globally Unique Identifier (GUID) for this object. This value is
        generated by MarketONE.
    Campaigns:
      type: object
      properties:
        object:
          type: string
          description: Value is “Campaign”
        id:
          type: string
          description: >-
            An aggregator-specified unique identifier. If not specified, this
            object can be identified by its vid
        vid:
          description: >-
            A Globally Unique Identifier (GUID) for this object. Assigned by
            CashBox
          allOf:
            - $ref: '#/components/schemas/VID'
        name:
          type: string
          description: Name of campaign.
        description:
          type: string
          description: Description of campaign.
        state:
          type: string
          description: >-
            Can be Active, Canceled, Complete, Inactive, MatchAnyState, Pending,
            Undefined
          enum:
            - Active
            - Canceled
            - Complete
            - Inactive
            - MatchAnyState
            - Undefined
            - Pending
        offer_start_date:
          type: string
          description: The first date on which the offers may be redeemed.
          format: date-time
        offer_end_date:
          type: string
          description: The last date on which the offers may be redeemed.
          format: date-time
        campaign_discount_method:
          type: string
          description: >-
            Not implemented specifies the discounting method either Compounded
            or Direct
        type:
          type: string
          description: >-
            specifies what type of campaign this is Coupon, Promotion, Voucher
            (Not implemented), Undefined. Campaign is Active.
        percentage_discount:
          type: string
          description: >-
            Defines the discount as a percentage of the original Product price.
            Note:- flat_amount_discounts and percentage_discount are mutually
            exclusive. It can be either or but not both
          format: float
        apply_discount_per_item:
          type: string
          description: >-
            Not implemented If true, discounts on items will be multiplied by
            the item quantity.
        account_level_eligible:
          type: string
          description: Not implemented Campaign can be applied to customer Accounts.
        purchase_level_eligible:
          type: string
          description: >-
            Not implemented Campaign can be applied to all items (i.e. subtotal)
            on a Transaction.
        eligible_products:
          description: Zero or more eligible Products eligible for this Campaign
          allOf:
            - $ref: '#/components/schemas/Product'
        eligible_billing_plans:
          description: Zero or more eligible BillingPlans eligible for this Campaign
          allOf:
            - $ref: '#/components/schemas/BillingPlan'
        restrict_to_new_subscription:
          type: boolean
          description: >-
            If true, Campaign offer only applies to new subscriptions, not
            existing ones
        expiration_date:
          type: string
          description: >-
            Expiration date of a “Fixed” Campaign. “Rolling” Campaigns should
            leave this blank
          format: date-time
        number_of_periods:
          type: integer
          description: >-
            Number of times the promotion repeats, e.g. if you want to discount
            3 cycles of a biweekly subscription, this would be 3
          format: int32
        period_length:
          type: string
          description: Can be Day, Week, Month, Year, Hour, BillingCycle
          enum:
            - Day
            - week
            - Mopnth
            - year
            - Hour
            - BillingCycle
        promotion_code:
          type: string
          description: The redemption code associated with the Promotion
        promotion_code_aliases:
          $ref: '#/components/schemas/Campaigns_promotion_code_aliases'
        flat_amount_discounts:
          type: array
          items:
            $ref: '#/components/schemas/FlatDiscount'
        voucher_credit:
          $ref: '#/components/schemas/Credit'
        coupons:
          type: array
          items:
            $ref: '#/components/schemas/Coupons'
        item_display_text:
          type: string
          description: Name to be placed on ItemDiscounts generated for this Campaign.
        max_redemptions_per_customer:
          type: integer
          description: >-
            Maximum number of Campaign redemptions for any given customer
            account.
          format: int32
        max_redemptions_per_autobill:
          type: integer
          description: Maximum number of Campaign redemptions for any given subscription
          format: int32
        apply_voucher_pre_transaction:
          type: boolean
          description: >-
            Voucher credits should be applied before the initial Transaction is
            processed
    Product:
      required:
        - descriptions
        - id
        - object
        - status
      type: object
      properties:
        object:
          type: string
          description: Value is “Product”
          enum:
            - Product
        id:
          $ref: '#/components/schemas/ID'
        vid:
          $ref: '#/components/schemas/VID'
        created:
          type: string
          description: The date/time the object was created.
          format: datetime
        descriptions:
          $ref: '#/components/schemas/Product_descriptions'
        status:
          type: string
          description: >-
            aggregators may define whether they want to declare a product as
            available to offer.
          enum:
            - Active
            - Suspended
        tax_classification:
          type: string
          description: The tax classification or code for this product.
        br_tax_category:
          type: string
          enum:
            - Goods
            - Services
        default_billing_plan:
          $ref: '#/components/schemas/BillingPlan'
        default_rate_plan:
          $ref: '#/components/schemas/RatePlan'
        end_of_life:
          type: string
          description: >-
            The date/time after which this product should be treated as
            out-of-service.
          format: datetime
        metadata:
          $ref: '#/components/schemas/METADATA'
        entitlements:
          $ref: '#/components/schemas/Product_entitlements'
        inherited_entitlements:
          $ref: '#/components/schemas/Product_inherited_entitlements'
        billing_descriptor:
          type: string
          description: >-
            Optional “soft descriptor” to send to the payment processor for
            transactions associated with a subscription using this product.
        credit_granted:
          $ref: '#/components/schemas/Credit'
        prices:
          $ref: '#/components/schemas/Product_prices'
        bundled_products:
          type: array
          description: >-
            Other Products considered “bundled” under this one; purchase of this
            product’s SKU under a single price, grants the entitlements
            associated with it and with all bundled products (as of the time of
            creation).
          items:
            $ref: '#/components/schemas/Product'
      description: >-
        The Product object represents a unique aggregator product, with its own
        pricing, description and entitlement assignments. The API allows you to
        create, fetch, and update products. You can retrieve individual Product
        objects, as well as a list of all.
    BillingPlan:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ID'
        vid:
          $ref: '#/components/schemas/VID'
        object:
          type: string
          description: Value is “BillingPlan”
          enum:
            - BillingPlan
        created:
          type: string
          description: The date and time the plan was created.
          format: datetime
        description:
          type: string
          description: An aggregator-specified description of this offering.
        status:
          type: string
          description: >-
            aggregators may define whether they want to declare a plan as
            available to offer. Values can be Active,Suspended
          enum:
            - Active
            - Suspended
        tax_classification:
          type: string
          description: >-
            The tax classification or code to be used with any plan-level
            charges.
        br_tax_category:
          type: string
          description: enum(Category)
        trial:
          description: Optionally declares an initial trial period for this plan.
          allOf:
            - $ref: '#/components/schemas/BillingPlanPeriod'
        periods:
          type: array
          description: >-
            Defines the sequential billing periods in the plan, each with its
            own billing schedule and terms.
          items:
            $ref: '#/components/schemas/BillingPlanPeriod'
        billing_notification_days:
          type: integer
          description: >-
            Number of days prior to schedule billing at which CashBox will send
            email notification.
        trial_end_notification_days:
          type: integer
          description: >-
            For the trial period, this replaces billing_notification_days,
            indicating the number of days prior to end of a trial to send the
            trial end email.
        skip_initial_billing_notification:
          type: boolean
          description: >-
            Determines whether to send a billing notification for the initial
            period.
        end_of_life:
          type: string
          description: The date after which the plan should not be offered.
          format: datetime
        metadata:
          $ref: '#/components/schemas/METADATA'
        entitlements:
          type: array
          description: Entitlements granted by active subscriptions on this plan.
          items:
            $ref: '#/components/schemas/BareEntitlement'
        billing_descriptor:
          type: string
          description: >-
            Optional “soft descriptor” to send to the payment processor for
            transactions associated with a subscription using this billing plan.
        times_to_run:
          type: string
          description: >-
            The number of times the sequence of Billing Periods should be
            repeated. Valid input includes positive integers (Default is null).
        entitlements_valid_for:
          type: string
          description: >-
            The length of time for which Entitlements are valid after the last
            Billing date (Default is null).
        repeat_every:
          type: string
          description: >-
            If a Billing Period set repeats, this value defines the length of
            time after the first billing that the set should repeat.
        season_set:
          description: The SeasonSet to which the Billing Plan applies. (May be null.)
          allOf:
            - $ref: '#/components/schemas/SeasonSet'
        days_before_season_to_bill:
          type: integer
          description: >-
            Optional setting when using a season set to control the integer
            number of days before a season starts to bill.
        days_entitled_before_season:
          type: integer
          description: >-
            Optional setting when using a season set to control the integer
            number of days customer is entitled before a season starts
        days_entitled_after_season:
          type: integer
          description: >-
            Optional setting when using a season set to control the integer
            number of days after a season ends a customer remains entitled.
        entitled_off_season:
          type: boolean
          description: >-
            Optional setting when using a season set to continue entitling
            customer between seasons.
        used_on_subscriptions:
          type: boolean
          description: Signifies if Billing Plan has been used on an Active Subscription
        grace_period_override:
          type: integer
          description: >-
            Number of days after the billing date when, if payment is not
            received, the Subscription is stopped and the customer is
            disentitled; overrides the global aggregator default setting, if
            both are set.
    Campaigns_promotion_code_aliases:
      type: object
      properties:
        object:
          type: string
          description: Must be "List"
          enum:
            - List
        total_count:
          type: integer
          description: Integer count of the number of items in the returned list.
        data:
          type: array
          items:
            type: string
      description: >-
        An array of alternative redemption codes for the Promotion Note:-
        Setting this array will replace any existing list of aliases; it will
        not add new values to an existing list.
    FlatDiscount:
      properties:
        currency:
          type: string
          description: ISO 4217 Currency Code of Discount.
        amount:
          type: number
          description: Amount of Discount.
    Credit:
      type: object
      properties:
        object:
          type: string
          description: Value is “Credit”
          enum:
            - Credit
        token_amounts:
          type: array
          description: Tokens granted
          items:
            $ref: '#/components/schemas/TokenAmount'
        currency_amounts:
          type: array
          description: Currency credits granted
          items:
            $ref: '#/components/schemas/CurrencyAmount'
      description: >-
        The Credit object represents a service credit granted to an account or
        subscription, taking the form of either currency, token, or time
        amounts.
    Coupons:
      properties:
        object:
          type: object
          description: Value is “Coupon”
        id:
          type: string
          description: A merchant-specified unique identifier.
        index:
          type: integer
          format: int32
        expires:
          type: string
          format: date-time
        max_redemptions:
          type: integer
          format: int32
        codes_requested:
          type: integer
          format: int32
        codes_generated:
          type: integer
          format: int32
        coupon_prefix:
          type: string
        coupon_code_separator:
          type: string
        requires_activation_before_use:
          type: boolean
        on_demand_codes_allowed:
          type: boolean
    ID:
      maxLength: 128
      type: string
      description: A unique identifier.
    Product_descriptions:
      type: object
      properties:
        object:
          type: string
          description: Must be "List"
          enum:
            - List
        total_count:
          type: integer
          description: Integer count of the number of items in the returned list.
        data:
          type: array
          items:
            $ref: '#/components/schemas/ProductDescription'
      description: Language-specific product/service descriptions
    RatePlan:
      type: object
      properties:
        object:
          type: string
          description: Value is “RatePlan”
          enum:
            - RatePlan
        id:
          $ref: '#/components/schemas/ID'
        vid:
          $ref: '#/components/schemas/VID'
      description: >-
        Rate Plans represents a pre-defined rating schedule - tier-based pricing
        for rated products (e.g. usage). Both pre-paid (aka License-based) and
        post-paid (metered, aka usage-based) services use pre-defined tiers to
        rate recorded events. Rate Plans support flat and per-unit pricing,
        volume discounts, standard consumption-based prices, included units with
        overage, and maximum/minimum charge limits.
    METADATA:
      type: object
      additionalProperties:
        type: string
        properties:
          key:
            type: string
          value:
            type: string
      description: >-
        A set of key/value pairs that you can attach to an object. Useful for
        storing additional information.
    Product_entitlements:
      type: object
      properties:
        object:
          type: string
          description: Must be "List"
          enum:
            - List
        total_count:
          type: integer
          description: Integer count of the number of items in the returned list.
        data:
          type: array
          items:
            $ref: '#/components/schemas/BareEntitlement'
      description: >-
        Entitlements granted by active subscriptions using this product on one
        or more subscription items.
    Product_inherited_entitlements:
      type: object
      properties:
        object:
          type: string
          description: Must be "List"
          enum:
            - List
        total_count:
          type: integer
          description: Integer count of the number of items in the returned list.
        data:
          type: array
          items:
            $ref: '#/components/schemas/BareEntitlement'
      description: >-
        If a Product has other products bundled with it, the Entitlements for
        the Products in the bundle will be returned
    Product_prices:
      type: object
      properties:
        object:
          type: string
          description: Must be "List"
          enum:
            - List
        total_count:
          type: integer
          description: Integer count of the number of items in the returned list.
        data:
          type: array
          items:
            $ref: '#/components/schemas/ProductPrice'
      description: >-
        Default (i.e. “List”) prices for the product; one price per currency
        code. Prices can be overridden at purchase or with modification.
    BillingPlanPeriod:
      type: object
      properties:
        object:
          type: string
          description: Value is “BillingPlanPeriod”
          enum:
            - BillingPlanPeriod
        type:
          type: string
          description: Unit of time a period describes. Values can be Day,Week,Month,Year
          enum:
            - Day
            - Week
            - Month
            - Year
        quantity:
          type: integer
        cycles:
          type: integer
        prices:
          type: array
          description: >-
            A price for each defined currency for each period. Optional -
            Billing Plans do not require pricing (can be priced at the
            item/product level).
          items:
            $ref: '#/components/schemas/BillingPlanPrice'
    BareEntitlement:
      required:
        - id
      type: object
      properties:
        object:
          type: string
          enum:
            - Entitlement
        id:
          type: string
          description: An aggregator-specified unique identifier.
        description:
          type: string
          description: The aggregator-specified description of the entitled service.
    SeasonSet:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ID'
        vid:
          $ref: '#/components/schemas/VID'
        object:
          type: string
          description: Value is “SeasonSet”
          enum:
            - SeasonSet
        created:
          type: string
          description: The date and time the plan was created.
          format: datetime
        seasons:
          type: array
          description: An array of Seasons that make up the SeasonSet.
          items:
            $ref: '#/components/schemas/Season'
        metadata:
          $ref: '#/components/schemas/METADATA'
      description: The SeasonSet object defines an array of seasons, with an identifier.
    TokenAmount:
      type: object
      properties:
        object:
          type: string
          enum:
            - TokenAmount
        token:
          $ref: '#/components/schemas/Token'
        amount:
          type: integer
          description: The balance of tokens in the grant.
        source:
          type: string
      description: >-
        The TokenAmount object represents the token-based credit detail
        associated with a particular grant of token credits.
    CurrencyAmount:
      type: object
      properties:
        object:
          type: string
          description: Value is “CurrencyAmount”
          enum:
            - CurrencyAmount
        vid:
          $ref: '#/components/schemas/VID'
        currency:
          type: string
          description: An [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) Currency Code.
        amount:
          type: number
          description: The currency amount of the credit.
        metadata:
          $ref: '#/components/schemas/METADATA'
        sort_value:
          type: integer
          description: Order of precedence value.
        description:
          type: string
          description: Text provided upon credit grant.
        reason:
          type: string
          description: Text provided upon credit grant.
        granted_by_cashbox:
          type: boolean
        granted:
          type: string
          description: The date and time the credit was originally granted.
          format: datetime
        account:
          $ref: '#/components/schemas/AccountRef'
        subscription:
          $ref: '#/components/schemas/SubscriptionRef'
      description: >-
        The CurrencyAmount object represents the currency credit detail
        associated with a particular grant of currency credits.
    ProductDescription:
      type: object
      properties:
        object:
          type: string
          description: Value is “ProductDescription”
          enum:
            - ProductDescription
        language:
          type: string
          description: >-
            The 2 character ISO language code in which the product description
            is written.
        description:
          maxLength: 256
          type: string
          description: >-
            A description of this product written in language. A free-form
            string of less than 256 characters.
    ProductPrice:
      type: object
      properties:
        object:
          type: string
          description: Value is “ProductPrice”
          enum:
            - ProductPrice
        amount:
          type: number
          description: Value of the currency amount.
        currency:
          type: string
          description: >-
            ISO 4217 currency code to be used for this ProductPrice Amount.
            Defaults to USD. Note that this is Mutually Exclusive of token
        token:
          $ref: '#/components/schemas/Token'
    BillingPlanPrice:
      type: object
      properties:
        object:
          type: string
          description: Value is “BillingPlanPrice”
        amount:
          type: number
          description: price
        currency:
          type: string
          description: >-
            The [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) Currency Code
            of price.
        price_list_name:
          type: string
          description: >-
            Name of price list containing this price. This is free-form string
            of 255 characters or less
        token_amount:
          description: The number of tokens required to purchase (if token-priced).
          allOf:
            - $ref: '#/components/schemas/TokenAmount'
    Season:
      type: object
      properties:
        object:
          type: string
          description: Value is “Season”
          enum:
            - Season
        description:
          type: string
          description: Free-form description of the season, <= 2048 characters.
        starts:
          type: string
          description: The date/time at which the Season begins.
          format: datetime
        ends:
          type: string
          description: The date/Time at which the Season ends.
          format: datetime
      description: >-
        Season objects represent an aggregator-defined calendar-based “season”
        indicating when a particular service offering is provided. Often
        indicates a sporting or entertainment industry season. In CashBox, most
        simply stored as a date range with a description; and grouped into
        Season Sets as needed (to allow for sequential season-based entitlement
        and billing, from one season to the next where the dates for a given
        season change each year).
    Token:
      type: object
      properties:
        object:
          type: string
          description: Value is “Token”
          enum:
            - Token
        id:
          $ref: '#/components/schemas/ID'
        vid:
          $ref: '#/components/schemas/VID'
        description:
          type: string
          description: Text describing the token type
      description: >-
        The token object provides a way to offer virtual currencies or track the
        balance of a consumable service item.
    AccountRef:
      type: object
      properties:
        object:
          type: string
          enum:
            - Account
        id:
          $ref: '#/components/schemas/ID'
        vid:
          $ref: '#/components/schemas/VID'
    SubscriptionRef:
      type: object
      properties:
        object:
          type: string
          enum:
            - Subscription
        id:
          $ref: '#/components/schemas/ID'
        vid:
          $ref: '#/components/schemas/VID'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.