> ## 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.

# Retrieves a specific Billing Plan.

> Retrieves a specific product.



## OpenAPI

````yaml /marketONE/MarketONEAPIs.yaml get /slmgw/v1/billing_plans/{id}
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/billing_plans/{id}:
    get:
      tags:
        - billing plans
        - marketplace
      summary: Retrieves a specific Billing Plan.
      description: Retrieves a specific product.
      operationId: getBillingPlan
      parameters:
        - name: X-Aggregator-Code
          in: header
          description: >-
            The aggregator organization code. Organization code must be provided
            either via HTTP header or query parameter. If both are provided,
            HTTP header will be used.
          required: false
          style: simple
          explode: false
          schema:
            maxLength: 16
            type: string
        - name: aggregatorCode
          in: query
          description: >-
            The aggregator organization code. Organization code must be provided
            either via HTTP header or query parameter. If both are provided,
            HTTP header will be used.
          required: false
          style: form
          explode: true
          schema:
            maxLength: 16
            type: string
        - name: id
          in: path
          description: The id or the vid of the Product to retrieve.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: JSON A full BillingPlan object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingPlan'
        '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'
      security: []
components:
  schemas:
    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.
    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
    ID:
      maxLength: 128
      type: string
      description: A unique identifier.
    VID:
      maxLength: 128
      type: string
      description: >-
        A Globally Unique Identifier (GUID) for this object. This value is
        generated by MarketONE.
    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'
    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.
    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.
    400ValError:
      required:
        - code
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    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).
    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.
    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.

````

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