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

# Update Products

> Update an existing product.




## OpenAPI

````yaml /marketONE/MarketONEAPIs.yaml post /slmgw/v1/products/{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/products/{id}:
    post:
      tags:
        - products
      summary: Update Products
      description: |
        Update an existing product.
      parameters:
        - name: id
          in: path
          description: The id or the vid of the Product to retrieve.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/productRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        '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:
  requestBodies:
    productRequest:
      description: JSON A full product object.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Product'
  schemas:
    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.
    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.
    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
    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.
    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
    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.
    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.
    400ValError:
      required:
        - code
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    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.
    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.
    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.