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

# Create Entitlement

> Provision one or more entitlement items under a subscription. The account and each item's merchantProductCode are mandatory. If an item's itemId is supplied it is honored; otherwise MarketONE generates one and returns it in the response.



## OpenAPI

````yaml /marketONE/MarketONEAPIs.yaml post /v3/entitlement
openapi: 3.0.1
info:
  title: MarketONE APIs
  license:
    name: Amdocs Inc.
    url: http://www.amdocs.com
  version: Released
  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. |
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:
  /v3/entitlement:
    post:
      tags:
        - entitlements
      summary: Create Entitlement
      description: >-
        Provision one or more entitlement items under a subscription. The
        account and each item's merchantProductCode are mandatory. If an item's
        itemId is supplied it is honored; otherwise MarketONE generates one and
        returns it in the response.
      operationId: createEntitlementV3
      parameters:
        - in: header
          name: X-IDEMPOTENCY-KEY
          schema:
            type: string
          description: >-
            A unique, client‑generated identifier used to ensure idempotent
            request processing. When provided, the server uses this key to
            recognize and safely handle retry attempts of the same request,
            preventing duplicate operations (e.g., double charges or duplicate
            resource creation). If the same key is reused with an identical
            request, the server returns the original response instead of
            processing the request again.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntitlementProvisionRequestV3'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntitlementV3Response'
        '400':
          description: 'Bad Request; possible error codes returned: invalid-request'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409Error'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    EntitlementProvisionRequestV3:
      type: object
      description: >-
        Request to provision one or more entitlement items under a subscription.
        The account and each item's merchantProductCode are mandatory.
      required:
        - subscription
      properties:
        subscription:
          type: object
          required:
            - account
            - items
          properties:
            id:
              type: string
              description: >-
                The id of the subscription as tracked in the subscription
                management system.
              maxLength: 128
            commerceManaged:
              type: boolean
              description: >
                When true, the created partner subscription is Commerce-managed
                (plm_partner_subscription.commerce_managed = true). When
                omitted, the stored value is false. Request-only; not returned
                on EntitlementV3Response. Commerce Engine subscription creates
                send true. Existing V1/V2 entitlement creates remain false.
              default: false
            account:
              $ref: '#/components/schemas/EntitlementAccountV3'
            items:
              type: array
              minItems: 1
              description: The list of entitlement items to provision.
              items:
                $ref: '#/components/schemas/EntitlementItemV3Request'
    EntitlementV3Response:
      type: object
      description: Response returned when provisioning entitlements under a subscription.
      properties:
        subscription:
          type: object
          properties:
            id:
              type: string
              description: >-
                The id of the subscription as tracked in the subscription
                management system.
              maxLength: 128
            account:
              $ref: '#/components/schemas/EntitlementAccountV3Response'
            items:
              type: array
              description: The list of provisioned entitlement items.
              items:
                $ref: '#/components/schemas/EntitlementItemV3Response'
    400Error:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - invalid-request
        message:
          type: string
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/400ValError'
    401Error:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - authentication-required
            - invalid-api-key
            - api-key-not-found
        message:
          type: string
    403Error:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - forbidden
            - access-denied
            - agreement-not-found
        message:
          type: string
    409Error:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - input-conflict
        message:
          type: string
    EntitlementAccountV3:
      type: object
      description: >-
        The Account represents an aggregator's customer for whom the
        entitlement(s) are being provisioned.
      properties:
        id:
          type: string
          description: The MarketONE account identifier.
        externalId:
          type: string
          description: >-
            An additional aggregator-specified unique identifier for when you
            have two external (non-MarketONE) systems using two different
            identification schemes for the same customer. It can be used in
            place of id.
          maxLength: 128
        parent:
          type: string
          description: >-
            The identifier of the parent account, when the account belongs to an
            account hierarchy.
        paymentMethod:
          $ref: '#/components/schemas/EntitlementPaymentMethodV3'
    EntitlementItemV3Request:
      type: object
      description: A single entitlement item to be provisioned under the subscription.
      required:
        - merchantProductCode
      properties:
        itemId:
          type: string
          description: >-
            Optional client-supplied identifier for the entitlement item. If
            omitted, MarketONE generates one and returns it in the response.
        commerceProductCode:
          type: string
          description: >-
            The commerce (reseller/service provider) product code associated
            with the item.
        merchantProductCode:
          type: string
          description: The merchant product code to be entitled. Mandatory.
        partnerCustomerId:
          type: string
          maxLength: 256
          description: The partner customer id associated with this entitlement item.
        quantity:
          type: integer
          minimum: 1
          description: >-
            Populate the quantity that this entitlement should represent.
            Required for products with QUANTITY entitlementType.
          example: 500
        metadata:
          $ref: '#/components/schemas/EntitlementMetadata'
    EntitlementAccountV3Response:
      type: object
      required:
        - id
      description: >-
        The Account represents an aggregator's customer for whom the
        entitlement(s) were provisioned.
      properties:
        id:
          type: string
          description: The MarketONE account identifier.
        externalId:
          type: string
          description: >-
            An additional aggregator-specified unique identifier for when you
            have two external (non-MarketONE) systems using two different
            identification schemes for the same customer. It can be used in
            place of id.
          maxLength: 128
        parent:
          type: string
          description: >-
            The identifier of the parent account, when the account belongs to an
            account hierarchy.
    EntitlementItemV3Response:
      type: object
      description: >-
        A single provisioned entitlement item, including server-generated
        fields.
      properties:
        itemId:
          type: string
          description: >-
            The entitlement item identifier. Echoed from the request or
            generated by MarketONE when not supplied.
        commerceProductCode:
          type: string
          description: >-
            The commerce (reseller/service provider) product code associated
            with the item.
        merchantProductCode:
          type: string
          description: The merchant product code that was entitled.
        partnerCustomerId:
          type: string
          maxLength: 256
          description: The partner customer id associated with this entitlement item.
        quantity:
          type: integer
          description: The quantity that this entitlement represents.
          example: 500
        partnerSubscriptionId:
          type: string
          description: MarketONE partner service provisioning record identifier.
          maxLength: 256
        externalPartnerSubscriptionId:
          type: string
          description: >-
            The identifier returned by the partner from the "AddSubscription"
            callback.
          maxLength: 256
        partnerCode:
          type: string
          description: The partner code as set by the partner admin in MarketONE.
          maxLength: 15
        serviceStatus:
          type: string
          description: >-
            Status of the partner service MarketONE information. UNPROVISIONED
            indicates that the record was created but the callback response was
            not received. INACTIVE indicates the provisioning callback was
            successfully received by the partner service, but it has not been
            claimed by any service user yet. ACTIVE indicates that the service
            entitlement has been successfully provisioned, and a partner service
            user has claimed it. CANCELLATION-IN-PROGRESS indicates that a
            de-provisioning request is pending. CANCELLED indicates that the
            de-provisioning request confirmation has been received.
          maxLength: 50
          enum:
            - UNPROVISIONED
            - INACTIVE
            - ACTIVE
            - CANCELLATION-IN-PROGRESS
            - CANCELLED
            - UPDATE-IN-PROGRESS
            - PAUSED
            - PAUSE-IN-PROGRESS
            - RESUME-IN-PROGRESS
        createdDate:
          type: string
          description: >-
            The timestamp (ISO 8601 format) when the entitlement item record was
            created.
          format: datetime
        updatedDate:
          type: string
          description: >-
            The timestamp (ISO 8601 format) when the entitlement item record was
            updated.
          format: datetime
        startServiceDate:
          type: string
          description: >-
            The timestamp (ISO 8601 format) when the partner service
            provisioning information record was created.
          format: datetime
        endServiceDate:
          type: string
          description: >-
            The timestamp (ISO 8601 format) when the partner service
            provisioning information record was updated.
          format: datetime
        activatedDate:
          type: string
          description: >-
            The timestamp (ISO 8601 format) when the partner subscription was
            activated (optional)
          format: datetime
        metadata:
          $ref: '#/components/schemas/EntitlementMetadata'
    400ValError:
      type: object
      required:
        - code
      properties:
        code:
          type: string
        message:
          type: string
    EntitlementPaymentMethodV3:
      type: object
      description: >
        Optional payment method carried on the entitlement account. Includes id,
        type, primary, and active. StatementBill on the CE event maps to
        CarrierBilling.
      properties:
        id:
          $ref: '#/components/schemas/ID'
        type:
          type: string
          description: >-
            Payment method type. Commerce Engine StatementBill maps to
            CarrierBilling.
          enum:
            - CreditCard
            - CarrierBilling
        primary:
          type: boolean
          description: Primary/default payment method for the account.
        active:
          type: boolean
          description: Active and available for use.
    EntitlementMetadata:
      type: object
      description: >-
        A set of key/value pairs that you can attach to an object. Useful for
        storing additional information.
      additionalProperties:
        type: string
    ID:
      type: string
      description: A unique identifier.
      maxLength: 128
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: The authorization key obtained from MarketONE.

````

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