openapi: 3.0.3
info:
  title: MasCatalogue API
  version: '2'
  description: >-
    I am MasCatalogue API.


    My intention is to provide a set of REST services to support sales and post-sales operations from catalogue perspective.
servers:
  - url: 'https://catalogue.masstack.com/v2/'
    description: production
  - url: 'https://catalogue.sta.masstack.com/v2/'
    description: staging
tags:
  - name: Commercial Products
    description: Access to commercial products
  - name: Bundled Products
    description: Access to bundled products
  - name: Bundled Commercial Products
    description: Access to bundled commercial products
  - name: Free Units Packages
    description: Access to free units packages
  - name: Promotions
    description: Access to promotions
  - name: Commercial Devices
    description: Access to commercial devices
  - name: Rate Plans
    description: Access to rate plans
  - name: Base profiles and services
    description: Access to base profiles and services associated
  - name: Value Added Services
    description: Access to value added services
  - name: Provisioning Profiles
    description: Access to provisioning profiles
  - name: Services
    description: Access to services
  - name: Commercial Infos
    description: Access to commercial infos
  - name: Transaction types
    description: Access to billing transaction type endpoints
  - name: Devices
    description: Access to devices endpoints
  - name: Commercial profiles
    description: Access to commercial profile endpoints
  - name: Misc services
    description: Access to different endpoints to get configuration definition
paths:
  /health:
    get:
      summary: Get service health
      description: Returns information about system status
      tags:
        - Health
      operationId: healthCheck
      responses:
        '200':
          description: The response for success health check
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/healthCheck'
  '/orgs/{org_id}/commercial_products/{id}':
    get:
      tags:
        - Commercial Products
      summary: Get commercial product
      description: >-
        Returns basic commercial product info for a commercial product id, including marketing name, billing type and fees applicable to the commercial product when this is sold as a standalone product.
      operationId: getCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
      responses:
        '200':
          description: Commercial product
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommercialProductBasic'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products':
    get:
      tags:
        - Commercial Products
      summary: Get commercial products
      description: >-
        Returns an array of standalone commercial products based on input criteria. Includes details for each commercial product about the marketing name, fees, mandatory free units packages included within the product and mandatory promotions applicable for the product.
      operationId: getCommercialProducts
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/customerSegmentName'
        - $ref: '#/components/parameters/commercialSegmentName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/subscriptionTypeName'
        - $ref: '#/components/parameters/billingTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: Commercial products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialProduct_SubsTypeName_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/sellable':
    get:
      tags:
        - Commercial Products
      summary: Get sellable commercial products
      description: >-
        Returns an array of sellable standalone commercial products based on input criteria. Includes details for each commercial product about the marketing name, fees, mandatory free units packages included within the product and mandatory promotions applicable for the product.
      operationId: getSellableCommercialProducts
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/customerSegmentName'
        - $ref: '#/components/parameters/commercialSegmentName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/subscriptionTypeName'
        - $ref: '#/components/parameters/billingTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: Commercial products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialProduct_SubsTypeName_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/can-switch':
    get:
      tags:
        - Commercial Products
      summary: Get target commercial products
      description: >-
        Returns an array of eligible commercial products to which a given commercial product id can be changed. Aimed to be used for retrieving allowed commercial product changes for a standalone subscription (which may be a standalone subscription from the beginning of the subscription life cycle or a subcription that has become orphan after a package partial deactivation). Includes details for each commercial product about the marketing name, fees, mandatory free units packages included within the product and mandatory promotions applicable for the product.
      operationId: getCommercialProductsCanSwitch
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Commercial products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SwitchCommercialProduct_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}':
    get:
      tags:
        - Bundled Products
      summary: Get bundled product
      description: >-
        Returns basic bundled product info for a bundled product id, including marketing name, technology, territory owners and associated bundled product subscription types. For each bundled product subscription type, the related bundled commercial products are returned including the fees that are applicable for each bundled commercial product (which may be different than the fees applicable for the correspondent commercial product when it is sold as a standalone product).
      operationId: getBundledProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
      responses:
        '200':
          description: Bundled product
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BundledProductBasic_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products':
    get:
      tags:
        - Bundled Products
      summary: Get bundled products
      description: >-
        Returns an array of bundled products based on input criteria, including the mandatory bundled commercial products for each bundled product (default behaviour returns only mandatory bundled commercial products. With additional boolean include_optional_bundled_commercial_products query param, optional ones can be returned too, with considerable impact on response time and response size). Provides details for each bundled commercial product about the marketing name, fees (which may be different than the fees applicable for the correspondent commercial product when it is sold as a standalone product), mandatory free units packages included within the bundled commercial product and mandatory promotions applicable for the bundle commercial product (which may be different than the promotions applicable for the correspondent commercial product when it is sold as a standalone product).
      operationId: getBundledProducts
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/technologyName'
        - $ref: '#/components/parameters/territoryOwnerIdQuery'
        - $ref: '#/components/parameters/bundleCategory'
        - $ref: '#/components/parameters/customerSegmentName'
        - $ref: '#/components/parameters/commercialSegmentName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/includeOptionalBundledCommercialProducts'
      responses:
        '200':
          description: Bundled products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BundledProduct_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/sellable':
    get:
      tags:
        - Bundled Products
      summary: Get sellable bundled products
      description: >-
        Returns an array of sellable bundled products based on input criteria, including the mandatory bundled commercial products for each bundled product (default behaviour returns only mandatory bundled commercial products. With additional boolean include_optional_bundled_commercial_products query param, optional ones can be returned too, with considerable impact on response time and response size). Provides details for each bundled commercial product about the marketing name, fees (which may be different than the fees applicable for the correspondent commercial product when it is sold as a standalone product), mandatory free units packages included within the bundled commercial product and mandatory promotions applicable for the bundle commercial product (which may be different than the promotions applicable for the correspondent commercial product when it is sold as a standalone product)
      operationId: getSellableBundledProducts
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/technologyName'
        - $ref: '#/components/parameters/territoryOwnerIdQuery'
        - $ref: '#/components/parameters/bundleCategory'
        - $ref: '#/components/parameters/customerSegmentName'
        - $ref: '#/components/parameters/commercialSegmentName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: Bundled products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BundledProduct_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types':
    get:
      tags:
        - Bundled Products
      summary: Get bundled product subscription types included in the bundled product
      description: >-
        Returns an array of bundled product subscription types included in the bundled product
      operationId: getBPSTbyBPId
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/subscriptionTypeName'
      responses:
        '200':
          description: Bundled Product Subscription Type
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BundledProductSubsTypeBasic'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/can-switch':
    get:
      tags:
        - Bundled Products
      summary: Get target bundled products
      description: >-
        Returns an array of eligible bundled products to which a given bundled product id can be changed. Aimed to be used  for retrieving allowed bundled product changes for a package of subscriptions, required within different use cases, like package tariff change (with or without speed change), package tariff change together with a service address change, technology change, technology change together with a service address change, 2P → 3P/4P migration, 3P → 2P migration, 4P → 3P migration or  4P → 2P migration). For each bundled product, response includes the mandatory bundled commercial products for (default behaviour returns only mandatory bundled commercial products. With additional boolean include_optional_bundled_commercial_products query param, optional ones can be returned too, with considerable impact on response time and response size). Provides details for each bundled commercial product about the marketing name, fees (which may be different than the fees applicable for the correspondent commercial product when it is sold as a standalone product), mandatory free units packages included within the bundled commercial product and mandatory promotions applicable for the bundle commercial product (which may be different than the promotions applicable for the correspondent commercial product when it is sold as a standalone product).
      operationId: getBundledProductsCanSwitch
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/technologyName'
        - $ref: '#/components/parameters/territoryOwnerIdQuery'
        - $ref: '#/components/parameters/bundleCategory'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/includeOptionalBundledCommercialProducts'
        - $ref: '#/components/parameters/usedForAutomaticChanges'
        - $ref: '#/components/parameters/subsRemoved'
      responses:
        '200':
          description: Bundled products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SwitchBundledProduct_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/can-switch/{target_id}':
    get:
      tags:
        - Bundled Products
      summary: Get target bundled product
      description: >-
        Returns the details of a target bundled product to which a given bundled product id can be changed. Aimed to be used for validating if a specific bundled product switch is valid and in that case retrieving the details of the target bundled product. It can be used in the context of different use cases, like package tariff change (with or without speed change), package tariff change together with a service address change, technology change, technology change together with a service address change, 2P->3P/4P migration, 3P → 2P migration, 4P → 3P migration or  4P → 2P migration).
      operationId: getBundledProductsCanSwitchTarget
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductTargetId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/territoryOwnerIdQuery'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/includeOptionalBundledCommercialProducts'
        - $ref: '#/components/parameters/usedForAutomaticChanges'
      responses:
        '200':
          description: Bundled products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwitchBundledProduct_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products/sellable':
    get:
      tags:
        - Bundled Commercial Products
      summary: Get sellable bundled commercial products
      description: >-
        Returns an array of eligible bundled commercial products related to a given bundled product and a given bundled product subscription type. Aimed to be used for retrieving sellable bundled commercial products within the context of a given bundled product, required for the use case of adding a new subscription to an existent package. It includes within the response fees related with each bundled commercial product, as well as all the mandatory promotions and free units packages that are compatible/included within each bundled commercial product.
      operationId: getSellableBundledCommercialProducts
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/bundledProductSubscriptionTypeId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/insuredAmount'
        - $ref: '#/components/parameters/deviceCategoryWeb'
      responses:
        '200':
          description: Bundled Commercial products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BundledCommercialProduct'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products':
    get:
      tags:
        - Bundled Commercial Products
      summary: Get all bundled commercial products
      description: >-
        Returns an array of all, not only sellable, bundled commercial products related to a given bundled product and a given bundled product subscription type.
      operationId: getBundledCommercialProducts
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/bundledProductSubscriptionTypeId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/insuredAmount'
        - $ref: '#/components/parameters/deviceCategoryWeb'
      responses:
        '200':
          description: Bundled Commercial products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BundledCommercialProductBasic'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products/{bcp_id}':
    get:
      tags:
        - Bundled Commercial Products
      summary: Get bundled commercial product by id
      description: >
        Returns details of a bundled commercial product related to a given bundled product and a given bundled product subscription type. It includes within the response the related fees as well as all the mandatory promotions and free units packages that are compatible/included within it

      operationId: getBundledCommercialProductById
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/bundledProductSubscriptionTypeId'
        - $ref: '#/components/parameters/bundledCommercialProductId2'
      responses:
        '200':
          description: Bundled Commercial product
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BundledCommercialProduct'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{bundled_product_id}/bundled_commercial_products/{id}/can-switch':
    get:
      tags:
        - Bundled Commercial Products
      summary: Get target bundled commercial products
      description: >-
        Returns an array of eligible bundled commercial products to which a given bundled commercial product id can be changed, in the context of a specific bundled product. If it is a migration within the same package, the origin bundled product from the path is enough (it acts as both origin and destination). Otherwise, for migrations between different bundled products, the existing query parameter for the destination bundled product must be filled. Aimed to be used for retrieving allowed bundled commercial product changes for a subscription included within a package. It includes within the response fees related with each bundled commercial product, as well as all the mandatory promotions and free units packages that are compatible/included within each bundled commercial product.
      operationId: getBundledCommercialProductsCanSwitch
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId3'
        - $ref: '#/components/parameters/bundledCommercialProductId'
        - $ref: '#/components/parameters/usedForAutomaticOrphanSubscriptionChange'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/destinationBundledProductIdQuery'
      responses:
        '200':
          description: Bundled Commercial products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BundledCommercialProductCanSwitch'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/bundled_commercial_products/can-migrate':
    get:
      tags:
        - Bundled Commercial Products
      summary: >-
        Get bundled commercial product equivalence in a bundled product migration with no compatibility at tariff level
      description: >-
        This endpoint allows us to resolve the scenario in a bundled product movement where a particular subscription type is compatible but the origin tariff is not present in destination bundled product, providing this destination bundled product ({id}) you can get all the equivalence between conflictives bcp.
      operationId: getBCPbyBPCanMigrate
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/destinationBundledProductId'
        - $ref: '#/components/parameters/originBundledCommercialProductId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/getBCPbyBPCanMigrate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/bundled_commercial_products':
    get:
      tags:
        - Bundled Commercial Products
      summary: Get all bundled commercial products related to a bundled product id
      description: >-
        Returns an array of all bundled commercial products related to a given bundled product.
      operationId: getBundledCommercialProductsByBPId
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/insuredAmount'
        - $ref: '#/components/parameters/sellable'
        - $ref: '#/components/parameters/subscriptionTypeName'
        - $ref: '#/components/parameters/deviceCategoryWeb'
      responses:
        '200':
          description: Bundled Commercial products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BundledCommercialProductDetail'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/free_units_packages':
    get:
      tags:
        - Free Units Packages
      summary: Get free units packages
      description: >-
        Returns an array of both mandatory and optional free units packages related to a commercial product id. Includes main characteristics of each free units package, as well as fees and promotions associated to the free units package. Note that the free units packages compatible with a product are always related to the commercial product and are available for both bundled product and standalone product sales scenarios.
      operationId: getFreeUnitsPackages
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/debitAccountId'
      responses:
        '200':
          description: Free Units Package
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FreeUnitsPackage_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/free_units_packages/{fup_id}':
    get:
      tags:
        - Free Units Packages
      summary: Get free units package
      description: >-
        Returns free units package info by id related to a commercial product id.
      operationId: getFreeUnitsPackagesByidFUP
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/freeUnitsPackageId2'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Free Units Package
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeUnitsPackage_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/free_units_packages/{fup_id}':
    get:
      tags:
        - Free Units Packages
      summary: Get free units package by id
      description: Returns free units package info by id related to a service provider id.
      operationId: getFreeUnitsPackagesByidFUPBySP
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/freeUnitsPackageId2'
      responses:
        '200':
          description: Free Units Package
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeUnitsPackageDetailBySP'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/free_units_packages':
    get:
      tags:
        - Free Units Packages
      summary: Get free units package by service provider
      description: Returns free units package info by service provider
      operationId: getFreeUnitsPackagesBySP
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Free Units Package
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FreeUnitsPackageDetailBySP'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/free_units_packages/sellable':
    get:
      tags:
        - Free Units Packages
      summary: Get sellable free units packages
      description: >-
        Returns an array of sellable mandatory and optional free units packages for a commercial product id. Includes details for each free units package about associated fees and promotions applicable to the free units package. Note that the free units packages compatible with a product are always related to the commercial product and are available for both bundled product and standalone product sales scenarios.
      operationId: getSellableFreeUnitsPackages
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/debitAccountId'
      responses:
        '200':
          description: Free units packages
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FreeUnitsPackage_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/promotions/sellable':
    get:
      tags:
        - Promotions
      summary: Get sellable promotions
      description: >-
        Returns the promotions with ApplicabilityModel=Billing and which are commercially active for the correspondent Service Provider
      operationId: getPromotions
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/targetApplicabilityRule'
      responses:
        '200':
          description: Promotion
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/promotions':
    get:
      tags:
        - Promotions
      summary: Get promotions for commercial product
      description: >-
        Returns an array of both mandatory and optional promotions related to a commercial product id, applicable when the commercial product is sold as a standalone product. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getPromotionsCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
      responses:
        '200':
          description: Promotion
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/promotions/sellable':
    get:
      tags:
        - Promotions
      summary: Get sellable promotions for commercial product
      description: >-
        Returns an array of sellable mandatory and optional promotions for a commercial product id, when this is sold as a standalone product. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getSellablePromotionsCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Promotions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/promotions':
    get:
      tags:
        - Promotions
      summary: Get promotions for bundled product
      description: >-
        Returns an array of both mandatory and optional promotions related to a bundled  product id. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getPromotionsBundledProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Promotion
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/promotions/sellable':
    get:
      tags:
        - Promotions
      summary: Get sellable promotions for bundled product
      description: >-
        Returns an array of sellable mandatory and optional promotions related to a bundled product id. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getSellablePromotionsBundledProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Promotions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{id}/promotions':
    get:
      tags:
        - Promotions
      summary: Get promotions for bundled commercial product
      description: >-
        Returns an array of both mandatory and optional promotions related to a bundled commercial product id, applicable when the commercial product is sold as a bundled commercial product. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getPromotionsBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
      responses:
        '200':
          description: Promotion
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{id}/promotions/sellable':
    get:
      tags:
        - Promotions
      summary: Get sellable promotions for bundled commercial product
      description: >-
        Returns an array of sellable mandatory and optional promotions related to a bundled commercial product id, when this is sold as part of a bundled product. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getSellablePromotionsBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Promotions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/value_added_services/{id}/promotions':
    get:
      tags:
        - Promotions
      summary: Get promotions for value added service
      description: >-
        Returns an array of both mandatory and optional promotions compatible with the given value added service. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getPromotionsValueAddedService
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/valueAddedServiceId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Promotion
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/value_added_services/{id}/promotions/sellable':
    get:
      tags:
        - Promotions
      summary: Get sellable promotions for value added service
      description: >-
        Returns an array of sellable mandatory and optional promotions for a value added service id. Includes main characteristics of each promotion, as well as terms associated to the promotion.
      operationId: getSellablePromotionsValueAddedService
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/valueAddedServiceId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/customerTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
      responses:
        '200':
          description: Promotions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/promotions/{id}':
    get:
      tags:
        - Promotions
      summary: Get promotion detail by id
      description: This endpoint returns the promotion information by a given id
      operationId: getPromotionById
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/promotionId'
      responses:
        '200':
          description: Promotion
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromotionDetail_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{commercial_product_id}/promotions/{promotion_id}/incompatibilities':
    get:
      tags:
        - Promotions
      summary: Get incompatible promotions in the context of a commercial_product
      description: >
        Returns a paginated list of incompatible promotions for the given promotion if any or an empty list if there are no incompatibilities

      operationId: getPromotionIncompatibilitiesByCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId2'
        - $ref: '#/components/parameters/promotionId2'
        - $ref: '#/components/parameters/applicableAt'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: List of incompatible promotions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromotionIncompatibilityPaginatedList'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{bcp_id}/promotions/{promotion_id}/incompatibilities':
    get:
      tags:
        - Promotions
      summary: >-
        Get incompatible promotions in the context of a bundled_commercial_product
      description: >
        Returns a paginated list of incompatible promotions for the given promotion if any or an empty list if there are no incompatibilities

      operationId: getPromotionIncompatibilitiesByBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId2'
        - $ref: '#/components/parameters/promotionId2'
        - $ref: '#/components/parameters/applicableAt'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: List of incompatible promotions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromotionIncompatibilityPaginatedList'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_devices/terms/sellable':
    get:
      tags:
        - Commercial Devices
      summary: Get terms assigned to sellable commercial devices.
      description: >-
        Returns an array with the information about terms (campaignid, penalty, permanency) assigned to sellable commercial devices for the specified service provider.
      operationId: getSellableCommercialDevicesTerms
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialDevicesTerms_Response'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/commercial_devices/sellable':
    get:
      tags:
        - Commercial Devices
      summary: Get sellable commercial devices for commercial product
      description: >-
        Returns an array of sellable mandatory and optional commercial devices for a commercial product id, when this is sold as a standalone product. Includes main characteristics of each device, as well as fees and installment plans associated to the commercial device and terms associated to them.
      operationId: getSellableCommercialDevicesCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/paymentType'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/permanence'
      responses:
        '200':
          description: Commercial devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialDevice'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable':
    get:
      deprecated: true
      tags:
        - Commercial Devices
      summary: Get sellable commercial devices for bundled commercial product
      description: >-
        **Deprecated.** Use `GET /orgs/{org_id}/bundled_products/{bundled_product_id}/bundled_commercial_products/{bcp_id}/commercial_devices/sellable` instead.

        Returns an array of sellable mandatory and optional commercial devices related to a bundled commercial product id, when this is sold as part of a bundled product. Includes main characteristics of each device, as well as fees and installment plans associated to the commercial device and terms associated to them.
      operationId: getSellableCommercialDevicesBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/donorNumerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/paymentType'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/permanence'
        - $ref: '#/components/parameters/permanenceType'
        - $ref: '#/components/parameters/mandatory'
      responses:
        '200':
          description: Commercial devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialDevice'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{bundled_product_id}/bundled_commercial_products/{bcp_id}/commercial_devices/sellable':
    get:
      tags:
        - Commercial Devices
      summary: >-
        Get sellable commercial devices for bundled commercial product in a particular bundled product
      description: >-
        Returns an array of sellable mandatory and optional commercial devices related to a bundled commercial product id, when this is sold as part of a bundled product. Includes main characteristics of each device, as well as fees and installment plans associated to the commercial device and terms associated to them.
      operationId: getSellableCommercialDevicesByBundledProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId3'
        - $ref: '#/components/parameters/bundledCommercialProductId2'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/donorNumerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/paymentType'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/permanence'
        - $ref: '#/components/parameters/permanenceType'
        - $ref: '#/components/parameters/mandatory'
      responses:
        '200':
          description: Commercial devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialDevice'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/value_added_services/{id}/commercial_devices/sellable':
    get:
      tags:
        - Commercial Devices
      summary: Get sellable commercial devices for value added service
      description: >-
        Returns an array of sellable mandatory and optional commercial devices for a value added service id. Includes main characteristics of each device, as well as fees and installment plans associated to the commercial device and terms associated to them.
      operationId: getSellableCommercialDevicesValueAddedService
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/valueAddedServiceId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/permanence'
      responses:
        '200':
          description: Commercial devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialDevice'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_devices/refinance':
    get:
      tags:
        - Commercial Devices
      summary: >-
        Get refinance conditions for the last payment of a previous financed commercial device
      description: >-
        Returns all the different refinance possibilities for the last payment of a previous financed commercial device
      operationId: getRefinanceConditions
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileNameRequired'
        - $ref: '#/components/parameters/refinanceAmount'
      responses:
        '200':
          description: Refinance conditions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialDevice_installment_plan_refinance'
              examples:
                Refinance conditions:
                  $ref: '#/components/examples/RefinanceConditions'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_devices':
    get:
      tags:
        - Commercial Devices
      summary: Get paginated commercial devices
      description: >-
        Returns paginated commercial devices for the correspondent Service Provider. Default order ASC
      operationId: getCommercialDevices
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/renewalCategory'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/donorNumerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/subsOfferSegmentName'
        - $ref: '#/components/parameters/paymentType'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceCategoryIn'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/deviceName'
        - $ref: '#/components/parameters/deviceNameContains'
        - $ref: '#/components/parameters/deviceModel'
        - $ref: '#/components/parameters/deviceModelContains'
        - $ref: '#/components/parameters/deviceColour'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/deviceIdContains'
        - $ref: '#/components/parameters/permanence'
        - $ref: '#/components/parameters/permanenceType'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/sellable'
        - $ref: '#/components/parameters/mandatory'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommercialDeviceList'
        '401':
          $ref: '#/components/responses/401Unauthorized'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_devices/sellable':
    get:
      tags:
        - Commercial Devices
      summary: Get sellable commercial devices
      description: >-
        Returns all commercial devices that are commercially active for the correspondent Service Provider
      operationId: getSellableCommercialDevices
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/renewalCategory'
        - $ref: '#/components/parameters/numerationTypeName'
        - $ref: '#/components/parameters/donorNumerationTypeName'
        - $ref: '#/components/parameters/commercialProfileName'
        - $ref: '#/components/parameters/subsOfferSegmentName'
        - $ref: '#/components/parameters/paymentType'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/permanence'
        - $ref: '#/components/parameters/permanenceType'
      responses:
        '200':
          description: Commercial Devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialDeviceAlone'
              examples:
                Sellable Commercial devices:
                  $ref: '#/components/examples/SellableCommercialDevice'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_devices/{id}':
    get:
      tags:
        - Commercial Devices
      summary: Get commercial device
      description: Returns basic commercial device info for a commercial device id
      operationId: getCommercialDevice
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialDeviceId'
      responses:
        '200':
          description: Commercial device
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommercialDevice'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{bcp_id}/commercial_devices/{commercial_device_id}':
    get:
      tags:
        - Commercial Devices
      summary: Get commercial device by ID within bundled product
      description: >-
        Returns basic commercial device info for a commercial device id with a related bundled commercial product
      operationId: getCommercialDeviceWithinBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId2'
        - $ref: '#/components/parameters/commercialDeviceIdPath'
      responses:
        '200':
          description: Commercial device
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommercialDevice'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/rate_plans':
    get:
      tags:
        - Rate Plans
      summary: Get rate plans
      description: Returns the rate plans related to a commercial product id
      operationId: getRatePlansCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
      responses:
        '200':
          description: RatePlan
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RatePlan'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/base_profiles':
    get:
      tags:
        - Base profiles and services
      summary: Get base profiles
      description: >-
        Returns an array of base profiles related to a commercial product id. Includes network provisioning details for each base profile as well as details of the services provisioned in the connection process as part of the profile.
      operationId: getBaseProfilesCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
      responses:
        '200':
          description: Base Profile
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BaseProfile'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/base_profiles':
    get:
      tags:
        - Base profiles and services
      summary: Get a list of existing base profiles
      description: Get a list of existing base profiles
      operationId: getBaseProfiles
      parameters:
        - $ref: '#/components/parameters/orgId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/getBaseProfiles_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/base_profiles/{id}':
    get:
      tags:
        - Base profiles and services
      summary: Get a particular base profile
      description: Get a particular base profile
      operationId: getBaseProfileById
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/baseProfileId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getBaseProfiles_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/base_profiles/{id}/services':
    get:
      tags:
        - Base profiles and services
      summary: Get a particular base profile
      description: Get a particular base profile
      operationId: getServicesByBP
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/baseProfileId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BaseProfile_services'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/value_added_services':
    get:
      tags:
        - Value Added Services
      summary: Get value added services for commercial product
      description: >-
        Returns an array of both mandatory and optional value added services related to a commercial product id, eligible when the commercial product is sold as a standalone product. Includes basic characteristics of each value added service, as well as applicable fees, with the correspondent values and tax details.
      operationId: getValueAddedServicesCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/mysimServiceId'
      responses:
        '200':
          description: Value Added Service
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValueAddedService'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/value_added_services/sellable':
    get:
      tags:
        - Value Added Services
      summary: Get sellable value added services for commercial product
      description: >-
        Returns an array of sellable mandatory and optional value added services for a commercial product id, when this is sold as a standalone product. Includes main characteristics of each value added service, as well as fees associated to the value added service.
      operationId: getSellableValueAddedServicesCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: ValueAddedServices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValueAddedService'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{id}/value_added_services':
    get:
      tags:
        - Value Added Services
      summary: Get value added services for bundled commercial product
      description: >-
        Returns an array of both mandatory and optional value added services related to a bundled commercial product id, eligible when the commercial product is sold as a bundled commercial product. Includes main characteristics of each value added service, as well as fees associated to them.
      operationId: getValueAddedServicesBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
        - $ref: '#/components/parameters/mysimServiceId'
      responses:
        '200':
          description: Value Added Service
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValueAddedService'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{id}/value_added_services/sellable':
    get:
      tags:
        - Value Added Services
      summary: Get sellable value added services for bundled commercial product
      description: >-
        Returns an array of sellable mandatory and optional value added services relatd to a bundled commercial product id, when this is sold as part of a bundled product. Includes main characteristics of each value added service, as well as fees associated to the value added service.
      operationId: getSellableValueAddedServicesBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: ValueAddedServices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValueAddedService'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{bp_id}/bundled_commercial_products/{bcp_id}/value_added_services/sellable':
    get:
      tags:
        - Value Added Services
      summary: >-
        Get sellable value added services for bundled commercial product in a particular bundled product
      description: >-
        Returns an array of sellable mandatory and optional value added services relatd to a bundled commercial product id, when this is sold as part of a bundled product. Includes main characteristics of each value added service, as well as fees associated to the value added service.
      operationId: getSellableValueAddedServicesBundledCommercialProductbyBPId
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId2'
        - $ref: '#/components/parameters/bundledCommercialProductId2'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: ValueAddedServices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValueAddedService'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  ? '/orgs/{org_id}/bundled_products/{bp_id}/bundled_product_subs_types/{bpst_id}/bundled_commercial_products/{bcp_id}/value_added_services/sellable'
  : get:
      tags:
        - Value Added Services
      summary: >-
        Get sellable value added services for bundled commercial product in a particular bundled product
      description: >-
        Returns an array of sellable mandatory and optional value added services relatd to a bundled commercial product id, when this is sold as part of a bundled product. Includes main characteristics of each value added service, as well as fees associated to the value added service.
      operationId: getSellableValueAddedServicesBundledCommercialProductbyBPIdBPST
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId2'
        - $ref: '#/components/parameters/bundledProductSubscriptionTypeId2'
        - $ref: '#/components/parameters/bundledCommercialProductId2'
        - $ref: '#/components/parameters/saleTypeName'
      responses:
        '200':
          description: ValueAddedServices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ValueAddedService'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/value_added_services/{id}/services':
    get:
      tags:
        - Services
      summary: Get services
      description: >-
        Returns an array of the services provided with the given value added service
      operationId: getServicesValueAddedService
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/valueAddedServiceId'
      responses:
        '200':
          description: Service
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Service'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_products/{id}/commercial_infos':
    get:
      tags:
        - Commercial Infos
      summary: Get commercial infos for commercial product
      description: >-
        Returns an array of commercial info related to a commercial product id, applicable when the commercial product is sold as a standalone product. Commercial Info are currently used for configuring details to be shown within pre-agreement landing page and details to be shown within agreement document.
      operationId: getCommercialInfosCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProductId'
      responses:
        '200':
          description: CommercialInfo
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialInfo'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_products/{id}/commercial_infos':
    get:
      tags:
        - Commercial Infos
      summary: Get commercial infos for bundled product
      description: >-
        Returns an array of commercial info related to a bundled product id. Commercial Info are currently used for configuring details to be shown within pre-agreement landing page and details to be shown within agreement document.
      operationId: getCommercialInfosBundledProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledProductId'
      responses:
        '200':
          description: CommercialInfo
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialInfo'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/bundled_commercial_products/{id}/commercial_infos':
    get:
      tags:
        - Commercial Infos
      summary: Get commercial infos for bundled commercial product
      description: >-
        Returns an array of commercial info related to a bundled commercial product id, applicable when the commercial product is sold within a bundled product. Commercial Info are currently used for configuring details to be shown within pre-agreement landing page and details to be shown within agreement document.
      operationId: getCommercialInfosBundledCommercialProduct
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/bundledCommercialProductId'
      responses:
        '200':
          description: CommercialInfo
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialInfo'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/free_units_packages/{id}/commercial_infos':
    get:
      tags:
        - Commercial Infos
      summary: Get commercial infos for free units package
      description: >-
        Returns an array of commercial info related to a free units package. Commercial Info are currently used for configuring details to be shown within pre-agreement landing page and details to be shown within agreement document.
      operationId: getCommercialInfosFreeUnitsPackage
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/freeUnitsPackageId'
      responses:
        '200':
          description: CommercialInfo
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialInfo'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/promotions/{id}/commercial_infos':
    get:
      tags:
        - Commercial Infos
      summary: Get commercial infos for promotion
      description: >-
        Returns an array of commercial info related to a promotion. Commercial Info are currently used for configuring details to be shown within pre-agreement landing page and details to be shown within agreement document.
      operationId: getCommercialInfosPromotion
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/promotionId'
      responses:
        '200':
          description: CommercialInfo
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialInfo'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/value_added_services/{id}/commercial_infos':
    get:
      tags:
        - Commercial Infos
      summary: Get commercial infos for value added service
      description: >-
        Returns an array of commercial info related to a value added service. Commercial Info are currently used for configuring details to be shown within pre-agreement landing page and details to be shown within agreement document.
      operationId: getCommercialInfosValueAddedService
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/valueAddedServiceId'
      responses:
        '200':
          description: CommercialInfo
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommercialInfo'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/transaction_types':
    get:
      tags:
        - Transaction types
      summary: Get transaction types
      description: This service returns an array with all the transaction types defined
      operationId: getTransactionTypes
      parameters:
        - $ref: '#/components/parameters/orgId'
      responses:
        '200':
          description: List of transaction_types
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TransactionType'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/transaction_types/{transaction_type_id}':
    get:
      tags:
        - Transaction types
      summary: Get transaction type
      description: This service returns the information for a particular transaction type
      operationId: getTransactionTypesById
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/transactionTypeId'
      responses:
        '200':
          description: Transaction Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionType'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/devices':
    get:
      tags:
        - Devices
      summary: Get a list with all the devices
      description: Get a list with all the devices related to the organization specified
      operationId: getDevices
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/languageCode'
        - $ref: '#/components/parameters/categoryWeb'
        - $ref: '#/components/parameters/categoryGroup'
      responses:
        '200':
          description: OK
          headers:
            Content-Language:
              $ref: '#/components/headers/contentLanguage'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Device_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/devices/sellable':
    get:
      tags:
        - Devices
      summary: Get a list with all the sellable devices
      description: >-
        Get a list with all the sellable devices related to the organization specified
      operationId: getSellableDevices
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileNameRequired'
        - $ref: '#/components/parameters/deviceCategory'
        - $ref: '#/components/parameters/deviceBrand'
        - $ref: '#/components/parameters/genericCode'
        - $ref: '#/components/parameters/languageCode'
        - $ref: '#/components/parameters/categoryWeb'
        - $ref: '#/components/parameters/categoryGroup'
      responses:
        '200':
          description: OK
          headers:
            Content-Language:
              $ref: '#/components/headers/contentLanguage'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Device_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/devices/{device_id}':
    get:
      tags:
        - Devices
      summary: Get a list with all the information of devices
      description: >-
        Get a list with all the information of devices related with the {org_id} specified
      operationId: getDevicesById
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/deviceId'
        - $ref: '#/components/parameters/languageCode'
      responses:
        '200':
          description: OK
          headers:
            Content-Language:
              $ref: '#/components/headers/contentLanguage'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_profiles':
    get:
      tags:
        - Commercial profiles
      summary: Get a list with the commercial profiles defined
      description: >-
        Get a list with all the commercial profiles related with the {org_id} specified
      operationId: getComProfiles
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/visibilityType'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/getCommercialProfileBasic_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_profiles/{com_profile_id}/commercial_products':
    get:
      tags:
        - Commercial profiles
      summary: >-
        Get a list of commercial products availables for a particular commercial profile and tenant
      description: >-
        Get a list of commercial products availables for a particular commercial profile and tenant
      operationId: getComProductsByComProfile
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileExId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/getCPByComProfile_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_profiles/{com_profile_id}/free_units_packages':
    get:
      tags:
        - Commercial profiles
      summary: >-
        Get a list of free units packages availables for a particular commercial profile and tenant
      description: >-
        Get a list of free units packages availables for a particular commercial profile and tenant
      operationId: getFUPByComProfile
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileExId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/getFUPByComProfile_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_profiles/{com_profile_id}/promotions':
    get:
      tags:
        - Commercial profiles
      summary: >-
        Get a list of promotions availables for a particular commercial profile and tenant
      description: >-
        Get a list of promotions availables for a particular commercial profile and tenant
      operationId: getPromoByComProfile
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileExId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/getPromoByComProfile_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/commercial_profiles/{com_profile_id}/bundled_products':
    get:
      tags:
        - Commercial profiles
      summary: >-
        Get a list of bundled products availables for a particular commercial profile and tenant
      description: >-
        Get a list of bundled products availables for a particular commercial profile and tenant
      operationId: getBPByComProfile
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/commercialProfileExId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/getBPByComProfile_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/subs_types':
    get:
      tags:
        - Misc services
      summary: Get a list of available subscription types
      description: Get a list of available subscription types
      operationId: getSubsTypes
      parameters:
        - $ref: '#/components/parameters/orgId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubsTypeName_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/subs_types/{id}':
    get:
      tags:
        - Misc services
      summary: Get a particular subscription type
      description: Get a particular subscription type
      operationId: getSubsTypesById
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/subscriptionTypeId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubsTypeName_Response'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/territory_owners':
    get:
      tags:
        - Misc services
      summary: Get a list of available territory owners
      description: Get a list of available territory owners
      operationId: getTerritoryOwners
      parameters:
        - $ref: '#/components/parameters/orgId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TerritoryOwnerAlone'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
  '/orgs/{org_id}/territory_owners/{id}':
    get:
      tags:
        - Misc services
      summary: Get a particular territory owner
      description: Get a particular territory owner
      operationId: getTerritoryOwnersById
      parameters:
        - $ref: '#/components/parameters/orgId'
        - $ref: '#/components/parameters/territoryOwnerId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TerritoryOwnerAlone'
        '400':
          $ref: '#/components/responses/400BadRequestString'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
        - Bearer: []
components:
  schemas:
    InsuranceType:
      type: string
      enum:
        - GLOBAL
        - MULTIMEDIA
      example: GLOBAL
    CommercialProductSimple:
      type: object
      properties:
        id:
          type: string
          example: '341'
        name:
          type: string
          example: TARIFA MAS 10GB
        marketing_name:
          type: string
          example: TARIFA MAS 10GB
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: TARIFA MAS 10GB
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
        invoice_description:
          type: string
          example: TARIFA MAS 10GB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        mysim_commercial_product_id:
          type: string
          description: internal id used within MySim
          example: '770'
        data_sharing_compatible:
          type: boolean
          example: true
        penalty_reference:
          type: number
          format: double
          description: >-
            it is the reference price of the fee to take in account when a penalty is applied to the terminal
          example: 6.9043
        min_devices:
          type: integer
          description: Minimum number of devices that must be purchased for this tariff.
          example: 1
        max_devices:
          type: integer
          description: Maximum number of devices that can be purchased for this tariff.
          example: 1
        max_concurrent_views:
          type: integer
          description: Maximum number of concurrent views allowed for the TV tariff.
          example: 2
        insurance_type:
          type: string
          x-extensible-enum:
            - GLOBAL
            - MULTIMEDIA
          description: |
            Type of insurance product. Possible values:
            - GLOBAL
            - MULTIMEDIA
            - null: When CommercialProduct is not a Zurich insurance tariff
          example: GLOBAL
    getCPByComProfile_Response:
      allOf:
        - $ref: '#/components/schemas/CommercialProductSimple'
        - type: object
          properties:
            from:
              type: string
              format: date-time
              description: >-
                date when the commercial product starts to be included within the commercial profile
              example: '2022-10-03T22:00:00Z'
            to:
              type: string
              format: date-time
              description: >-
                date when the commercial product starts to be included within the commercial profile
              example: '2080-10-03T22:00:00Z'
    CommercialProductBasic:
      allOf:
        - $ref: '#/components/schemas/CommercialProductSimple'
        - type: object
          properties:
            billing_type:
              $ref: '#/components/schemas/CommercialProductBasic_billing_type'
            subs_type:
              $ref: '#/components/schemas/SubsTypeName_Response'
            fees:
              type: array
              items:
                $ref: '#/components/schemas/Fee_Response'
    CommercialProduct_Response:
      allOf:
        - $ref: '#/components/schemas/CommercialProductSimple'
        - type: object
          properties:
            free_units_packages:
              type: array
              items:
                $ref: '#/components/schemas/FreeUnitsPackage_Response'
            promotions:
              type: array
              items:
                $ref: '#/components/schemas/PromotionDetail_Response'
            commercial_profiles:
              type: array
              items:
                $ref: '#/components/schemas/CommercialProfile_Response'
            fees:
              type: array
              items:
                $ref: '#/components/schemas/Fee_Response'
    CommercialProduct_SubsTypeName_Response:
      allOf:
        - $ref: '#/components/schemas/CommercialProduct_Response'
        - type: object
          properties:
            subs_type:
              $ref: '#/components/schemas/SubsTypeName_Response'
            fees:
              type: array
              items:
                $ref: '#/components/schemas/Fee_Response'
    SwitchCommercialProduct_Response:
      allOf:
        - $ref: '#/components/schemas/CommercialProduct_Response'
        - type: object
          properties:
            used_for_automatic_orphan_subscription_change:
              type: boolean
              description: >-
                indicates if the change is supposed to be used for automatic commercial product changes triggered when a subscription within a package becomes orphan (i.e after partial deactivation of fixed and broadband within a 3P package, the mobile subscription becomes orphan)
              example: false
    CommercialProductBasic_billing_type:
      type: object
      properties:
        id:
          type: string
          example: '1'
        name:
          type: string
          example: POSPAGO
        description:
          type: string
      example: modalidad postpago
    BundledProduct_Response:
      type: object
      properties:
        id:
          type: string
          example: '182'
        name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        marketing_name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: Fibra 300 + Plan 3GB con ilimitadas
        bundled_segment:
          $ref: '#/components/schemas/BundledSegment_Response'
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
        invoice_description:
          type: string
          example: TARIFA MAS 10GB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        category:
          $ref: '#/components/schemas/BundleCategory_Response'
        category_id:
          type: string
          example: '2'
        bundled_type:
          $ref: '#/components/schemas/BundledType_Response'
        download_speed:
          type: string
          description: >-
            real provisioning download speed, used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        upload_speed:
          type: string
          description: >-
            real provisioning upload speed, used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        internet_speed:
          type: string
          description: >-
            commercial speed to be shown to client, could be different than the down and upload provisioning speed, used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/Fee_Response'
        bundled_product_subs_types:
          type: array
          description: array of subscription types included within the bundled products
          items:
            $ref: '#/components/schemas/BundledProductSubsType'
        promotions:
          type: array
          description: array of promotions compatible with the bundled product
          items:
            $ref: '#/components/schemas/PromotionDetail_Response'
        commercial_profiles:
          type: array
          items:
            $ref: '#/components/schemas/CommercialProfile_Response'
    SwitchBundledProduct_Response:
      type: object
      properties:
        id:
          type: string
          example: '182'
        name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        marketing_name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: Fibra 300 + Plan 3GB con ilimitadas
        bundled_segment:
          $ref: '#/components/schemas/BundledSegment_Response'
        category:
          $ref: '#/components/schemas/BundleCategory_Response'
        category_id:
          type: string
          example: '2'
        bundled_type:
          $ref: '#/components/schemas/BundledType_Response'
        download_speed:
          type: string
          description: >-
            used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        upload_speed:
          type: string
          description: >-
            used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        bundled_product_subs_types:
          type: array
          description: array of subscription types included within the bundled products
          items:
            $ref: '#/components/schemas/BundledProductSubsType'
        promotions:
          type: array
          description: array of promotions compatible with the bundled product
          items:
            $ref: '#/components/schemas/PromotionDetail_Response'
        is_downsell:
          type: boolean
          description: >-
            indicates if the switch involves a 3P to 2P change or a 4P to 3P/2P change
          example: false
        used_for_automatic_changes:
          type: boolean
          description: >-
            indicates if the bundled product change is supposed to be used for changes that don’t require manual agent/customer intervention (i,e partial deactivations due to mobile portability processes)
          example: false
        involve_speed_change:
          type: boolean
          description: indicates if the switch involves a speed change
          example: true
        subs_removed:
          type: string
          description: >-
            bundled product subscription type id removed in the automatic change. Null if `used_for_automatic_changes` = false
          example: '5678'
        commercial_profiles:
          type: array
          items:
            $ref: '#/components/schemas/CommercialProfile_Response'
    BundledProductBasic_Response:
      type: object
      properties:
        id:
          type: string
          example: '182'
        name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        marketing_name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        external_id:
          type: string
          example: 2cb2ed65-76e6-4962-9a7e-927fbffcbcf7
          description: >-
            identifies the product in external systems, so it is only informed in bundled with third party interactions, for example Netflix
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: Fibra 300 + Plan 3GB con ilimitadas
        bundled_segment:
          $ref: '#/components/schemas/BundledSegment_Response'
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
        invoice_description:
          type: string
          example: TARIFA MAS 10GB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        category:
          $ref: '#/components/schemas/BundleCategory_Response'
        category_id:
          type: string
          example: '2'
        bundled_type:
          $ref: '#/components/schemas/BundledType_Response'
        download_speed:
          deprecated: true
          type: string
          description: >-
            used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        upload_speed:
          deprecated: true
          type: string
          description: >-
            used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        internet_speed:
          type: string
          description: >-
            commercial speed to be shown to client, could be different than the down and upload provisioning speed, used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        technology:
          $ref: '#/components/schemas/BundledProductBasic_technology'
        territory_owners:
          type: array
          description: >-
            array of territory owners where the bundled product services can be provisioned and the bundled product product can be purchased
          items:
            $ref: '#/components/schemas/TerritoryOwnerDetail'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/Fee_Response'
        bundled_product_subs_types:
          type: array
          description: array of subscription types included within the bundled products
          items:
            $ref: '#/components/schemas/BundledProductSubsTypeDetail'
    getBPByComProfile_Response:
      type: object
      properties:
        id:
          type: string
          example: '182'
        name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        marketing_name:
          type: string
          example: Fibra 300 + Plan 3GB con ilimitadas
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: Fibra 300 + Plan 3GB con ilimitadas
        bundled_segment:
          $ref: '#/components/schemas/BundledSegment_Response'
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
        invoice_description:
          type: string
          example: TARIFA MAS 10GB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        category:
          $ref: '#/components/schemas/BundleCategory_Response'
        category_id:
          type: string
          example: '2'
        download_speed:
          type: string
          description: >-
            used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        upload_speed:
          type: string
          description: >-
            used for filtering purpose within API consumers, fo bundled product with category (‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 2 (FTTH). Null for bundled products with category ((‘Fixed+Broadband' or ‘Fixed+Broadband+Mobile’ or 'Fixed+Broadband+Mobile+TV') and with technology = 1 (ADSL)) or bundled products with category ‘Fixed+Mobile’
          example: '300'
        from:
          type: string
          format: date-time
          description: >-
            date when the promotion starts to be included within the commercial profile
          example: '2022-10-03T22:00:00Z'
        to:
          type: string
          format: date-time
          description: >-
            date when the promotion starts to be included within the commercial profile
          example: '2080-10-03T22:00:00Z'
    BundledProductSubsTypeBasic:
      type: object
      properties:
        id:
          type: string
          example: '731'
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        min_quantity:
          type: number
          description: >-
            number of minimum subscriptions that must be included within the bundled product for the correspondent subscription type
          format: int32
          example: 1
        max_quantity:
          type: number
          description: >-
            number of maximum subscriptions that can be included within the bundled product for the correspondent subscription type
          format: int32
          example: 1
        is_mandatory:
          type: boolean
          description: >-
            indicates if the correspondent subscription type is mandatory within the bundled product
          example: true
        used_for_automatic_orphan_subscription_change:
          type: boolean
          description: >-
            boolean to indicate if the bundled commercial product change is available for manual or automatic changes.
          example: false
        subs_type:
          $ref: '#/components/schemas/SubsTypeName_Response'
        min_main_lines:
          type: integer
          description: >-
            Minimum number of main line products that must be contracted when this subscription type is included in a bundle.
          format: int32
          example: 1
        max_main_lines:
          type: integer
          description: >-
            Maximum number of main line products that can be contracted when this subscription type is included in a bundle.
          format: int32
          example: 1
    BundledProductSubsType:
      allOf:
        - $ref: '#/components/schemas/BundledProductSubsTypeBasic'
        - type: object
          properties:
            bundled_commercial_products:
              type: array
              description: >-
                array of bundled commercial produts included within the bundled product subscription type
              items:
                $ref: '#/components/schemas/BundledCommercialProduct'
    BundledProductSubsTypeDetail:
      allOf:
        - $ref: '#/components/schemas/BundledProductSubsTypeBasic'
        - type: object
          properties:
            bundled_commercial_products:
              type: array
              description: >-
                array of bundled commercial produts included within the bundled product subscription type
              items:
                $ref: '#/components/schemas/BundledCommercialProductDetail'
    BundledCommercialProductBasic:
      type: object
      properties:
        id:
          type: string
          example: '4028'
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        is_mandatory:
          type: boolean
          description: >-
            indicates if the bundled commercial product is mandatory within the bundled product subscription type
          example: true
        is_main_line:
          type: boolean
          description: >-
            indicates if the bundled commercial product must be handled as main line within the bundled product
          example: true
        is_extra:
          type: boolean
          description: >-
            indicates if the bundled commercial product must be handed as an extra line within the bundled product
          example: false
        is_additional:
          type: boolean
          description: >-
            indicates if the bundled commercial product must be handed as an additional line within the bundled product
          example: false
        is_bundled:
          type: boolean
          description: >-
            indicates if the bundled commercial product must be 'bundled' in invoice, contract and pre-contractual info.
          example: true
        duo_type:
          $ref: '#/components/schemas/DuoType_Response'
        max_quantity:
          type: number
          description: >-
            max quantity of the correspondent bundled commercial product allowed for the specific bundled product subscription type
          format: int32
          example: 1
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
    BundledCommercialProductDetail:
      allOf:
        - $ref: '#/components/schemas/BundledCommercialProductBasic'
        - type: object
          properties:
            commercial_product:
              $ref: '#/components/schemas/CommercialProductSimple'
            fees:
              type: array
              items:
                $ref: '#/components/schemas/Fee_Response'
    BundledCommercialProduct:
      allOf:
        - $ref: '#/components/schemas/BundledCommercialProductBasic'
        - type: object
          properties:
            commercial_product:
              $ref: '#/components/schemas/CommercialProduct_Response'
            fees:
              type: array
              items:
                $ref: '#/components/schemas/Fee_Response'
            commercial_profiles:
              type: array
              items:
                $ref: '#/components/schemas/CommercialProfile_Response'
    BundledCommercialProductCanSwitch:
      allOf:
        - $ref: '#/components/schemas/BundledCommercialProduct'
        - type: object
          properties:
            used_for_automatic_orphan_subscription_change:
              type: boolean
              description: >-
                boolean to indicate if the bundled commercial product change is available for manual or automatic changes.
              example: false
    getBCPbyBPCanMigrate:
      type: object
      properties:
        origin_bundled_commercial_product:
          type: string
          example: 3456_BUNDLED_3P
        destination_bundled_commercial_product:
          type: string
          example: 3489_BUNDLED_3P
    FreeUnitsPackage_Response:
      allOf:
        - $ref: '#/components/schemas/FreeUnitsPackageDetailBySP'
        - type: object
          properties:
            from:
              type: string
              description: >-
                date when the free units package starts to be included within the commercial product
              format: date-time
            to:
              type: string
              description: >-
                date when the free units package is no longer included within the commercial product
              format: date-time
            is_mandatory:
              type: boolean
              description: >-
                indicates if the free units package is mandatory with the commercial product
              example: true
            is_mandatory_optional:
              type: boolean
              description: >-
                indicates if the free units package is one of those that require at least one package to be selected with the commercial product
              example: false
            is_mandatory_for_sale:
              type: boolean
              description: >-
                indicates if the free units package is mandatory with the commercial product during sale, but not for migration (commercial product change)
              example: true
    FreeUnitsPackageDetailBySP:
      type: object
      properties:
        id:
          type: string
          example: '313'
        name:
          type: string
          example: INTERNET 10GB_TPILI
        marketing_name:
          type: string
          example: INTERNET 10GB_TPILI
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: INTERNET 10GB_TPILI
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
        invoice_description:
          type: string
          example: TARIFA MAS 10GB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        mysim_free_units_package_id:
          type: string
          description: >-
            internal id used within Mysim, null for 'dummy' unlimited voice free units packages
          example: '469'
        unit_amount:
          type: number
          description: >-
            amount of units granted within the package.Currently, the unit type is always the same depending on the event type. VOZ (secs), DATOS (bytes), SMS (SMS)
          format: int64
          example: 10737418240
          deprecated: true
        volume_home_sl0:
          type: number
          description: Data volume in bytes navigable at maximum speed
          format: int64
          example: 10737418240
        volume_home_sl1:
          type: number
          description: Data volume in bytes navigable at intermediate speed level (3 Mbps)
          format: int64
          example: 10737418240
        volume_rlah_sl0:
          type: number
          description: >-
            Data volume in bytes navigable at maximum speed with roaming like at home
          format: int64
          example: 10737418240
        volume_rlah_sl1:
          type: number
          description: >-
            Data volume in bytes navigable at intermediate speed level (3 Mbps) with roaming like at home
          format: int64
          example: 10737418240
        volume_nr_sl0:
          type: number
          description: >-
            Data volume in bytes navigable at maximum speed with national roaming
          format: int64
          example: 10737418240
        volume_nr_sl1:
          type: number
          description: >-
            Data volume in bytes navigable at intermediate speed level (3 Mbps) with national roaming
          format: int64
          example: 10737418240
        event_type:
          type: string
          example: DATA
          x-extensible-enum:
            - VOICE
            - DATA
            - SMS
        unlimited:
          type: boolean
          description: indicates if the free units is sold as an unlimited package
          example: false
        max_grants:
          type: number
          description: >-
            maximum number of grants before the free units package expires (the maxGrants value never includes the first grant period. This means that a free units package with NRTIMES = 11 that is activated on 15/01/2020 will be active until 31/12/2020). Zero for recurring packages with no limit. In this case the package will expire when being explicitly deactivated. Null for one time packages
          format: int32
          example: 0
        is_recurring_package:
          type: boolean
          description: >-
            indicates if the free units package is a periodical package. Currently, if it is periodical, monthly schedule will be assigned
          example: true
        applicability_priority:
          type: number
          description: priority of the free units package when consuming
          format: int32
          example: 1
        used_for_policy_rule_change:
          type: boolean
          description: >-
            indicates if the free units package is used for policy rules changes (for changing the download speed when limits are reached)
          example: false
        category:
          type: string
          example: ONNET
          x-extensible-enum:
            - FIXTOMOBILE
            - FIXTOFIX
            - ONNET
            - INTERNATIONAL
            - ROAMING
        sharing_compatible:
          type: boolean
          example: true
        free_units_package_template:
          $ref: '#/components/schemas/FreeUnitsPackage_free_units_package_template_Response'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/Fee_Response'
        promotions:
          type: array
          items:
            $ref: '#/components/schemas/PromotionDetail_Response'
        base_profiles:
          type: array
          items:
            $ref: '#/components/schemas/FreeUnitsPackageDetail_base_profiles'
        commercial_profiles:
          type: array
          items:
            $ref: '#/components/schemas/CommercialProfile_Response'
    getFUPByComProfile_Response:
      type: object
      properties:
        id:
          type: string
          example: '313'
        name:
          type: string
          example: INTERNET 10GB_TPILI
        marketing_name:
          type: string
          example: INTERNET 10GB_TPILI
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: INTERNET 10GB_TPILI
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
        invoice_description:
          type: string
          example: TARIFA MAS 10GB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        mysim_free_units_package_id:
          type: string
          description: >-
            internal id used within Mysim, null for 'dummy' unlimited voice free units packages
          example: '469'
        unit_amount:
          type: number
          description: >-
            amount of units granted within the package. Currently, the unit type is always the same depending on the event type. VOZ (secs), DATOS (bytes), SMS (SMS)
          format: int64
          example: 10737418240
          deprecated: true
        volume_home_sl0:
          type: number
          description: Data volume in bytes navigable at maximum speed
          format: int64
          example: 10737418240
        volume_home_sl1:
          type: number
          description: Data volume in bytes navigable at intermediate speed level (3 Mbps)
          format: int64
          example: 10737418240
        volume_rlah_sl0:
          type: number
          description: >-
            Data volume in bytes navigable at maximum speed with roaming like at home
          format: int64
          example: 10737418240
        volume_rlah_sl1:
          type: number
          description: >-
            Data volume in bytes navigable at intermediate speed level (3 Mbps) with roaming like at home
          format: int64
          example: 10737418240
        volume_nr_sl0:
          type: number
          description: >-
            Data volume in bytes navigable at maximum speed with national roaming
          format: int64
          example: 10737418240
        volume_nr_sl1:
          type: number
          description: >-
            Data volume in bytes navigable at intermediate speed level (3 Mbps) with national roaming
          format: int64
          example: 10737418240
        unlimited:
          type: boolean
          description: indicates if the free units is sold as an unlimited package
          example: false
        max_grants:
          type: number
          description: >-
            maximum number of grants before the free units package expires (the maxGrants value never includes the first grant period. This means that a free units package with NRTIMES = 11 that is activated on 15/01/2020 will be active until 31/12/2020). Zero for recurring packages with no limit. In this case the package will expire when being explicitly deactivated. Null for one time packages
          format: int32
          example: 0
        is_recurring_package:
          type: boolean
          description: >-
            indicates if the free units package is a periodical package. Currently, if it is periodical, monthly schedule will be assigned
          example: true
        applicability_priority:
          type: number
          description: priority of the free units package when consuming
          format: int32
          example: 1
        used_for_policy_rule_change:
          type: boolean
          description: >-
            indicates if the free units package is used for policy rules changes (for changing the download speed when limits are reached)
          example: false
        sharing_compatible:
          type: boolean
          example: true
        from:
          type: string
          format: date-time
          description: >-
            date when the free units package starts to be included within the commercial profile
          example: '2022-10-03T22:00:00Z'
        to:
          type: string
          format: date-time
          description: >-
            date when the free units package starts to be included within the commercial profile
          example: '2080-10-03T22:00:00Z'
    FreeUnitsPackage_free_units_package_template_Response:
      type: object
      properties:
        id:
          type: string
          example: BONUS_DATA_NATIONAL_RLAH
        event_type:
          type: string
          example: DATA
          x-extensible-enum:
            - VOICE
            - DATA
            - SMS
        applicability_rule:
          type: string
          description: >-
            applicability rule for the free units package. Defines when the free units of the package can be consumed. Currently, this is always based on the packageType. Therefore, the only value allowed for now will be ‘ByEventTypeOriginDestination’
          example: ByEventTypeOriginDestination
    TargetApplicabilityRule:
      type: string
      enum:
        - PreviousInvoiceTotalAmount
        - CurrentInvoiceTotalAmount
        - FeeSubtype
        - NOT_APPLICABLE
      example: FeeSubtype
    getPromoByComProfile_Response:
      type: object
      properties:
        id:
          type: string
          example: '174'
        name:
          type: string
          example: MM_DTO 3EUR DURANTE 12 MESES
        marketing_name:
          type: string
          example: MM_DTO 3EUR DURANTE 12 MESES
        digital_channels_name:
          type: string
          description: name used within digital channels
          example: MM_DTO 3EUR DURANTE 12 MESES
        invoice_name:
          type: string
          example: TARIFA MAS 10GB
        invoice_description:
          type: string
          example: TARIFA MAS 10GB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        need_promotion_code:
          type: boolean
          description: >-
            boolean to indicate if the promotion requires capturing a code for being applied
          example: false
        need_existent_MSISDN:
          type: boolean
          description: >-
            boolean to indicate if the promotion requires an existent MSISDN (i,e for M2M campaign)
          example: false
        applicability_model:
          type: string
          description: >-
            it defines how the promotion is applied in terms of calculation phase and application model. FeeGeneraton (for promotions that should be applied when generating one time or recurring fees), Billing (for promotions that should be applied during billing phase),
          example: FeeGeneration
          x-extensible-enum:
            - FeeGeneration
            - Billing
            - NOT_APPLICABLE
        restrictions_applicability_rule:
          type: string
          description: >-
            rule used for obtaining the discount value (% value or fixed value) or top-up amount to be applied. Not used currently because the discount value (% value or fixed value) is fixed, not dependent on restrictions
        target_applicability_rule:
          type: string
          description: >-
            rule used for determining the charges on which the discount is applied. PreviousInvoiceTotalAmount (used for Billing discounts that must be applied to the previous invoice total amount), CurrentInvoiceTotalAmount (used for Billing discounts that must be applied to the current invoice total amount), FeeSubtype (discounts that must be applied to fees with specific subtype)
          x-extensible-enum:
            - PreviousInvoiceTotalAmount
            - CurrentInvoiceTotalAmount
            - FeeSubtype
            - NOT_APPLICABLE
          example: FeeSubtype
        fee_subtypes:
          type: string
          description: >-
            used for promotions with targetApplicabilityRule = FeeSubType, for indicating fee subtypes to which the promotion must be applied
          example: ServiceFee
        calculation_model:
          type: string
          description: >-
            used for obtaining the discount % value/fixed value/top-up amount to be applied. Flat (fixed %/fixed discount value/top-up amount), Bulk (%/fixed discount value/top-up amount depends on the total amount of restrictions. Currently not used)
          example: Flat
          x-extensible-enum:
            - Flat
            - Bulk
        discount_type:
          type: string
          description: it defines if the discount value is a % or a fixed amount
          example: Fixed
          x-extensible-enum:
            - Percentage
            - Fixed
        duration:
          type: number
          description: promotion duration indicated in number of months
          format: int32
          example: 12
        unlimited_duration:
          type: boolean
          description: >-
            Used to indicate if the promotion is valid for an unlimited period of time
          example: false
        keep_on_upgrade:
          type: boolean
          description: >-
            used to indicate if the campaign is maintained when it is currently active and there is a product/bundled product migration to a product/bundled product which is also compatible with the promotion and which has a higher cost
          example: true
        keep_on_downgrade:
          type: boolean
          description: >-
            used to indicate if the campaign is maintained when it is currently active and there is a product/bundled product migration to a product/bundled  product which is also compatible with the promotion and which has a lower cost
          example: false
        priority:
          type: number
          description: >-
            promotion applicability priority (lower value = higher priority). Currently always 1
          format: int32
          example: 1
        is_mandatory:
          type: boolean
          example: false
        xsell_permit:
          type: boolean
          example: true
        reduced_fee_amount:
          type: boolean
          example: true
        value:
          type: number
          format: double
          example: 8.264463
        currency:
          type: string
          description: >-
            null for values associated to promotion with discountTYpe=percentage. euro for rest
          example: euro
        from:
          type: string
          format: date-time
          description: >-
            date when the promotion starts to be included within the commercial profile
          example: '2022-10-03T22:00:00Z'
        to:
          type: string
          format: date-time
          description: >-
            date when the promotion starts to be included within the commercial profile
          example: '2080-10-03T22:00:00Z'
        skip_first_period:
          type: boolean
          example: false
          description: it indicates if the first period of billing is skipped
        reduce_penalty_threshold:
          type: boolean
          example: true
          description: it indicates if the reference value has to be decreased
    PromotionTypeGroup:
      type: string
      enum:
        - BUNDLE
        - OTHER
      example: BUNDLE
    PromotionDetail_Response:
      allOf:
        - $ref: '#/components/schemas/getPromoByComProfile_Response'
        - type: object
          properties:
            type_group:
              type: string
              x-extensible-enum:
                - BUNDLE
                - OTHER
              description: >
                Group classification of the promotion type. Use this field to identify bundle promotions.

                - BUNDLE: Promotion is a bundle type (e.g., PAQUETE SUBS, PAQUETE SUBS MENSUAL)

                - OTHER: Any other promotion type

              example: BUNDLE
            category_name:
              type: string
              description: name to define the promotion category
              example: captación
            type_name:
              type: string
              description: name to define the promotion type
              example: PERMANENCIA
            terms:
              type: array
              items:
                $ref: '#/components/schemas/TermsPromotion_Response'
            transaction_type:
              $ref: '#/components/schemas/TransactionType'
            commercial_profiles:
              type: array
              items:
                $ref: '#/components/schemas/CommercialProfile_Response'
    PromotionCanSwitchPromotion:
      type: object
      properties:
        compatibility_id:
          type: string
          x-extensible-enum:
            - C
            - R
            - 'N'
          example: R
        compatibility_name:
          type: string
          x-extensible-enum:
            - Compatible
            - Reemplazable
            - No Compatible
          example: Reemplazable
        origin_category:
          $ref: '#/components/schemas/PromotionCategories'
        dest_category:
          $ref: '#/components/schemas/PromotionCategories'
        from:
          type: string
          format: date-time
          example: '2022-12-31T23:00:00Z'
        to:
          type: string
          format: date-time
          example: '2049-12-31T23:00:00Z'
    PromotionIncompatibility:
      type: object
      required:
        - promotion_id
      properties:
        promotion_id:
          type: string
          description: Id of the incompatible promotion
          example: '1832'
        promotion_marketing_name:
          type: string
          description: Marketing name of the incompatible promotion
          example: R Descuento 2P 100% 6 meses
        promotion_type:
          type: string
          description: >-
            PromotionType name of the incompatible promotion. Do not use this field to determine if a promotion is a bundle; use promotion_type_group instead.
          example: PAQUETE SUBS
        promotion_type_group:
          type: string
          x-extensible-enum:
            - BUNDLE
            - OTHER
          description: >
            Group classification of the promotion type. Use this field to identify bundle promotions.

            - BUNDLE: Promotion is a bundle type (e.g., PAQUETE SUBS, PAQUETE SUBS MENSUAL)

            - OTHER: Any other promotion type

          example: BUNDLE
        from:
          type: string
          format: date-time
          description: >-
            Date-time that marks the start of the incompatibility between this promotion and the given one
          example: '2025-01-01T00:00:00Z'
        to:
          type: string
          format: date-time
          description: >-
            Date-time that marks the end of the incompatibility between this promotion and the given one
          example: '2025-01-01T00:00:00Z'
    PromotionIncompatibilityPaginatedList:
      type: object
      required:
        - items
        - pagination
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PromotionIncompatibility'
        pagination:
          $ref: '#/components/schemas/Pagination'
    CommercialDeviceSimple:
      type: object
      properties:
        id:
          type: string
          example: '579153'
        terminal_id:
          type: string
          description: >-
            terminalId within legacy MySim, required to be sent within legacy Mysim socket request
          example: '45'
        campaign_id:
          type: string
          description: >-
            optional field, mysim campaign for handling permanency associated to the commercial device
          example: '644'
        renewal_category:
          $ref: '#/components/schemas/RenewalCategory_Response'
        cession_price:
          type: number
          description: >-
            optional field, only informed for 'Cartera' subscriptions to inform the cession price
          format: double
          example: 50.5
        retail_price:
          type: number
          description: >-
            optional field, only informed in non-mandatory commercial devices. is the price the end user pays for the device.
          format: double
          example: 50.5
        discount:
          type: number
          description: >-
            optional field, only informed in non-mandatory commercial devices. is the discount made by the service provider for the device.
          format: double
          example: 50.5
        insured_amount:
          type: number
          description: >-
            field with the amount that can be insured in a particular device, if there is no insurance option a -1.00 value is returned
          format: double
          example: -1
        payment_type:
          $ref: '#/components/schemas/PaymentType_Response'
        numeration_types:
          type: array
          description: optional field that indicates the numeration origin.
          items:
            $ref: '#/components/schemas/NumerationType'
        donor_numeration_types:
          type: array
          description: >-
            optional field that indicates the numeration type in case of portability (numeration type is not Nuevo numero)
          items:
            $ref: '#/components/schemas/DonorNumerationType_Response'
        sale_types:
          type: array
          description: >-
            optional field that indicates if it is a new sale or an action over an existing subscription
          items:
            $ref: '#/components/schemas/SaleTypeName_Response'
        device:
          $ref: '#/components/schemas/CommercialDevice_device_Response'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/CommercialDevice_fees_Response'
        installment_plans:
          type: array
          items:
            $ref: '#/components/schemas/CommercialDevice_installment_plan'
        commercial_profiles:
          type: array
          items:
            $ref: '#/components/schemas/CommercialProfileForCommercialDevice_Response'
        installation_type:
          $ref: '#/components/schemas/InstallationType_Response'
    CommercialDeviceAlone:
      allOf:
        - $ref: '#/components/schemas/CommercialDeviceSimple'
        - type: object
          properties:
            promotions:
              type: array
              items:
                $ref: '#/components/schemas/PromotionDetail_Response'
    CommercialDevice:
      allOf:
        - $ref: '#/components/schemas/CommercialDeviceSimple'
        - type: object
          properties:
            from:
              type: string
              description: >-
                date when the commercial device starts to be applicable for a commercial product/bundled commercial product/value added service
              format: date-time
            to:
              type: string
              description: >-
                date when the commercial device is no longer applicable for a commercial product/bundled commercial product/value added service
              format: date-time
            is_mandatory:
              type: boolean
              description: >-
                if the commercial device is mandatory when purchasing the correspondent commercial product/bundled commercial product/value added service
              example: false
    RatePlan:
      type: object
      properties:
        id:
          type: string
          example: TARIFA_CERO_PREPAGO_TOT_VOZ
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
    getBaseProfiles_Response:
      type: object
      properties:
        id:
          type: string
          example: 71_COMPRODUCT
        name:
          type: string
          example: PERFIL FTTH 50MB
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        network_id:
          type: string
          description: >-
            network that can be used for provisioning the services encapsulated within the base profile
          example: '2'
        network_provisioning_id:
          type: string
          description: >-
            id used for provisioning the commercial product within the correspondent network
          example: MM_CERO_VC_600M
        service_class:
          type: string
          description: >-
            additional value required for provisioning within Yoigo network (networkId=2). Not used for networkId=1
          example: '2900'
        offer_id:
          type: string
          description: >-
            additional value required for provisioning prepaid tariffs within Yoigo network (networkId=2). Not used for networkId=1
          example: '300030015'
        charging_id:
          type: string
          description: >-
            additional value required for provisioning prepaid tariffs within Yoigo network (networkId=2). Not used for networkId=1
          example: '300030015'
        manual_renewal:
          type: boolean
          description: >-
            boolean additional value required for provisioning prepaid tariffs within Yoigo network (networkId=2). Not used for networkId=1
          example: false
        download_speed:
          deprecated: true
          type: string
          description: >-
            download speed for broadband base profiles, used for provisioning purpose
          example: '300'
        internet_speed:
          type: string
          description: >-
            commercial speed to be shown to client, could be different than the down and upload provisioning speed
          example: '300'
        upload_speed:
          deprecated: true
          type: string
          description: >-
            upload speed for broadband base profiles, used for provisioning purpose
          example: '300'
    BaseProfile:
      allOf:
        - $ref: '#/components/schemas/getBaseProfiles_Response'
        - type: object
          properties:
            services:
              type: array
              items:
                $ref: '#/components/schemas/BaseProfile_services'
    BaseProfile_services:
      type: object
      properties:
        id:
          type: string
          example: '2'
        name:
          type: string
          example: BLOQUEO DE LLAMADAS ENTRANTES
        description:
          type: string
          example: BLOQUEO DE LLAMADAS ENTRANTES
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        network_code:
          type: string
          description: parameter used by network to identify the service
          example: obi
        is_changeable:
          type: boolean
          description: means if the surrent service status can be changed
          example: true
        activate_on_network_provisioning:
          type: boolean
          description: >-
            indicates if the service is automatically activated when the technical profile is provisioned
          example: true
        language:
          type: string
          description: characteristic used for serviceId = 2. Not used for other services
          example: ESPANOL
        speed:
          type: string
          description: characteristic used for serviceId = 16. Not used for other services
          example: 300Mb
        available_networks:
          type: string
          x-extensible-enum:
            - RED YOIGO
            - RED YOIGO+ORANGE
            - RED YOIGO+ORANGE+TELEFÓNICA
            - RED YOIGO+ORANGE+TELEFÓNICA (4G)
          description: characteristic used for serviceId = 30. Not used for other services
          example: RED YOIGO+ORANGE+TELEFÓNICA
    FreeUnitsPackageDetail_base_profiles:
      type: object
      properties:
        id:
          type: string
          example: '4442'
        name:
          type: string
          example: INTERNET 10GB_TPILI YOIGO
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        network_id:
          type: string
          description: >-
            network that can be used for provisioning the free units package (decision on which network to be used is out of catalogue domain, catalogue configuration will consider all possible networks)
          example: '2'
        network_provisioning_id:
          type: string
          description: >-
            id used for provisioning the free units package within the correspondent network
          example: INTERNET_TPILI_10GB
        offer_id:
          type: string
          description: >-
            additional value required for provisioning prepaid free units packages within Yoigo network (networkId=2). Not used for networkId=1
          example: '344000010'
        charging_id:
          type: string
          description: >-
            additional value required for provisioning prepaid free units packages within Yoigo network (networkId=2). Not used for networkId=1
          example: '344010'
        expire_with_tariff:
          type: boolean
          description: >-
            boolean additional value required for provisioning prepaid free units packages within Yoigo network (networkId=2). Not used for networkId=1
          example: true
    ValueAddedServiceDetail:
      type: object
      properties:
        id:
          type: string
          example: '261'
        mysim_id:
          type: string
          example: '21'
        marketing_name:
          type: string
          example: IP FIJA
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        digital_channels_name:
          type: string
          example: IP FIJA
        invoice_name:
          type: string
          example: IP FIJA
        invoice_description:
          type: string
          example: IP FIJA DESCRIPTION
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        fees:
          type: array
          items:
            $ref: '#/components/schemas/Fee_Response'
    ValueAddedService:
      allOf:
        - $ref: '#/components/schemas/ValueAddedServiceDetail'
        - type: object
          properties:
            is_mandatory:
              type: boolean
              example: false
            max_cardinality:
              deprecated: true
              type: string
              description: >-
                Represents the same as max_quantity but typed as string. Deprecated in favor of max_quantity.
              example: 1
            max_quantity:
              type: integer
              description: >-
                Maximum number of instances of this value_added_service that can be hired with a [bundled_]commercial_product.
              example: 1
            related_bundled_product_id:
              type: string
              description: >-
                Id of the bundled_product for which the value_added_service is configured. It is `null` when value_added_services are requested for a commercial_product instead of bundled_commercial_product.
              example: 1000
            value_added_services:
              type: array
              description: >-
                Required value_added_services that need to be hired with the parent value_added_service.
              items:
                $ref: '#/components/schemas/ValueAddedServiceDetail'
    Service:
      type: object
      properties:
        id:
          type: string
          example: '261'
        name:
          type: string
          example: IP FIJA
        digital_channels_name:
          type: string
          example: IP FIJA
        description:
          type: string
          example: IP FIJA
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        activation_work_order_type_id:
          type: string
          description: >-
            work order type id used for provisioning an activation order for the correspondent value added service
          example: '101'
        deactivation_work_order_type_id:
          type: string
          description: >-
            work order type id used for provisioning a deactivation order for the correspondent value added service
          example: '103'
    CommercialInfo:
      type: object
      properties:
        id:
          type: string
          example: 109ES1DESCRIPTION
        commercial_description:
          type: string
          example: <strong>Tarifa Cero Prepago 150min+700mb</strong>
        language:
          type: string
          example: ES
        invoice_name:
          type: string
          example: Tarifa Cero Prepago 150min+700mb
        invoice_description:
          type: string
          example: <strong>Tarifa Cero Prepago 150min+700mb</strong>
    TransactionType:
      type: object
      properties:
        id:
          type: string
          example: '121'
        name:
          type: string
          example: DEVOLUCION AT. AL CLIENTE
        description:
          type: string
          example: DEVOLUCIÓN AT. AL CLIENTE PRE
        is_active:
          type: boolean
          example: true
        is_external:
          type: boolean
          description: >-
            indicates if the fee/term/promotion value is own (MM) or external (third-party)
          example: false
        tax_rate:
          type: string
          description: indicates the tax applied to the fee/term/promotion value
          x-extensible-enum:
            - generic
            - not_apply
            - exempted
            - not_taxed
          example: generic
        transaction_type:
          type: string
          x-extensible-enum:
            - Credit
            - Debit
          example: Credit
        refund_transaction_type_id:
          type: string
          description: id of the transaction type used for refund transactions
          example: '121'
    CommercialDevice_device_Response:
      type: object
      properties:
        id:
          type: string
          example: P045A1SNC
        generic_code:
          type: string
          example: P045A1S
        brand:
          type: string
          example: ALCATEL
        model:
          type: string
          example: ALCATEL 1S NEGRO
        name:
          type: string
          example: ALCATEL 1S NEGRO
        description:
          type: string
        category:
          type: string
          example: SMARTPHONE
          x-extensible-enum:
            - STB
            - SMARTWATCH
            - TABLET
            - ROUTER
            - PBX
            - SMARTPHONE
            - WIFI_EXTENDER
            - OTROS
        colour:
          type: string
          example: NEGRO
        is_available:
          type: boolean
          description: based on this attribute we know if a device is active or not
          example: true
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        include_preinstalled_sim:
          type: boolean
          description: if the device has a built-in sim card
          example: false
        image_url:
          type: string
          nullable: true
          description: url to device image
          format: url
          example: >-
            https://cdn.masmovil.com/Resources/broadband-phones/deviceid/deviceid.png
        model_web:
          type: string
          example: ALCATEL 1S NEGRO
    CategoryWeb:
      type: string
      enum:
        - SMARTPHONE
        - TABLET
        - SMARTWATCH
        - SMART_TV
        - ROBOT_VACUUM_CLEANER
        - LAPTOP
        - SCOOTER
        - MONITOR
        - MODEM
        - GAMING
        - DEVICE
        - SCALE
        - HEADPHONE
        - SPEAKER
        - AIR_FRYER
      example: LAPTOP
    ReverseLogisticMethod:
      type: string
      enum:
        - POST_OFFICE
        - HOME_PICKUP
      example: POST_OFFICE
    CategoryGroup:
      type: string
      enum:
        - MOBILE
        - TABLET_PC_CONSOLE
        - SMARTWATCH
        - TV
        - SMART_HOME
        - AUDIO
        - UNDEFINED
      example: MOBILE
    Device_Response:
      type: object
      properties:
        id:
          type: string
          example: P045A1SNC
        generic_code:
          type: string
          example: P045A1S
        brand:
          type: string
          example: ALCATEL
        model:
          type: string
          example: ALCATEL 1S NEGRO
        name:
          type: string
          example: ALCATEL 1S NEGRO
        description:
          type: string
        category:
          type: string
          example: SMARTPHONE
          x-extensible-enum:
            - STB
            - SMARTWATCH
            - TABLET
            - ROUTER
            - PBX
            - SMARTPHONE
            - WIFI_EXTENDER
            - SIM
            - OTROS
        colour:
          type: string
          example: NEGRO
        is_available:
          type: boolean
          description: based on this attribute we know if a device is active or not
          example: true
        include_preinstalled_sim:
          type: boolean
          description: if the device has a built-in sim card
          example: false
        image_url:
          type: string
          nullable: true
          description: url to device image
          format: url
          example: >-
            https://cdn.masmovil.com/Resources/broadband-phones/deviceid/deviceid.png
        category_web:
          type: string
          x-extensible-enum:
            - SMARTPHONE
            - TABLET
            - SMARTWATCH
            - SMART_TV
            - ROBOT_VACUUM_CLEANER
            - LAPTOP
            - SCOOTER
            - MONITOR
            - MODEM
            - GAMING
            - DEVICE
            - SCALE
            - HEADPHONE
            - SPEAKER
            - AIR_FRYER
          example: LAPTOP
        model_web:
          type: string
          example: ALCATEL 1S
        colour_name:
          type: string
          example: Midnight
        hexadecimal_colour:
          type: string
          example: '#FF0000'
        brand_colour:
          type: boolean
          example: true
        specifications:
          type: string
          example: '256GB / 6,1'' / 5G 128GB / 6,2'''
        control_app:
          type: boolean
          example: false
        battery:
          type: string
          example: 1530 mAh
        bluetooth_version:
          type: string
          example: '5.0'
        frontal_camera:
          type: string
          example: 1 MP cámara recesiva
        back_camera:
          type: string
          example: '1,3 MP'
        storage:
          type: string
          example: 2L
        wireless_charging:
          type: boolean
          example: false
        fast_charge:
          type: boolean
          example: false
        fast_charge_speed:
          type: string
          example: 20W
        box_content:
          type: string
          example: Cargador Auriculares Fundas
        telecare_compatible:
          type: boolean
          example: false
        connectivity:
          type: string
          example: WIFI y Bluetooth 5.0
        control_voice_assitant:
          type: boolean
          example: false
        dimensions:
          type: string
          example: '243,2 x 162,2 x 9,55 mm'
        hard_drive:
          type: string
          example: 256 GB
        dual_sim:
          type: boolean
          example: false
        battery_duration:
          type: string
          example: "Hasta 5 h de música; hasta 3 h en conversación; más de 24 h de música con el estuche de carga "
        esim:
          type: boolean
          example: false
        flash:
          type: boolean
          example: false
        functions:
          type: string
          example: >-
            Peso, BMI, grasa corporal, masa muscular, agua, proteína, grasa visceral, metabolismo basal, masa ósea, edad física, peso ideal, tipo de cuerpo y puntuación de salud
        touch_id:
          type: boolean
          example: false
        max_speed:
          type: string
          example: 25 km/h
        memory:
          type: string
          example: 128 MB
        memory_expandable_to:
          type: string
          example: 32GB (MicroSD)
        ram_memory:
          type: string
          example: 128 MB
        microphone:
          type: boolean
          example: true
        nfc:
          type: boolean
          example: true
        user_number:
          type: string
          example: Hasta 16
        mapping_allowed:
          type: boolean
          example: false
        weight:
          type: string
          example: 200 g
        power:
          type: string
          example: 20W
        gaming_capabilities:
          type: string
          example: 'HDR GiG, ALLM, Cloud Gaming Stadia y GeForce'
        processor:
          type: string
          example: Procesador Inteligente α5 AI Processor 4K Gen6
        ports:
          type: string
          example: '1 x HDMI, 1 x USB - C, 1 x USB 3.0, 2 x USB 2.0'
        weight_range:
          type: string
          example: 100 g - 150 kg
        network:
          type: string
          example: 5G
        system_requirements:
          type: string
          example: >-
            iPad Pro de 11 pulgadas (1.ª, 2.ª o 3.ª generación) o iPad Air (4.ª generación) con iPadOS 14.5 o posterior
        water_resistant:
          type: boolean
          example: false
        resolution:
          type: string
          example: HDR
        output:
          type: string
          example: 2 HDMI y 1 USB
        noise_cancelling:
          type: boolean
          example: false
        sensors:
          type: string
          example: >-
            Acelerómetro de 3 ejes, giroscopio de 3 ejes y sensor de frecuencia cardíaca PPG
        digital_tuner:
          type: string
          example: DVB-T2C
        os:
          type: string
          example: Android 10
        sound:
          type: string
          example: AI Sound (Virtual 5.1 Up-mix)
        size:
          type: string
          example: M
        screen_size:
          type: string
          example: '1,47"'
        technology:
          type: string
          example: 4G LTE
        battery_charge_time:
          type: string
          example: >-
            90 min (auricular) – 120 min (estuche con cable, sin los auriculares)​
        hard_drive_type:
          type: string
          example: SSD
        sim_type:
          type: string
          example: Nano SIM + MicroSD
        download_speed:
          type: string
          example: Descarga inalámbrica hasta 550 Mbps; 1 Gbps si es con cable
        wifi:
          type: string
          example: Wi-Fi 802.11a/b/g/n/ac/ax
        comments:
          type: string
          example: >-
            Además de ser ultra ligero y fino, cuenta con 8GB de RAM, para que ejecutes tanto tus juegos, como la multitarea de forma eficiente, con un aumento del rendimiento gracias a su mayor ancho de banda. Todo esto, con el sistema operativo Windows 11 Home 64. Gracias a su pantalla de 15,6” FHD proporciona una imagen detallada, clarísima y con los colores más vivos que nunca. Su disco duro SSD tiene una capacidad de 256 GB por lo que podrás guardar infinidad de archivos sin preocuparte por el espacio.
        promotional_info:
          $ref: '#/components/schemas/PromotionalInfo'
        energy_label:
          type: string
          example: B
        esim_only:
          type: boolean
          example: false
        ean_code:
          type: string
          example: '1234567890123'
        category_group:
          type: string
          x-extensible-enum:
            - MOBILE
            - TABLET_PC_CONSOLE
            - SMARTWATCH
            - TV
            - SMART_HOME
            - AUDIO
            - UNDEFINED
          example: MOBILE
        reverse_logistic_method:
          type: string
          description: >-
            Indicates the method to return a device in case of withdrawal.

            POST_OFFICE means the customer must bring the device to a post office,

            HOME_PICKUP means a courier will pick up the device at home.
          x-extensible-enum:
            - POST_OFFICE
            - HOME_PICKUP
          example: POST_OFFICE
        charger_included:
          type: boolean
          description: >-
            Indicates whether a charger is included in the device box.

            Required by EU Directive 2022/2380 on common chargers (legal obligation).
          example: true
        charger_label:
          type: string
          description: >-
            Descriptive label of the charger type or standard associated with the device

            (e.g. USB-C 25W). Required by EU Directive 2022/2380 on common chargers

            (legal obligation).
          example: USB-C 25W
    PromotionalInfo:
      type: object
      properties:
        trade_in_description:
          type: string
          description: Description of the trade in
          example: >-
            Trade-in 200€: Desde el 11 de julio de 2024 hasta el 30 de marzo 2025. Más info disponible en timón.
        trade_in_value:
          type: number
          example: 100
        additional_info:
          type: string
          description: Additional info of the promotional info
          example: >-
            Como promoción durante el periodo de preventa, los clientes podrán adquirir un smartphone de rango más alto de memoria por el mismo precio que uno de gama baja.
    CommercialProfileForCommercialDevice_Response:
      allOf:
        - $ref: '#/components/schemas/CommercialProfile_Response'
        - type: object
          properties:
            logistic_required:
              type: boolean
              description: >-
                optional property (only informed in not mandatory CommercialDevices), by default 'false' value, this property indicates if the device needs logistic or not based on the commercial profile definition.
              example: false
            store_delivery_allowed:
              type: boolean
              description: >-
                this property indicates if a device with logistics shipping can be delivered to a store or not
              example: false
    CommercialProfile_Response:
      allOf:
        - $ref: '#/components/schemas/getCommercialProfileBasic_Response'
        - type: object
          properties:
            from:
              type: string
              format: date-time
              example: '2022-10-03T22:00:00Z'
            to:
              type: string
              format: date-time
              example: '2080-10-03T22:00:00Z'
    getCommercialProfileBasic_Response:
      type: object
      properties:
        id:
          type: string
          example: 4
        name:
          type: string
          example: perfil_comercial.postpago_ventas_pos
        visibility_type:
          type: string
          x-extensible-enum:
            - POSITIVE
            - ASDEFINED
          example: POSITIVE
    TerritoryOwnerAlone:
      type: object
      properties:
        id:
          type: string
          example: FIBMM02
        name:
          type: string
          example: FIBRA PROPIA MM2
        in_catalogue_since:
          type: string
          format: date-time
        in_catalogue_until:
          type: string
          format: date-time
    TerritoryOwnerDetail:
      allOf:
        - $ref: '#/components/schemas/TerritoryOwnerAlone'
        - type: object
          properties:
            from:
              type: string
              format: date-time
            to:
              type: string
              format: date-time
            download_speed:
              type: integer
              description: real download speed
              example: 300
            upload_speed:
              type: integer
              description: real upload speed
              example: 300
    Fee_Response:
      type: object
      properties:
        id:
          type: string
          example: '1'
        description:
          type: string
          example: TARIFA MAS 10GB cuotamensual
        type:
          type: string
          description: >-
            RecurringCharge value is used for charges that must be applied on a recurring basis. OneTimeFee value is used for charges that only need to be applied once
          example: RecurringCharge
          x-extensible-enum:
            - RecurringCharge
            - OneTimeFee
            - UpfrontFee
        subtype:
          type: string
          example: ServiceFee
          x-extensible-enum:
            - ServiceFee
            - MinimumConsumption
            - ActivationFee
            - InstallationFee
            - SuspensionServiceFee
            - DeliveryFee
            - UpfrontFee
            - InstallmentFee
            - LastInstallmentFee
            - PurchaseFee
            - ExcessFee
            - RepairExcessFee
            - ReplacementExcessFee
        recurrence_scheme:
          type: string
          description: >-
            recurrence scheme for fees. BoundToBillCycle (used for recurring fees that are applied on a recurring basis, according to the correspondent billing cycle (i.e free units packages used for postpaid subscriptions or automatic top-up prepaid subscriptions), NonBoundToBillCycle (used for recurring fees that are applied on a recurring basis (i.e weekly, monthly, BoundToActivation…) not bounded to any bill cycle ). Null for one time fees.
          example: BoundToBillCycle
          x-extensible-enum:
            - BoundToBillCycle
            - NonBoundToBillCycle
        recurrence_interval_type:
          type: string
          description: >-
            interval type for NonBounToBill recurring fees. ‘Weekly’ (every Monday), ‘Daily' (every day), ‘Monthly’ (every 1st of month), BoundToActivation (every N days since activation)
          example: Monthly
          x-extensible-enum:
            - Weekly
            - Daily
            - Monthly
            - BoundToActivation
        recurrence_interval:
          type: number
          description: >-
            recurrence interval for NonBoundToBill recurring charges. 0 for BoundToBillCycle recurring charges. Null for non-recurring charges
          format: int32
          example: 30
        paid_in_advance:
          type: boolean
          description: >-
            indicates if a recurring charge is paid in advance or in arrears. Not applicable for non recurring charges
          example: false
        prorated_on_activation:
          type: boolean
          description: >-
            indicates if the recurring charge is prorated on activation or not. Not applicable for non recurring charges
          example: true
        prorated_on_deactivation:
          type: boolean
          description: >-
            indicates if the recurring charge is prorated on deactivation or not. Not applicable for non recurring charges
          example: true
        is_external:
          type: boolean
          description: indicates if the fee is MM internal or third party company
          example: false
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        value:
          type: number
          format: double
          example: 8.264463
        currency:
          type: string
          description: >-
            null for values associated to promotion with discountTYpe=percentage. euro for rest
          example: euro
        terms:
          type: array
          items:
            $ref: '#/components/schemas/Terms_Response'
        transaction_type:
          $ref: '#/components/schemas/TransactionType'
    FeeInstallmentPlan_Response:
      allOf:
        - $ref: '#/components/schemas/FeeInstallmentPlan_refinance_Response'
    FeeInstallmentPlan_refinance_Response:
      type: object
      properties:
        id:
          type: string
          example: '1'
        description:
          type: string
          example: cuota financiación
        type:
          type: string
          description: >-
            RecurringCharge value is used for charges that must be applied on a recurring basis. OneTimeFee value is used for charges that only need to be applied once
          example: OneTimeFee
          x-extensible-enum:
            - RecurringCharge
            - OneTimeFee
            - UpfrontFee
        subtype:
          type: string
          example: UpfrontFee
          x-extensible-enum:
            - UpfrontFee
            - InstallmentFee
            - LastInstallmentFee
            - RetailPrice
        recurrence_scheme:
          type: string
          description: >-
            recurrence scheme for fees. BoundToBillCycle (used for recurring fees that are applied on a recurring basis, according to the correspondent billing cycle (i.e free units packages used for postpaid subscriptions or automatic top-up prepaid subscriptions), NonBoundToBillCycle (used for recurring fees that are applied on a recurring basis (i.e weekly, monthly, BoundToActivation…) not bounded to any bill cycle ). Null for one time fees.
          example: BoundToBillCycle
          x-extensible-enum:
            - BoundToBillCycle
            - NonBoundToBillCycle
        recurrence_interval_type:
          type: string
          description: >-
            interval type for NonBoundToBill recurring fees. ‘Weekly’ (every Monday), ‘Daily' (every day), ‘Monthly’ (every 1st of month), BoundToActivation (every N days since activation)
          example: Monthly
          x-extensible-enum:
            - Weekly
            - Daily
            - Monthly
            - BoundToActivation
        recurrence_interval:
          type: number
          description: >-
            recurrence interval for NonBoundToBill recurring charges. 0 for BoundToBillCycle recurring charges. Null for non-recurring charges
          format: int32
          example: 30
        paid_in_advance:
          type: boolean
          description: >-
            indicates if a recurring charge is paid in advance or in arrears. Not applicable for non recurring charges
          example: false
        prorated_on_activation:
          type: boolean
          description: >-
            indicates if the recurring charge is prorated on activation or not. Not applicable for non recurring charges
          example: false
        prorated_on_deactivation:
          type: boolean
          description: >-
            indicates if the recurring charge is prorated on deactivation or not. Not applicable for non recurring charges
          example: false
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        is_external:
          type: boolean
          description: >-
            indicates if the fee/term/promotion value is own (MM) or external (third-party)
          example: false
        value:
          type: number
          format: double
          example: 8.264463
        currency:
          type: string
          description: >-
            null for values associated to promotion with discountTYpe=percentage. euro for rest
          example: euro
        transaction_type:
          $ref: '#/components/schemas/TransactionType'
    CommercialDevice_fees_Response:
      type: object
      properties:
        id:
          type: string
          example: '1'
        description:
          type: string
          example: 579153 pagoupfront
        type:
          type: string
          description: >-
            RecurringCharge type is used for charges applied on a recurring basis, OneTimeFee type is used for charged that are applied only once
          example: UpfrontFee
          x-extensible-enum:
            - RecurringCharge
            - OneTimeFee
            - UpfrontFee
        subtype:
          type: string
          example: UpfrontFee
          x-extensible-enum:
            - ServiceFee
            - MinimumConsumption
            - ActivationFee
            - InstallationFee
            - SuspensionServiceFee
            - DeliveryFee
            - UpfrontFee
            - InstallmentFee
            - LastInstallmentFee
            - PurchaseFee
        from:
          type: string
          description: date when the fee starts to be applicable for the commercial device
          format: date-time
        to:
          type: string
          description: date when the fee is no longer applicable for the commercial device
          format: date-time
        recurrence_scheme:
          type: string
          description: >-
            BoundToBillCycle scheme is used for recurring charges that are applied bound to the correspondent bill cycle (for postpaid or automatic top-up prepaid). NonBoundToBillCycle scheme is used for recurring charges that are not bound to a bill cycle
          example: BoundToBillCycle
          x-extensible-enum:
            - BoundToBillCycle
            - NonBoundToBillCycle
        recurrence_interval_type:
          type: string
          description: >-
            recurrence interval type for NonBoundToBill fees. Weekly (Every Monday), Daily (Every day), Monthly (Every 1st month), BoundToActivation ()Every N days since activation)
          example: Monthly
          x-extensible-enum:
            - Weekly
            - Daily
            - Monthly
            - BoundToActivation
        recurrence_interval:
          type: number
          description: >-
            Recurrence interval for NonBoundToBill recurring charges. Currently always 30 days for MM brand, 28 days for rest of brands
          format: int32
          example: 30
        paid_in_advance:
          type: boolean
          description: >-
            indicates if the recurring charge is paid in advance or in arrears. Currently always true for recurring charges with subtype 'ServiceFee' associated to mobile commercial products for classic prepaid and automatic top-up prepaid models
          example: true
        prorated_on_activation:
          type: boolean
          description: >-
            indicates if the recurring charge is prorated on activation or not. Not applicable for non recurring charges
          example: true
        prorated_on_deactivation:
          type: boolean
          description: >-
            indicates if the recurring charge is prorated on deactivation or not. Not applicable for non recurring charges
          example: true
        is_external:
          type: boolean
          description: indicates if the fee is own (MM) or external (third-party)
          example: false
        value:
          type: number
          format: double
          example: 8.264463
        currency:
          type: string
          description: >-
            null for values associated to promotion with discountTYpe=percentage. euro for rest
          example: euro
        transaction_type:
          $ref: '#/components/schemas/TransactionType'
        terms:
          type: array
          items:
            $ref: '#/components/schemas/Terms_Response'
    Terms_alone_Response:
      type: object
      properties:
        id:
          type: string
          example: 5138_promotion
        name:
          type: string
          example: 12 MESES-36E
        type:
          type: string
          description: >-
            PermanenceContract (contract used when a minimum permanency is set), ActivationCommitment (terms type used when service activation is committed. For instance, the installation cost is subsidized only in case the service is finally activated. If the order is cancelled before activating the service but after performing installation, the installation cost could be charged to the customer through an ActivationCommitment terms), ReturnCommitment (terms type used for enabling the commitment of returning a subsidized item after the service deactivation. For instance, when the service provider delivers a device to the customer that it is actually owned buy the service provider, the customer will be typically forced to return the transferred device after service deactivation. This term type is used for enabling this type of commitment)
          example: PermanenceContract
          x-extensible-enum:
            - PermanenceContract
            - ActivationCommitment
            - ReturnCommitment
        commitment_duration:
          type: number
          description: duration of a PermanenceContract in months
          format: int32
          example: 12
        unlimited_duration:
          type: boolean
          description: >-
            Indicates if the commitment duration is unlimited or not, **true** for ReturnCommitment terms, **false** otherwise
          example: false
        penalty_prorated:
          type: boolean
          description: >-
            indicates if the applicable penalty amount is prorated or not based on number of days already passed between activation and the end of the commitment period
          example: true
        value:
          type: number
          format: double
          example: 8.264463
        currency:
          type: string
          description: >-
            null for values associated to promotion with discountTYpe=percentage. euro for rest
          example: euro
        permanence_type:
          type: string
          description: >-
            Field to categorize device permanences according to the multi-financing business rules MAIN: Penalties that apply to header lines and non-OXF segments. You can only have 1 at a time NOT_MAIN: Permanences that apply to devices on additional lines, OXF segments. You can have more than 1 at a time NOT_APPLY: The penalty is not a permanence, or if it is, it is not for a device
          x-extensible-enum:
            - MAIN
            - NOT_MAIN
            - NOT_APPLY
          example: MAIN
        transaction_type:
          $ref: '#/components/schemas/TransactionType'
    TermsPromotion_Response:
      allOf:
        - $ref: '#/components/schemas/Terms_alone_Response'
        - type: object
          properties:
            binding_type_id:
              type: string
              example: 1
    Terms_Response:
      allOf:
        - $ref: '#/components/schemas/Terms_alone_Response'
        - type: object
          properties:
            from:
              type: string
              format: date-time
            to:
              type: string
              format: date-time
    CommercialDevicesTerms_Response:
      type: object
      properties:
        campaign_id:
          type: string
          example: '1234567'
        term:
          $ref: '#/components/schemas/Terms_alone_Response'
    CommercialDevice_installment_plan:
      type: object
      properties:
        id:
          type: string
          example: '420124'
        name:
          type: string
          example: '420124'
        from:
          type: string
          description: date when the term starts to be applicable for the commercial device
          format: date-time
        to:
          type: string
          description: date when the term is no longer applicable for the commercial device
          format: date-time
        duration:
          type: number
          description: duration of the installment plan indicated in number of months
          format: int32
          example: 12
        tin:
          type: string
          description: only informed in case of financed offer_id
          example: '0.00'
        tae:
          type: string
          description: only informed in case of financed offer_id
          example: '4.08'
        commission:
          type: string
          description: 'only informed in case of financed, amunt of the commission applied'
          example: '25.15'
        commission_percentage:
          type: string
          description: >-
            only informed in case of financed, percentage of the commission applied
          example: '4.00'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/FeeInstallmentPlan_Response'
        terms:
          type: array
          items:
            $ref: '#/components/schemas/Terms_Response'
    CommercialDevice_installment_plan_refinance:
      allOf:
        - $ref: '#/components/schemas/CommercialDevice_installment_plan'
        - type: object
          properties:
            fees:
              type: array
              items:
                $ref: '#/components/schemas/FeeInstallmentPlan_refinance_Response'
    PaymentType:
      type: string
      description: 'field that indicates if is financed, single or recurring payment'
      enum:
        - SINGLE_PAYMENT
        - FINANCED_PAYMENT
        - RECURRING_PAYMENT
      example: SINGLE_PAYMENT
    PaymentType_Response:
      type: string
      description: 'field that indicates if is financed, single or recurring payment'
      x-extensible-enum:
        - SINGLE_PAYMENT
        - FINANCED_PAYMENT
        - RECURRING_PAYMENT
    SubsTypeName:
      type: string
      enum:
        - PRE-PAGO
        - POST-PAGO
        - INTERNET FTTH
        - FIJO ANALOGICO
        - FIJO DIGITAL
        - INTERNET ADSL
        - AGILE TV
        - ENERGY
        - SECURITY
        - DATA_SHARING
        - MULTISIM
        - HEALTH
        - DEVICEINSURANCE
        - NETFLIX
        - APPLEWATCH
        - AMAZONPRIME
        - MAX
        - TV
        - ORANGE_TV_LIBRE
        - DISNEY
        - AGILETV
      example: POST-PAGO
    SubsTypeName_Response:
      type: object
      properties:
        name:
          type: string
          x-extensible-enum:
            - PRE-PAGO
            - POST-PAGO
            - INTERNET FTTH
            - FIJO ANALOGICO
            - FIJO DIGITAL
            - INTERNET ADSL
            - AGILE TV
            - ENERGY
            - SECURITY
            - DATA_SHARING
            - MULTISIM
            - HEALTH
            - DEVICEINSURANCE
            - NETFLIX
            - APPLEWATCH
            - AMAZONPRIME
            - MAX
            - TV
            - ORANGE_TV_LIBRE
            - DISNEY
            - AGILETV
          description: subscription type name
          example: POST-PAGO
        description:
          type: string
          description: subscription type description
          example: ADSL
        id:
          type: string
          description: subscription type id
          example: '5'
    DonorNumerationType:
      type: string
      enum:
        - Pospago
        - Prepago
      example: Pospago
    DonorNumerationType_Response:
      type: object
      properties:
        id:
          type: string
          example: '1'
        name:
          type: string
          x-extensible-enum:
            - Pospago
            - Prepago
        description:
          type: string
          example: Pospago
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    SaleTypeName:
      type: string
      enum:
        - Venta
        - Migración
        - Añadir Línea
        - Cross Sell
        - Cartera
      example: Venta
    SaleTypeName_Response:
      type: object
      properties:
        id:
          type: string
          example: '2'
        name:
          type: string
          x-extensible-enum:
            - Venta
            - Migración
            - Añadir Línea
            - Cross Sell
            - Cartera
          example: Añadir Línea
        description:
          type: string
          example: Venta móvil sobre paquete existente
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    BundledProductBasic_technology:
      type: object
      properties:
        id:
          type: string
          example: '2'
        name:
          type: string
          description: it can be FIBRA or ADSL
          example: FIBRA
    TechnologyName:
      type: string
      enum:
        - ADSL
        - FIBRA
      example: FIBRA
    VisibilityType:
      type: string
      x-extensible-enum:
        - POSITIVE
        - ASDEFINED
      example: POSITIVE
    DeviceCategory:
      type: string
      description: optional field to filter by device category
      enum:
        - SMARTPHONE
        - SMARTWATCH
        - OTROS
        - ROUTER
        - TABLET
        - STB
        - WIFI_EXTENDER
        - SIM
      example: SMARTPHONE
    DuoType_Response:
      type: string
      x-extensible-enum:
        - DUO_MAIN
        - DUO_ADDITIONAL
        - NOT_DUO
      example: NOT_DUO
    BundledSegment_Response:
      type: string
      x-extensible-enum:
        - PRO
        - RESI
        - ND
      example: PRO
    InstallationType_Response:
      type: object
      properties:
        id:
          type: string
          example: 2
        description:
          type: string
          x-extensible-enum:
            - MANDATORY
            - SELF-INSTALLATION
            - IF POSSIBLE
            - IF REQUIRED
          example: SELF-INSTALLATION
    PromotionCategories:
      type: string
      x-extensible-enum:
        - captación
        - retención
        - try & buy fibra
        - try & buy tarifa
        - compensación
      example: retención
    RenewalCategory:
      type: string
      enum:
        - Generic
        - Loyalty
        - Retention
    RenewalCategory_Response:
      type: string
      x-extensible-enum:
        - Generic
        - Loyalty
        - Retention
      description: >-
        optional field, only informed for 'Cartera' subscriptions to inform the commercial profile
      example: Generic
    BundleCategory:
      type: string
      enum:
        - Mobile
        - TV
        - Fixed+Broadband
        - Fixed+Mobile
        - Fixed+Broadband+Mobile
        - Fixed+Broadband+TV
        - Fixed+Broadband+Mobile+Netflix
        - Fixed+Broadband+Mobile+TV
        - Fixed+Broadband+Mobile+TV+Netflix+Disney
      example: Fixed+Broadband+Mobile
    BundleCategory_Response:
      type: string
      x-extensible-enum:
        - Mobile
        - TV
        - Fixed+Broadband
        - Fixed+Mobile
        - Fixed+Broadband+Mobile
        - Fixed+Broadband+TV
        - Fixed+Broadband+Mobile+Netflix
        - Fixed+Broadband+Mobile+TV
        - Fixed+Broadband+Mobile+TV+Netflix+Disney
    BundledType_Response:
      type: string
      x-extensible-enum:
        - 1P
        - 2P
        - 3P
        - 4P
        - 6P
      example: 2P
    BillingTypeName:
      type: string
      enum:
        - POSPAGO
        - PREPAGO CLASICO
        - RECARGA AUTOMATICA
      example: POSPAGO
    CustomerTypeName:
      type: string
      enum:
        - Nuevo
        - Existente
    CommercialSegmentName:
      type: string
      enum:
        - SME
        - Consumer
      example: Consumer
    CustomerSegmentName:
      type: string
      enum:
        - RESIDENCIAL
        - EMPRESA
        - AUTONOMO
        - HORECA
      example: RESIDENCIAL
    NumerationType:
      type: object
      properties:
        id:
          type: string
          example: '3'
        name:
          type: string
          example: Numero entre marcas
        description:
          type: string
          example: Número portado de operador dentro del grupo
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    NumerationTypeName:
      type: string
      enum:
        - Nuevo numero
        - Numero portado
        - Numero entre marcas
    CommercialDeviceList:
      type: object
      required:
        - items
        - pagination
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/CommercialDeviceAlone'
        pagination:
          $ref: '#/components/schemas/Pagination'
    PermanenceType:
      type: string
      enum:
        - MAIN
        - NOT_MAIN
      example: MAIN
    Pagination:
      type: object
      required:
        - total
        - offset
        - limit
      properties:
        total:
          type: integer
          format: int32
          example: 150
        offset:
          type: integer
          format: int32
          example: 20
        limit:
          type: integer
          format: int32
          example: 10
    healthCheck:
      type: object
      properties:
        status:
          type: string
          example: ok
    KOGenericResponse:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        code:
          type: string
  parameters:
    bundledProductId:
      name: id
      in: path
      description: bundled product identifier
      required: true
      schema:
        type: string
      example: '609'
    bundledProductId2:
      name: bp_id
      in: path
      description: bundled product identifier
      required: true
      schema:
        type: string
      example: '609'
    bundledProductId3:
      name: bundled_product_id
      in: path
      description: bundled product identifier
      required: true
      schema:
        type: string
      example: '609'
    bundledProductTargetId:
      name: target_id
      description: id of target bundled_product to switch
      in: path
      required: true
      schema:
        type: string
      example: '3001'
    destinationBundledProductId:
      name: id
      in: path
      description: destination bundled product id
      required: true
      schema:
        type: string
      example: '609'
    bundledProductSubscriptionTypeId:
      name: subs_type_id
      in: path
      description: bundled product subscription type identifier
      required: true
      schema:
        type: string
        example: '120'
    bundledProductSubscriptionTypeId2:
      name: bpst_id
      in: path
      description: bundled product subscription type identifier
      required: true
      schema:
        type: string
        example: '5964'
    subsRemoved:
      name: subs_removed
      description: >-
        this query param allows to filter by a particular bundled_product_subscription_type
      in: query
      required: false
      style: form
      explode: false
      schema:
        type: string
        example: '3476'
    bundledCommercialProductId:
      name: id
      in: path
      description: bundled commercial product identifier
      required: true
      schema:
        type: string
      example: 3009_BUNDLED_3P
    bundledCommercialProductId2:
      name: bcp_id
      in: path
      description: bundled commercial product identifier
      required: true
      schema:
        type: string
      example: 3009_BUNDLED_3P
    originBundledCommercialProductId:
      name: origin_bundled_commercial_product
      in: query
      description: >-
        bundled commercial product for which it is necessary an equivalence in the commercial definition of a particular bundled product
      required: false
      style: form
      explode: false
      schema:
        type: string
      example: 3009_BUNDLED_3P
    commercialProductId:
      name: id
      in: path
      description: commercial product identifier
      required: true
      schema:
        type: string
      example: '2311'
    commercialProductId2:
      name: commercial_product_id
      in: path
      description: Unique commercial_product identifier
      required: true
      schema:
        type: string
      example: '2311'
    valueAddedServiceId:
      name: id
      in: path
      description: value added service identifier
      required: true
      schema:
        type: string
      example: VAS_14_BP_600
    freeUnitsPackageId:
      name: id
      in: path
      description: free units package identifier
      required: true
      schema:
        type: string
      example: '145'
    freeUnitsPackageId2:
      name: fup_id
      in: path
      description: free units package identifier
      required: true
      schema:
        type: string
      example: '145'
    promotionId:
      name: id
      in: path
      description: promotion identifier
      required: true
      schema:
        type: string
      example: '234'
    promotionId2:
      name: promotion_id
      in: path
      description: promotion identifier
      required: true
      schema:
        type: string
      example: '234'
    applicableAt:
      name: applicable_at
      in: query
      description: Return only incompatibilities applicable at the specified date-time
      required: false
      schema:
        type: string
        format: date-time
      example: '2080-10-03T22:00:00Z'
    existentPromotionId:
      name: existent_promotion_id
      in: path
      description: existent promotion id
      required: true
      schema:
        type: string
      example: '234'
    newPromotionId:
      name: new_promotion_id
      in: path
      description: new promotion id
      required: true
      schema:
        type: string
      example: '235'
    commercialDeviceId:
      name: id
      in: path
      description: commercial device identifier
      required: true
      schema:
        type: string
      example: 006703d738efe9b30aeefaadd4bfe20b
    commercialDeviceIdPath:
      name: commercial_device_id
      in: path
      description: commercial device identifier
      required: true
      schema:
        type: string
      example: 006703d738efe9b30aeefaadd4bfe20b
    commercialProfileExId:
      name: com_profile_id
      in: path
      description: commercial profile id
      required: true
      schema:
        type: string
      example: 4
    baseProfileId:
      name: id
      in: path
      description: base profile identifier
      required: true
      schema:
        type: string
      example: 122_COMPRODUCT
    subscriptionTypeId:
      name: id
      in: path
      description: subscription type identifier
      required: true
      schema:
        type: string
      example: '1'
    territoryOwnerId:
      name: id
      in: path
      description: territory owner identifier
      required: true
      schema:
        type: string
        example: FIBMM02
    territoryOwnerIdQuery:
      name: territory_owner_id
      in: query
      description: territory owner identifier
      required: false
      style: form
      explode: false
      schema:
        type: string
        example: FIBMM02
    transactionTypeId:
      name: transaction_type_id
      in: path
      description: transaction type identifier
      required: true
      schema:
        type: string
      example: '232'
    deviceId:
      name: device_id
      in: path
      description: device identifier
      required: true
      schema:
        type: string
      example: P045A1SNC
    commercialProfileName:
      name: commercial_profile_name
      in: query
      description: commercial profile name
      required: false
      schema:
        type: string
      example: perfil_comercial.postpago_ventas_pos
    targetApplicabilityRule:
      name: target_applicability_rule
      in: query
      description: target applicability rule
      required: false
      schema:
        $ref: '#/components/schemas/TargetApplicabilityRule'
    commercialProfileNameRequired:
      name: commercial_profile_name
      in: query
      description: commercial profile name
      required: true
      schema:
        type: string
      example: perfil_comercial.postpago_ventas_pos
    saleTypeName:
      name: sale_type_name
      in: query
      description: sale type name
      required: false
      schema:
        $ref: '#/components/schemas/SaleTypeName'
    customerTypeName:
      name: customer_type_name
      in: query
      description: customer type name
      required: false
      schema:
        $ref: '#/components/schemas/CustomerTypeName'
      example: Nuevo
    numerationTypeName:
      name: numeration_type_name
      in: query
      description: numeration type name
      required: false
      schema:
        $ref: '#/components/schemas/NumerationTypeName'
      example: Nuevo numero
    bundleCategoryName:
      name: bundle_category_name
      in: query
      description: >-
        kind of the element to apply the new promotion. Possible values are MO (mobile only), 1P, 2P, 3P
      required: true
      style: form
      explode: false
      schema:
        type: string
      example: 1P
    debitAccountId:
      name: debit_account_id
      in: query
      description: id to filter free_units_packages with a specific debit_account
      required: false
      schema:
        type: string
      example: '1000'
    customerSegmentName:
      name: customer_segment_name
      in: query
      description: customer segment name
      required: false
      schema:
        $ref: '#/components/schemas/CustomerSegmentName'
    commercialSegmentName:
      name: commercial_segment_name
      in: query
      description: commercial segment name (SME (SmallMediumEnterprise) or Consumer)
      required: false
      schema:
        $ref: '#/components/schemas/CommercialSegmentName'
    subscriptionTypeName:
      name: subs_type_name
      in: query
      description: subscription type name
      required: false
      schema:
        $ref: '#/components/schemas/SubsTypeName'
    billingTypeName:
      name: billing_type_name
      in: query
      description: billing type name
      required: false
      schema:
        $ref: '#/components/schemas/BillingTypeName'
    technologyName:
      name: technology_name
      in: query
      description: technology name
      required: false
      schema:
        $ref: '#/components/schemas/TechnologyName'
    bundleCategory:
      name: category
      in: query
      description: bundled product category
      required: false
      schema:
        $ref: '#/components/schemas/BundleCategory'
    includeOptionalBundledCommercialProducts:
      name: include_optional_bundled_commercial_products
      in: query
      description: >-
        boolean to indicate if optional bundled commercial products details must be returned (not recommended). false by default
      required: false
      schema:
        type: boolean
      example: false
    usedForAutomaticChanges:
      name: used_for_automatic_changes
      in: query
      description: >-
        boolean to indicate if the bundled product change is available for manual or automatic changes. `false` by default. Sale channels and customer apps must use always `false`.
      required: false
      schema:
        type: boolean
      example: false
    usedForAutomaticOrphanSubscriptionChange:
      name: used_for_automatic_orphan_subscription_change
      in: query
      required: false
      style: form
      explode: false
      schema:
        type: boolean
      description: >-
        boolean to indicate if the bundled commercial product change is available for manual or automatic changes. false by default. Sale channels and customer apps must use always false.
      example: false
    donorNumerationTypeName:
      name: donor_numeration_type_name
      in: query
      description: >-
        optional field that indicates the numeration type in case of portability (numeration type is not Nuevo numero)
      required: false
      schema:
        $ref: '#/components/schemas/DonorNumerationType'
    paymentType:
      name: payment_type
      in: query
      description: >-
        optional field that indicates if is financed, single or recurring payment
      required: false
      schema:
        $ref: '#/components/schemas/PaymentType'
    deviceCategory:
      name: device_category
      in: query
      description: optional field to filter by device category
      required: false
      schema:
        $ref: '#/components/schemas/DeviceCategory'
    deviceCategoryIn:
      name: 'device_category[in]'
      in: query
      description: >-
        multiple optional field to filter by device category. Case sensitive. Concatenate with ','.
      required: false
      schema:
        type: string
        example: 'SMARTPHONE,SMARTWATCH'
    deviceBrand:
      name: device_brand
      in: query
      description: optional field to filter by device brand
      required: false
      schema:
        type: string
        example: SAMSUNG
    deviceName:
      name: device_name
      in: query
      description: optional field to filter by device name. Case sensitive
      required: false
      schema:
        type: string
        example: 512GB
    deviceNameContains:
      name: 'device_name[contains]'
      in: query
      description: optional field to filter by device name. Case sensitive
      required: false
      schema:
        type: string
        example: iPhone
    deviceModel:
      name: device_model
      in: query
      description: optional field to filter by device model. Case sensitive
      required: false
      schema:
        type: string
        example: iPhone
    deviceModelContains:
      name: 'device_model[contains]'
      in: query
      description: optional field to filter by device model with REGEX. Case sensitive
      required: false
      schema:
        type: string
        example: iPhone
    deviceColour:
      name: device_colour
      in: query
      description: optional field to filter by device colour
      required: false
      schema:
        type: string
        example: NEGRO
    genericCode:
      name: generic_code
      in: query
      description: optional field to filter by generic code device
      required: false
      schema:
        type: string
      example: P062P63
    deviceIdContains:
      name: 'device_id[contains]'
      in: query
      description: filter for devices whose ids contain a specific string
      required: false
      schema:
        type: string
      example: P062
    permanence:
      name: permanence
      in: query
      description: >-
        flag to filter commercial devices based on whether they have permanence or not
      required: false
      schema:
        type: boolean
      example: false
    permanenceType:
      name: permanence_type
      in: query
      description: >
        flag to filter device permanences according to the multi-financing business rules

        - **MAIN**: Penalties that apply to header lines and non-OXF segments. You can only have 1 at a time

        - **NOT_MAIN**: Permanences that apply to devices on additional lines, OXF segments. You can have more than 1 at a time


        **Note:** If this parameter (`permanence_type`) is provided in the request, the `permanence` query parameter will be `true`.

      required: false
      schema:
        $ref: '#/components/schemas/PermanenceType'
    renewalCategory:
      name: renewal_category
      in: query
      description: renewal category
      required: false
      schema:
        $ref: '#/components/schemas/RenewalCategory'
    subsOfferSegmentName:
      name: subs_offer_segment_name
      in: query
      description: name of the subscription offer segment
      required: false
      schema:
        type: string
      example: OCA
    refinanceAmount:
      name: refinance_amount
      in: query
      description: amount to refinance
      required: true
      schema:
        type: number
        format: double
      example: '154,87'
    insuredAmount:
      name: insured_amount
      in: query
      description: >-
        in case subs_type_id belongs to DEVICEINSURANCE this query param will be used to search by the insurance policy available for this particular amount
      required: false
      schema:
        type: number
        format: double
      example: 350
    visibilityType:
      name: visibility_type
      in: query
      description: visibility type
      required: false
      schema:
        $ref: '#/components/schemas/VisibilityType'
    sellable:
      name: sellable
      in: query
      description: >-
        flag to filter items that are commercially active or not. If absent default is true
      required: false
      schema:
        type: boolean
      example: true
    mysimServiceId:
      name: mysim_service_id
      in: query
      description: internal service id used within mySim
      required: false
      schema:
        type: string
      example: '1'
    mandatory:
      name: mandatory
      in: query
      description: >-
        flag to filter commercial devices that are mandatory to sell in a bundled product. If absent, no filtering is applied (null).
      required: false
      schema:
        type: boolean
      example: false
    destinationBundledProductIdQuery:
      name: destination_bundled_product_id
      in: query
      description: destination bundled product identifier
      required: false
      schema:
        type: string
      example: '609'
    categoryWeb:
      name: category_web
      in: query
      description: optional field to filter by category web
      required: false
      schema:
        $ref: '#/components/schemas/CategoryWeb'
    categoryGroup:
      name: category_group
      in: query
      description: >-
        optional field to filter by category group, each category group consists of at least one category web
      required: false
      schema:
        $ref: '#/components/schemas/CategoryGroup'
    deviceCategoryWeb:
      name: device_category_web
      in: query
      description: >-
        This parameter is optional and should only be used to retrieve device insurance tariffs (subs_type=DEVICEINSURANCE)
      required: false
      schema:
        $ref: '#/components/schemas/CategoryWeb'
    orgId:
      name: org_id
      in: path
      description: organization name
      required: true
      schema:
        type: string
      example: masmovil
    languageCode:
      name: Accept-Language
      in: header
      description: 'Flag to indicate the text language, relies on ISO-639-1'
      required: false
      schema:
        type: string
        example: es
    offset:
      name: offset
      in: query
      description: >
        The number of elements to skip before starting to collect the result set.

        It can be used in combination with the limit parameter to control the

        pagination of the result set.

      required: false
      schema:
        type: integer
        format: int32
        minimum: 0
        example: 0
    limit:
      name: limit
      in: query
      description: |
        The number of elements to return in the result set. It can be used in
        combination with the offset parameter to control the pagination of the
        result set.
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 1000
        example: 20
    sort:
      name: sort
      in: query
      description: |
        The fields by which the results will be sorted. It can be a list of
        fields separated by commas. A suffix must be added:

        * ":asc" to indicate an ascending order.
        * ":desc" to indicate a descending order.
      required: false
      style: form
      explode: false
      schema:
        type: string
        example: 'name:desc,external_id:asc'
  examples:
    SellableCommercialDevice:
      value:
        - payment_type: FINANCED_PAYMENT
          renewal_category: Retention
          insured_amount: 1104.9
          cession_price: 1075.74
          retail_price: 832
          discount: 243.74
          id: CDCVFI_1595eb3086102b344f9a457676424d68b7
          terminal_id: '930'
          campaign_id: '1092'
          promotions:
            - applicability_model: FeeGeneration
              restrictions_applicability_rule: FeeGeneration
              fee_subtypes: LastInstallmentFee
              keep_on_downgrade: true
              in_catalogue_since: '2023-11-15T12:23:17Z'
              digital_channels_name: Descuento cuota final Renuevo
              in_catalogue_until: '2080-12-30T23:00:00Z'
              need_promotion_code: false
              invoice_name: Descuento cuota final Renuevo
              need_existent_MSISDN: false
              duration: 1
              unlimited_duration: false
              invoice_description: Descuento cuota final Renuevo
              currency: euro
              id: RP00050
              xsell_permit: false
              value: 50
              reduced_fee_amount: true
              discount_type: Fixed
              priority: 1
              keep_on_upgrade: true
              target_applicability_rule: FeeSubtype
              calculation_model: Flat
              name: Descuento 50 en cuota final
              marketing_name: Descuento cuota final Renuevo
              from: '2023-11-15T12:23:17Z'
              is_mandatory: false
              to: '2080-12-30T23:00:00Z'
              commercial_profiles:
                - name: perfil_comercial.ecare
                  id: '5'
                  visibility_type: POSITIVE
                  from: '2023-11-15T12:23:17Z'
                  to: '2080-12-30T23:00:00Z'
                - name: perfil_comercial.apn_soho
                  id: '24'
                  visibility_type: POSITIVE
                  from: '2023-11-15T12:23:17Z'
                  to: '2080-12-30T23:00:00Z'
              terms: []
              transaction_type:
                is_active: true
                name: DESCUENTO POR RENUEVO
                description: DESCUENTO POR RENOVACION TERMINAL FINANCIADO
                is_external: true
                id: '540'
                transaction_type: Credit
                tax_rate: not_apply
          fees: []
          commercial_profiles:
            - name: perfil_comercial.portout_soho
              id: '23'
              visibility_type: POSITIVE
              from: '2023-11-15T12:23:17Z'
              logistic_required: true
              to: '2080-12-30T23:00:00Z'
            - name: perfil_comercial.bajas_soho
              id: '22'
              visibility_type: POSITIVE
              from: '2023-11-15T12:23:17Z'
              logistic_required: true
              to: '2080-12-30T23:00:00Z'
          channels: []
          numeration_types: []
          sale_types:
            - name: Cartera
              description: 'Cartera: Operación sobre paquete/suscripción existente'
              id: '999'
              from: '2023-11-15T12:23:17Z'
              to: '2080-12-30T23:00:00Z'
          donor_numeration_types: []
          installment_plans:
            - duration: '36'
              commission_percentage: '10.30'
              name: '36_0_1675_22900_20000_15_renew_OCA_2080-12-30T23:00:00Z_574_8570'
              tin: '0.00'
              tae: '5.74'
              commission: '85.70'
              id: '36_0_1675_22900_20000_15_renew_OCA_2080-12-30T23:00:00Z_574_8570'
              from: '2023-11-15T12:23:17Z'
              to: '2080-12-30T23:00:00Z'
              fees:
                - subtype: LastInstallmentFee
                  prorated_on_deactivation: false
                  description: OneTimeFee
                  prorated_on_activation: false
                  is_external: true
                  currency: euro
                  id: >-
                    OneTimeFee_LastInstallmentFee_22900_24_200_15_renew_2080-12-30T23:00:00Z_FI
                  type: OneTimeFee
                  recurrence_interval: 0
                  value: 229
                  from: '2023-11-15T12:23:17Z'
                  to: '2080-12-30T23:00:00Z'
                  transaction_type:
                    is_active: true
                    name: VALOR RESIDUAL (Q25)
                    description: VALOR RESIDUAL FINANCIACION (Q25)
                    is_external: true
                    id: '510'
                    transaction_type: Debit
                    tax_rate: not_apply
                - prorated_on_deactivation: false
                  description: MonthlyRecurringCharge
                  prorated_on_activation: false
                  is_external: true
                  type: RecurringCharge
                  recurrence_interval: 0
                  recurrence_scheme: BoundToBillCycle
                  subtype: InstallmentFee
                  paid_in_advance: false
                  currency: euro
                  id: >-
                    RecurringCharge_InstallmentFee_BoundToBillCycle_1675_24_200_15_renew_2080-12-30T23:00:00Z_FI
                  value: 16.75
                  from: '2023-11-15T12:23:17Z'
                  to: '2080-12-30T23:00:00Z'
                  transaction_type:
                    is_active: true
                    name: CUOTA MENSUAL FINANCIACION
                    description: CUOTA MENSUAL FINANCIACION
                    is_external: true
                    id: '500'
                    transaction_type: Debit
                    tax_rate: not_apply
              terms:
                - penalty_prorated: true
                  name: TERM24-200
                  commitment_duration: 24
                  unlimited_duration: false
                  currency: euro
                  id: 'DEVICE_TERM_24_200_15_renew_2080-12-30T23:00:00Z'
                  type: PermanenceContract
                  value: 200
                  from: '2023-11-15T12:23:17Z'
                  to: '2080-12-30T23:00:00Z'
                  transaction_type:
                    is_active: true
                    name: CUOTA PENALIZACION
                    description: MÓVIL CUOTA PENALIZACIÓN
                    is_external: false
                    id: '281'
                    transaction_type: Debit
                    tax_rate: generic
          device:
            colour: STARLIGHT
            image_url: >-
              https://storage.googleapis.com/device-images-prod/P0974P1SC/P0974P1SC-1-large.jpg
            include_preinstalled_sim: false
            name: iPhone 14 Plus
            description: >-
              Pantalla: 6,7"HDR / Cámara: 12 MP + 12 MP / Cámara trasera: 12 MP / Batería: - / Memoria interna: N/D / Memoria Ram: 128 GB
            model: 128GB Starlight
            generic_code: P0974P1
            id: P0974P1SC
            category: SMARTPHONE
            brand: APPLE
            model_web: 128GB Starlight
            from: '2023-11-15T12:23:17Z'
            to: '2080-12-30T23:00:00Z'
    RefinanceConditions:
      value:
        - duration: '12'
          commission_percentage: '0.00'
          name: 12_0_0_0_0_15_REF
          tin: '0.00'
          tae: '0.00'
          commission: '0.00'
          id: 12_0_0_0_0_15_REF
          from: '2023-08-20T22:00:00Z'
          to: '2080-12-30T23:00:00Z'
          fees:
            - prorated_on_deactivation: false
              description: MonthlyRecurringCharge
              prorated_on_activation: false
              is_external: true
              type: RecurringCharge
              recurrence_interval: 0
              recurrence_scheme: BoundToBillCycle
              subtype: InstallmentFee
              paid_in_advance: false
              currency: euro
              id: 12_0_0_0_0_15_REF
              value: 18
              from: '2023-08-16T07:29:33Z'
              to: '2080-12-30T23:00:00Z'
              transaction_type:
                is_active: true
                name: CUOTA MENSUAL FINANCIACION
                description: CUOTA MENSUAL FINANCIACION
                is_external: true
                id: '500'
                transaction_type: Debit
                tax_rate: not_apply
  responses:
    400BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            type: string
          example:
            error: Bad Request
            message: Bad request
            code: '020015'
    400BadRequestString:
      description: Bad request
      content:
        application/json:
          schema:
            type: string
          example: Bad Request
    404NotFound:
      description: Item not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KOGenericResponse'
          example:
            error: Item not found
            message: Item not found
            code: 0200XX
    401Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: string
          example: Origin authentication failed.
    409ExecutionInProgress:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KOGenericResponse'
          example:
            error: Conflict
            message: Another execution is already in progress
            code: '020015'
    409Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KOGenericResponse'
          example:
            error: Conflict
            message: Conflict message
            code: '020015'
  headers:
    contentLanguage:
      description: Text language ISO-639-1
      schema:
        type: string
        example: es
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
  x-releaseInfo:
    description: |

      ## Release Notes

      * **2.117.1**
        - Deprecate endpoint `/orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable`

      * **2.117.0**
        - Add new enum value `6P` to `BundledType_Response` schema
        - Add new enum value `Fixed+Broadband+Mobile+TV+Netflix+Disney` to `BundleCategory` and `BundleCategory_Response` schemas

      * **2.116.0**
        - Add new endpoint `GET /orgs/{org_id}/bundled_products/{bundled_product_id}/bundled_commercial_products/{bcp_id}/commercial_devices/sellable`
          - Returns sellable commercial devices for a bundled commercial product scoped to a specific bundled product

      * **2.115.0**
        - Remove query parameter `numeration_type_name` from bundled commercial products endpoints
          - Affected endpoints:
            - `/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products/sellable`
            - `/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products`
            - `/orgs/{org_id}/bundled_products/{id}/bundled_commercial_products`
          - The parameter is still accepted by the API for backward compatibility but is silently ignored

      * **2.114.0**
        - Add new enum value `AGILETV` to `SubsTypeName` and `SubsTypeName_Response` schemas

      * **2.113.0**
        - Add fields `charger_included` and `charger_label` to `Device_Response` schema
          - `charger_included` (boolean): indicates whether a charger is included in the device box
          - `charger_label` (string): descriptive label of the charger type/standard (e.g. USB-C 25W)
          - Required by EU Directive 2022/2380 on common chargers (legal obligation)
          - Affects endpoints: `/orgs/{org_id}/devices`, `/orgs/{org_id}/devices/sellable`, `/orgs/{org_id}/devices/{device_id}`

      * **2.112.0**
        - Add new enum value `RECURRING_PAYMENT` to `PaymentType` and `PaymentType_Response` schemas

      * **2.111.1**
        - Rename properties `min_main_line` and `max_main_line` to `min_main_lines` and `max_main_lines` in schema `BundledProductSubsTypeBasic`

      * **2.111.0**
        - Add field `reverse_logistic_method` to `Device_Response` schema
          - New enum field to indicate the return method for a device in case of withdrawal
          - Possible values: `POST_OFFICE` (customer brings device to a post office), `HOME_PICKUP` (courier picks up at home)
          - Affects endpoints: `/orgs/{org_id}/devices`, `/orgs/{org_id}/devices/sellable`, `/orgs/{org_id}/devices/{device_id}`

      * **2.110.0**
        - Add property `min_devices` to schema `CommercialProductSimple`
        - Add properties `min_main_line` and `max_main_line` to schema `BundledProductSubsTypeBasic`

      * **2.109.0**
        - Add new enum value `SIM` to `DeviceCategory` and `Device_Response` schema

      * **2.108.0**
        - Add new Fee subtype `RetailPrice` to `FeeInstallmentPlan_refinance_Response` schema

      * **2.107.0**
        - Add `type_group` attribute to `PromotionDetail_Response` schema
          - New field identifies if a promotion is of type BUNDLE or OTHER
          - Determined based on `type_name` (BUNDLE for "PAQUETE SUBS" types, OTHER for all else)
          - Follows same pattern as `promotion_type_group` in `PromotionIncompatibility`
        - Move `category_name` and `type_name` from `getPromoByComProfile_Response` to `PromotionDetail_Response`
          - These fields are only returned in promotion detail endpoints, not in the base commercial profile promotions endpoint
          - No functional impact as `PromotionDetail_Response` previously inherited these fields via `allOf`

      * **2.106.2**
        - Remove attribute `digital_channels_name` from `CommercialDevice` schema

      * **2.106.1**
        - Rename attributes in `CommercialDevice_device_Response` schema:
          - `in_catalogue_since` renamed to `from`
          - `in_catalogue_until` renamed to `to`

      * **2.106.0**
        - Add new Fee subtypes to `Fee_Response` schema:
          - `RepairExcessFee` - Franquicia de reparación
          - `ReplacementExcessFee` - Franquicia de reemplazo

      * **2.105.0**
        - Add the new attribute `promotion_type_group` to the promotion incompatibility schemas.
          - Group classification of the promotion type. Use this field to identify bundle promotions.
            - `BUNDLE`: Promotion is a bundle type (e.g., PAQUETE SUBS, PAQUETE SUBS MENSUAL)
            - `OTHER`: Any other promotion type

      * **2.104.0**
        - Add the new attribute `insurance_type` to the `CommercialProduct` schemas.
          - Possible values for this field: `GLOBAL`, `MULTIMEDIA`, `null` (only if the `CommercialProduct` is not a Zurich insurance tariff).

      * **2.103.0**
        - Add new query param `device_category_web` to the following endpoint:
          - `/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products/sellable`
        - This parameter is optional and should only be used to retrieve device insurance tariffs (subs_type=DEVICEINSURANCE)

      * **2.102.0**
        - Add new query param `device_category_web` to the following endpoints:
          - `/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products`
          - `/orgs/{org_id}/bundled_products/{id}/bundled_commercial_products`
        - This parameter is optional and should only be used to retrieve device insurance tariffs (subs_type=DEVICEINSURANCE)

      * **2.101.0**
        - Add new query param `applicable_at` to commercial_product and bundled_commercial_product incompatibilities endpoints

      * **2.100.0**
        - Add query param `category_group` to `/devices/sellable` and `/devices` endpoints
        - Add field `category_group` to `DeviceResponse`

      * **2.99.0**
        - Delete query param `promotional_renew` for the following endpoints:
          - `/orgs/{org_id}/commercial_devices`
          - `/orgs/{org_id}/commercial_devices/sellable`

      * **2.98.0**
        - Add new endpoint `/orgs/{org_id}/value_added_services/{id}/commercial_infos` to get commercial infos for value added services

      * **2.97.0**
        - Add field `ean_code` to `DeviceResponse`

      * **2.96.0**
        - Add field `esim_only` to `DeviceResponse`

      * **2.95.0**
        - Add field `energy_label` to `DeviceResponse`

      * **2.94.0**
        - Add query param `category_web` to `/devices/sellable` and `/devices` endpoints

      * **2.93.0**
        - Add new endpoint endpoint `/orgs/{org_id}/bundled_commercial_products/{bcp_id}/commercial_devices/{cd_id}`

      * **2.92.2**
        - Change query param `dest_bundled_product_id` name to  `destination_bundled_product_id`

      * **2.92.1**
        - Fix endpoint `/orgs/{org_id}/devices` not rendering in developer portal
        - Add missing `401` response `/orgs/{org_id}/devices/{device_id}`

      * **2.92.0**
        - Remove `/orgs/{org_id}/bundled_products/{id}/provisioning_profiles` endpoint
        - Add `upload_speed` and `download_speed` fields to `TerritoryOwnerDetail` schema
        - Deprecate `upload_speed` and `download_speed` fields in `BundledProductBasic_Response` schema
        - Deprecate `upload_speed` and `download_speed` fields in `getBaseProfiles_Response` schema

      * **2.91.0**
        - Add query param `target_applicability_rule` to endpoint `/orgs/{org_id}/promotions/sellable`

      * **2.90.3**
        - Add new query_param `destBundledProductId` to endpoint:
          - `/orgs/{org_id}/bundled_products/{bundled_product_id}/bundled_commercial_products/{id}/can-switch`

      * **2.90.2**
        - Rename `refound_transaction_type_id` to `refund_transaction_type_id` in `TransactionType` schema

      * **2.90.1**
        - Update enum values of `SubsTypeName`, remove `DISNEY+`

      * **2.90.0**
        - Update enum values of `SubsTypeName` for `DISNEY` and `DISNEY+`

      * **2.89.0**
        - Add new field `unlimited_duration` to `Terms_alone_Response` schema

      * **2.88.0**
        - Add new field `unlimited_duration` to `PromotionDetail_Response` schema

      * **2.87.0**
        - Add new query param `permanence_type` to endpoints:
          - `/orgs/{org_id}/commercial_devices`
          - `/orgs/{org_id}/commercial_devices/sellable`
          - `/orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable`

      * **2.86.0**
        - Add new field `refound_transaction_type_id` to `TransactionType` schema

      * **2.85.1**
        - Fix wrong BillingType enum value: "PREPAGO AUTOMATICO" -> "RECARGA AUTOMATICA"

      * **2.85.0**
        - Define new endpoints to get promotion incompatibilities by commercial_product or bundled_commercial_product:
          - `/orgs/{org_id}/commercial_products/{commercial_product_id}/promotions/{promotion_id}/incompatibilities`
          - `/orgs/{org_id}/bundled_commercial_products/{bcp_id}/promotions/{promotion_id}/incompatibilities`

      * **2.84.0**
        - Add new field `promotional_info` to `Device_Response` schema

      * **2.83.0**
        - Add new subtype `ExcessFee` to `Fee_Response` schema

      * **2.82.0**
        - Update enum values of `BundleCategory` and `SubsTypeName` for `ORANGE_TV_LIBRE`

      * **2.81.0**
        - Add query param `mandatory` to endpoints:
          - `/orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable`
          - `/orgs/{org_id}/commercial_devices`

      * **2.80.0**
        - Add `store_delivery_allowed` field in `CommercialProfile` schema

      * **2.79.1**
        - Fix `ValueAddedServiceDetail` and `ValueAddedService` schemas by adding `max_quantity` field and deprecating `max_cardinality`

      * **2.79.0**
        - Add `TV` subscription type
        - Add new fields in `CommercialProduct` schema:
          - `max_devices`
          - `max_concurrent_views`

      * **2.78.0**
        - Add `permanence_type` to `Terms_alone_Response`

      * **2.77.0**
        - Add new fields in FUP responses:
          - `volume_home_sl0`
          - `volume_home_sl1`
          - `volume_rlah_sl0`
          - `volume_rlah_sl1`
          - `volume_nr_sl0`
          - `volume_nr_sl1`

      * **2.76.0**
        - Add `NOT_APPLICABLE` to `target_applicability_rule` and `applicability_model` extensible enums

      * **2.75.0**
        - Add query param `mysim_service_id` to endpoints:
          - `/orgs/{org_id}/commercial_products/{id}/value_added_services`
          - `/orgs/{org_id}/bundled_commercial_products/{id}/value_added_services`

      * **2.74.0**
        - Add `binding_type_id` to `TermsPromotion_Response`

      * **2.73.0**
        - Remove designer endpoints.

      * **2.72.0**
        - Modify number formats in `BundledProduct` and `FreeUnitsPackage` schemas
        - Add `type[in]` and `category[in]` query params in `GET /commercial_profiles/{commercial_profile_id}/free_units_packages` endpoint

      * **2.71.0**
        - Add new endpoint `GET /orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/free_units_packages`

      * **2.70.2**
        - Remove `FeeGeneration` and add `FeeSubtype` from `target_applicability_rule` enum in `getPromoByComProfile_Response` schema
        - Remove `FEE_GENERATION` and add `FEE_SUBTYPE` from `target_applicability_rule` enum in `Promotion` schema

      * **2.70.1**
        - Rename `provisioning_id` as `external_provisioning_id` in `CommercialProduct` schema

      * **2.70.0**
        - Add endpoints for CRUD operations of promotion categories:
          - `/orgs/{org_id}/designer/promotion_categories`
          - `/orgs/{org_id}/designer/promotion_category/{promotion_category_id}`

      * **2.69.0**
        - Modify type of `rate_plan` and `billing_type` fields in `CommercialProduct` schema
        - Add `provisioning_id`, `service_class`, `external_offer_id`, `external_charging_id` and `manual_renewal` fields in `CommercialProduct` schema

      * **2.68.0**
        - Add base_profile query filters in `GET` `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/commercial_products` endpoint
        - Add `promotion_category_name[in]` and `promotion_type_name[in]` query filters in `GET`
          `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/promotions` endpoint
        - Add `type[in]` query filter in `GET` `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/bundled_products` endpoint

      * **2.67.1**
        - Remove prefix `is_` on params of `transaction_type` schema

      * **2.67.0**
        - Add new endpoint `GET` `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/bundled_products`
        - Add `BundledProductType, CustomerSegment, BillingType, Technology and SubscriptionType` enums

      * **2.66.2**
        - Remove `refound_transaction_type_id` from fields required in `transaction_types` create

      * **2.66.1**
        - Remove `iso_language` from `Promotion` and `CommercialProduct` schemas

      * **2.66.0**
        - Adding new endpoints for CRUD operations of transaction types:
          - `/orgs/{org_id}/designer/transaction_types`
          - `/orgs/{org_id}/designer/transaction_types/{transaction_type_id}`

      * **2.65.0**
        - Add `promotion_type_id` and `promotion_category_id` query params in `GET`
          `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/promotions` endpoint

      * **2.64.0**
        - Add new endpoint `/bundled_products/{bp_id}/bundled_commercial_products`

      * **2.63.1**
        - Add 409 status code in response of `POST` and `PATCH` endpoint:
          - `/orgs/{org_id}/designer/commercial_profiles`
          - `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}`
          - `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/promotions/{promotion_id}`
          - `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/commercial_products/{commercial_product_id}`
          - `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/free_units_packages/{free_units_package_id}`
          - `/orgs/{org_id}/designer/commercial_profiles/{commercial_profile_id}/bundled_products/{bundled_product_id}`

      * **2.63.0**
        - Add endpoints for CRUD operations of free units package:
          - `/orgs/{org_id}/designer/free_units_package`
          - `/orgs/{org_id}/designer/free_units_package/{free_units_package_id}`

      * **2.62.0**
        - Adapting designer to masstack url convention

      * **2.61.0**
        - Deleting bundle_category_id and bundle_type_name from PromotionCanSwitchPromotion

      * **2.60.0**
        - Rename `rate_plan_id` field in `CommercialProduct` schema as `rate_plan`
        - Rename `billing_type_id` field in `CommercialProduct` schema as `billing_type`
        - Add endpoints for CRUD operations of bundled products:
          - `/designer/orgs/{org_id}/bundled_products`
          - `/designer/orgs/{org_id}/bundled_products/{bundled_product_id}`

      * **2.59.0**
        - Deleting unused endpoint promotions can-switch
          - `/orgs/{org_id}/promotions/{existent_promotion_id}/can-switch/{new_promotion_id}`

      * **2.58.0**
        - Include new SubsType value for Max subscriptions: `MAX`

      * **2.57.5**
        - Rename `id[contains]` query param to `device_id[contains]` for the `/commercial_devices` endpoint

      * **2.57.4**
        - Adding `customer_type` to Promotion schema
        - Adding `customer_type` query param in `GET` `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/promotions` endpoint

      * **2.57.3**
        - Update description of DELETE `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}` endpoint
        - Update description of DELETE `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/promotions/{promotion_id}` endpoint
        - Update description of DELETE `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/commercial_products/{commercial_product_id}`
          endpoint

      * **2.57.2**
        - Update description of DELETE `/designer/orgs/{org_id}/sale_types/{sale_type_id}` endpoint

      * **2.57.1**
        - Update description of DELETE `/designer/orgs/{org_id}/promotion_types/{promotion_type_id}` endpoint

      * **2.57.0**
        - Add endpoints for commercial products related to commercial profiles:
          - `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/commercial_products`
          - `/designer/orgs/{org_id}/commercial_products/{commercial_product_id}/commercial_profiles`
          - `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/commercial_products/{commercial_product_id}`

      * **2.56.0**
        - Rename `PromotionRelatedRaw` and `PromotionRelatedRawList` schemas as `PromotionRelatedWithDatesRaw` and `PromotionRelatedWithDatesRawList`
          respectively
        - Create `PromotionSoldByCommercialProfileRawList` and `PromotionSoldByCommercialProfileRaw` schemas

      * **2.55.0**
        - Adding category_name to getPromoByComProfile_Response

      * **2.54.1**
        - Change type of `duration` field in `Promotion` schema as integer
        - Rename `term_id` fields in `Promotion` schema as `commitment_id` and set as nullable
        - Remove `external_market_id` field from `Promotion` schema and added as field in `PromotionRaw` schema

      * **2.54.0**
        - Adding query params sort, deviceName, deviceModel and deviceColour for paginated commercial devices:
          - `/orgs/{org_id}/commercial_devices`

      * **2.53.0**
        - Adding new endpoints for CRUD operations of sale types:
          - `/designer/orgs/{org_id}/sale_types`
          - `/designer/orgs/{org_id}/sale_types/{sale_type_id}`

      * **2.52.0**
        - Adding new endpoints for CRUD operations of promotion types:
          - `/designer/orgs/{org_id}/promotion_types`
          - `/designer/orgs/{org_id}/promotion_types/{promotion_type_id}`

      * **2.51.0**
        - Add endpoint to get promotions sold by commercial profile:
          - GET `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/promotions`

      * **2.50.0**
        - Return `201` status code in response of endpoint:
          - POST `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/promotions/{promotion_id}`

      * **2.49.0**
        - Add `category_name` to promotions response for endpoint:
          - `/orgs/{org_id}/promotion/{id}`

      * **2.48.0**
        - Add paginated endpoint for commercial devices `/orgs/{org_id}/commercial_devices`

      * **2.47.0**
        - Add endpoints for promotions related to commercial profiles:
          - `/designer/orgs/{org_id}/promotions/{promotion_id}/commercial_profiles`
          - `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}/promotions/{promotion_id}`

      * **2.46.0**
        - Add `penalty_reference` field in the response of CommercialProduct

      * **2.45.2**
        - Add query params in GET `/commercial_profiles` enpoint:
          - `name`
          - `start_date[gt]`
          - `start_date[gte]`
          - `start_date[lt]`
          - `start_date[lte]`
          - `end_date[gt]`
          - `end_date[gte]`
          - `end_date[lt]`
          - `end_date[lte]`
        - Return `CommercialProfileRawList` schema in GET `/commercial_profiles` endpoint.

      * **2.45.1**
        - Change query parameter `language_code` to header parameter

      * **2.45.0**
        - Add `reduce_penalty_threshold` field in the response of Promotions

      * **2.44.1**
        - Add `consolidated` and `updated_at` fields in the response body of commercial profile by id.

      * **2.44.0**
        - Add `skip_first_period` field in the response body of Promotions

      * **2.43.2**
        - Add `start_date` and `end_date` fields in the response body of commercial profile getters.

      * **2.43.1**
        - Add `start_date` and `end_date` fields in the request body of commercial profile operations.

      * **2.43.0**
        - Adding bundled_type to bundled product schemas:
          - BundledProduct_Response
          - SwitchBundledProduct_Response
          - BundledProductBasic_Response
        - Endpoints affected:
          - `/orgs/{org_id}/bundled_products/{id}`
          - `/orgs/{org_id}/bundled_products`
          - `/orgs/{org_id}/bundled_products/sellable`
          - `/orgs/{org_id}/bundled_products/{id}/can-switch`
          - `/orgs/{org_id}/bundled_products/{id}/can-switch/{target_id}`

      * **2.42.2**
        - Include new SubsType value for Amazon subscriptions: `AMAZONPRIME`.
        - Include missing property `mysim_id` in ValueAddedService schemas.

      * **2.42.1**
        - Remove wrong encoding in `/designer/orgs/{org_id}/upload_file` endpoint.

      * **2.42.0**
        - Add new query parameter language_code

      * **2.41.1**
        - Update `/designer/orgs/{org_id}/download/{file_name}` to return a ResponseBody

      * **2.41.0**
        - Removing values node from all responses

      * **2.40.0**
        - Adding new endpoints for CRUD operations of commercial profiles:
          - `/designer/orgs/{org_id}/commercial_profiles`
          - `/designer/orgs/{org_id}/commercial_profiles/{commercial_profile_id}`

      * **2.39.2**
        - Changed `/designer/orgs/{org_id}/upload_file` content from csv to multipart/form-data

      * **2.39.1**
        - Split swagger difinition into modules (one swagger file for each service)
        - Removing unused schemas: Tax and TaxValue
        - Removing `ofc-manager` API (it must be used through `designer`)
        - Refactoring several descriptions

      * **2.39.0**
        - Adding is_bundled to bundled commercial product schemas:
          - BundledCommercialProductBasic
          - BundledCommercialProductDetail
          - BundledCommercialProductCanSwitch
          - BundledCommercialProduct

      * **2.38.0**
        - Adding retail_price and discount properties to commercial device schemas CommercialDevice and CommercialDeviceAlone

      * **2.37.0**
        - Adding new endpoint to download file from storage
          - `/designer/orgs/{org_id}/download/{fileName}`

      * **2.36.0**
        - Adding new query param `debit_account_id` for the following endpoints:
          - `/orgs/{org_id}/commercial_products/{id}/free_units_packages`
          - `/orgs/{org_id}/commercial_products/{id}/free_units_packages/sellable`

      * **2.35.0**
        - Adding new endpoint to upload file to storage
          - `/designer/orgs/{org_id}/upload_file`

      * **2.34.0**
        - Adding used_for_automatic_orphan_subscription_change to BundledProductSubsTypeDetail and BundledProductSubsTypeBasic. Affected endpoints:
          - `/orgs/{org_id}/bundled_products/{id}`
          - `/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types`

      * **2.33.0**
        - Adding model_web property to device schema CommercialDevice_device_Response

      * **2.32.0**
        - Example added for endpoint (successful response with promotions) :
          - `/orgs/{org_id}/commercial_devices/sellable`

      * **2.31.0**
        - Add new optional query param `permanence` for the endpoints:
          - `/orgs/{org_id}/commercial_devices/sellable`
          - `/orgs/{org_id}/commercial_products/{id}/commercial_devices/sellable`
          - `/orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable`
          - `/orgs/{org_id}/value_added_services/{id}/commercial_devices/sellable`

      * **2.30.0**
        - Add promotions array to response endpoint : `/orgs/{org_id}/commercial_devices/sellable`
        - Add new LoadType `mandatory_commercial_devices`

      * **2.29.0**
        - Remove values array from endpoint : `/orgs/{org_id}/commercial_devices/refinance`

      * **2.28.0**
        - Remove mandatory query param commercial_profile_name for endpoint `/orgs/{org_id}/devices`

      * **2.27.0**
        - Including new query params for
          endpoint `/orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products`
          - `numeration_type_name`
          - `sale_type_name`
          - `commercial_profile_name`
          - `insured_amount`
          - Including new query params for endpoint `/orgs/{org_id}/commercial_products/{id}/free_units_packages`
            - `sale_type_name`
          - Including new query params for endpoint `/orgs/{org_id}/commercial_products/{id}/promotions`
            - `customer_type_name`
            - `sale_type_name`
            - `numeration_type_name`
          - Including new query params for endpoint `/orgs/{org_id}/bundled_commercial_products/{id}/promotions`
            - `customer_type_name`
            - `sale_type_name`
            - `numeration_type_name`

      * **2.26.0**
        - Include new substype `APPLEWATCH`

      * **2.25.0**
        - Including new query param `promotional_renew` for endpoint `/orgs/{org_id}/commercial_devices/sellable`

      * **2.24.1**
        - Minor corrections to endpoint `/orgs/{org_id}/commercial_devices/refinance` descriptions

      * **2.24.0**
        - New endpoint `/orgs/{org_id}/commercial_devices/refinance` to cover commercial device refinancing functionality

      * **2.23.0**
        - Including ofc-manager endpoints  `/manager/orgs/{org_id}/validation`and `/manager/orgs/{org_id}/execution/{load_id}`

      * **2.22.0**
        - Changes in endpoint  `/orgs/{org_id}/bundled_products/{bundled_product_id}/bundled_commercial_products/{id}/can-switch`
          - Include new query param `used_for_automatic_orphan_subscription_change`
          - Fix response by creating new schema `BundledCommercialProductCanSwitch`
        - Fix `BundledCommercialProduct`, `BundledCommercialProductDetail` and `BundledCommercialProductBasic` schema by adding `invoice_name` missing
          attribute

      * **2.21.1**
        - Include `external_id` in BundledProductBasic_Response schema

      * **2.21.0**
        - Add endpoint : /orgs/{org_id}/free_units_packages
        - new value in `LoadSegment` schema

      * **2.20.0**
        - Remove endpoint : /orgs/{org_id}/value_added_services/{id}/commercial_infos

      * **2.19.0**
        - Add `in_catalogue_since` and `in_catalogue_until` from `CommercialDevice_device_Response`
        - New schema `Device_Response` for extended device characteristics
        - New values in schema `LoadType'

      * **2.18.1**
        - Include `is_external` attribute in `CommercialDevice_fees_Response` y `FeeInstallmentPlan_Response`
        - Remove `in_catalogue_since` and `in_catalogue_until` from `CommercialDevice_device_Response`

      * **2.18.0**
        - Add new schema Terms_alone_Response
        - Remove attributes `from` and `to` in CommercialDevicesTerms_Response schema updating terms response

      * **2.17.0**
        - New endpoint: /orgs/{org_id}/free_units_packages/{id}
        - New attribute `event_type` in FreeUnitsPackage_Response schema
        - Remove FreeUnitsPackageDetail schema

      * **2.16.0**
        - Remove endpoint : /orgs/{org_id}/commercial_devices/{id}/commercial_infos

      * **2.15.0**
        - Include new attibute used_for_automatic_orphan_subscription_change in BundledProductSubsType Schema
        - New query params `used_for_automatic_changes`
          - /orgs/{org_id}/bundled_products/{id}/can-switch (and `subs_removed` )
          - /orgs/{org_id}/bundled_products/{id}/can-switch/{target_id}
        - New attribute `subs_removed` in schema SwitchBundledProduct_Response
        - Include `payment_type` in commercial_devices endpoints response, CommercialDevice and CommercialDeviceAlone schemas
        - New attribute `generic_code` :
          - Include in CommercialDevice_device_Response Schema
          - Include as query param in:
            - /orgs/{org_id}/devices/sellable
            - /orgs/{org_id}/devices
            - /orgs/{org_id}/commercial_products/{id}/commercial_devices/sellable
            - /orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable
            - /orgs/{org_id}/value_added_services/{id}/commercial_devices/sellable
            - /orgs/{org_id}/commercial_devices/sellable
        - New endpoint /orgs/{org_id}/bundled_products/{id}/bundled_commercial_products/can-migrate
        - Include `sale_type_name` query param in:
          - /orgs/{org_id}/bundled_commercial_products/{id}/value_added_services
          - /orgs/{org_id}/commercial_products/{id}/value_added_services

      * **2.14.1**
        - Include new properties value and currency in Fee, Term and Promotion in CommercialDevice_fees_Response schema
        - Remove unsed query param channel_name
        - commercial_devices endpoints:
          - new query params:
            - payment_type
            - device_category
            - device_brand
        - fix wrong query params in
          - /orgs/{org_id}/bundled_products/{id}/promotions
          - /orgs/{org_id}/bundled_products/{bp_id}/bundled_commercial_products/{bcp_id}/value_added_services/sellable
          - /orgs/{org_id}/value_added_services/{id}/commercial_devices/sellable
          - /orgs/{org_id}/bundled_commercial_products/{id}/value_added_services/sellable
          - /orgs/{org_id}/commercial_products/{id}/value_added_services/sellable
          - /orgs/{org_id}/bundled_products/{bp_id}/bundled_product_subs_types/{bpst_id}/bundled_commercial_products/{bcp_id}/value_added_services/sellable
        - Replace Promotion_Response by PromotionDetail_Response schema

      * **2.14.0**
        - Fix invoice_ name by invoice_name
        - New endpoints:
          - /orgs/{org_id}/base_profiles
          - /orgs/{org_id}/base_profiles/{id}
          - /orgs/{org_id}/base_profiles/{id}/services
          - /orgs/{org_id}/subs_type
          - /orgs/{org_id}/subs_type/{id}
          - /orgs/{org_id}/territory_owners
          - /orgs/{org_id}/territory_owners/{id}

      * **2.13.7**
        - Include 'Fixed+Broadband+Mobile+Netflix' in BundleCategory and BundleCategory_Response schemas
        - Include 'NETFLIX' in SubsTypeName and SubsTypeName_Response
        - Remove query param restricted_to_user_profile
        - Include internet_speed attribute in BundledProductBasic_Response Schema
        - Include query params in /orgs/{org_id}/value_added_services/{id}/promotions

      * **2.13.6**
        - Commercial profile endpoints:
          - /orgs/{org_id}/commercial_profiles
          - /orgs/{org_id}/commercial_profiles/{com_profile_id}/commercial_products
          - /orgs/{org_id}/commercial_profiles/{com_profile_id}/free_units_packages
          - /orgs/{org_id}/commercial_profiles/{com_profile_id}/bundled_products
          - /orgs/{org_id}/commercial_profiles/{com_profile_id}/promotions
        - Endpoint /{org_id}/promotions/sellable include query param commercial_profile_name and remove unused query param channel_name
        - Endpoint /orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable remove channels in response schema and remove query params
          - channel_name unused
          - renewal_category not sense in this endpoint
          - subs_offer_segment not sense in this endpoint
        - Endpoint /{org_id}/commercial_devices/sellable remove channels in response schema
        - Endpoint /{org_id}/commercial_products/{id}/commercial_devices/sellable remove query params
          - channel_name unused
          - renewal_category not sense in this endpoint
          - subs_offer_segment not sense in this endpoint

      * **2.13.5**
        - Adapt error codes from int to string due to openapi version update

      * **2.13.4**
        - Include new property internet_speed in following schemas:
          - BundledProduct_Response
          - BaseProfile

      * **2.13.3**
        - Remove query param restricted_to_user_profile for the /orgs/{org_id}/bundled_products/{id}/can-switch endpoint
        - Remove query param include_optional_bundled_commercial_products for the /orgs/{org_id}/bundled_products/sellable endpoint

      * **2.13.2**
        - Fix /orgs/{org_id}/devices:
          - add mandatory query param commercial_profile_name
        - Fix /orgs/{org_id}/devices/sellable:
          - add mandatory query param commercial_profile_name

      * **2.13.1**
        - Change CommercialDevice_fees_Response by remove type

      * **2.13.0**
        - Include new properties value and currency in Fee, Term and Promotion
        - Include TransactionType in commercialDevice fee and term response
        - New endpoints
          - /orgs/{org_id}/commercial_products/sellable
          - /orgs/{org_id}/bundled_products/sellable
          - /orgs/{org_id}/devices/sellable
          - /orgs/{org_id}/devices/{id}
          - /orgs/{org_id}/devices
          - /orgs/{org_id}/transaction_types/{id}
          - /orgs/{org_id}/bundled_products/{bp_id}/bundled_commercial_products/{bcp_id}/value_added_services/sellable
          - /orgs/{org_id}/bundled_products/{bp_id}/bundled_product_subs_types/{bpst_id}/bundled_commercial_products/{bcp_id}/value_added_services/sellable

      * **2.12.2**
        - Define getCommercialProducts and getCommercialProductsCanSwitch operationId

      * **2.12.1**
        - Fix /orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products:
          - remove optional query params
          - create schema BundledCommercialProductBasic for its response
        - Update DonorNumerationType_Response schema

      * **2.12.0**
        - New subscription type DEVICEINSURANCE in SubsTypeName and SubsTypeName_Response schemas
        - Include new query param 'insured_amount' in
          /orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products/sellable

      * **2.11.2**
        - Fix postOFCupdates, defining request body instead of query param
        - Change subs_offer_segment_name from enum to string
        - Fix CommercialDevice Schema by changing donor_numeration_type_name by donor_numeration_types
        - New CommercialDeviceAlone schema for /commercial_devices/sellable response removing from, to and is_mandatory properties

      * **2.11.1**
        - Include body definition in POST /designer/orgs/{org_id}/catalogue_updates

      * **2.11.0**
        - Include new endpoints for Designer service to request an update of commercial offer
          - /designer/orgs/{org_id}/catalogue_updates
          - /designer/orgs/{org_id}/catalogue_updates/{update_id}
        - Include new SubsOfferSegment values
        - Include insured_amount property in CommercialDevice
        - Include Fee at bundled product level:
          - /bundled_products
          - /bundled_products/{id}

      * **2.10.2**
        - Include new property 'available_networks' in BaseProfile_services schema
        - Fix /commercial_devices/sellable:
          - remove channel_name as query param not in use
          - add commercial_profile_name as query param

      * **2.10.1**
        - Fix subs_type as object in /commercial_products

      * **2.10.0**
        - Fix to include from and to in ValueFT schema
        - Fix CommercialProduct_SubsTypeName_Response schema
        - Fix customer_offer_segment_name by subs_offer_segment_name, query param not in use by today
        - New Schema InstallationType_Response included as optional in Commercial Devices Endpoints
        - New endpoint /orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types
        - New endpoint /orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products
        - New endpoint /orgs/{org_id}/bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products/{bcp_id}

      * **2.9.1**
        - Fix remove is_recurring_package property from Change FreeUnitsPackage_free_units_package_template_Response to FreeUnitsPackage_Response and
          FreeUnitsPackageDetail

      * **2.9.0**
        - New property commission_percentage in CommercialDevice_installment_plan schema
        - fix response /orgs/{org_id}/promotions/{existent_promotion_id}/can-switch/{new_promotion_id}

      * **2.8.0**
        - New value 'Cross Sell' in query param sale_type_name and new value in response to identify Cross Sell promotions, schema SaleTypeName
          SaleTypeName_Response
        - Include commercial_profile_name as queryparam in request and in response
        - New property 'duo_type' in BundledCommercialProductDetail and BundledCommercialProduct schema

      * **2.7.0**
        - New commercial profile visibility functionality, implies:
          - new query param commercial_profile_name
            - /commercial_products
            - /bundled_products
            - /bundled_products/{id}/bundled_product_subs_types/{subs_type_id}/bundled_commercial_products/sellable
            - /commercial_products/{id}/free_units_packages/sellable
            - /bundled_products/{id}/can-switch
            - /bundled_products/{id}/can-switch/{target_id}
            - /bundled_products/{bundled_product_id}/bundled_commercial_products/{id}/can-switch
            - /commercial_products/{id}/can-switch
          - remove center and user query param (not in use)

      * **2.6.2**
        - Fix TransactionType schema changing transaction_type attribute values to Credit and Debit instead lowercase

      * **2.6.1**
        - Include bundled_segment attribute in bundled_products node
          - BundledProductBasic_Response
          - BundledProduct_Response
          - SwitchCommercialProduct_Response

      * **2.6.0**
        - Include response codes information
        - New endpoints:
          - /orgs/{org_id}/transaction_types
          - /orgs/{org_id}/promotions/id
        - Include following attributes in promotions:
          - xsell_permit
          - reduced_fee_amount
        - New query param donor_numeration_type_name to cover commercial devices definition for new subscriptions in following endpoints:
          - /orgs/{org_id}/bundled_commercial_products/{id}/commercial_devices/sellable
          - /orgs/{org_id}/commercial_devices/sellable

      * **2.5.0**
        - Fix BundledCommercialProduct Schema by adding Fee structure
        - Tax definition functionality by creating TransactionType schema and include it in Fee, Terms and Promotion Response Schemas
        - Compatibility promotions functionality new endpoint /orgs/{org_id}/promotions/{existent_promotion_id}/can-switch/{new_promotion_id}

      * **2.4.0**
        - Filter FreeUnitsPackages by CommercialProfile
          - new query param commercial_profile_name in endpoint /orgs/{org_id}/commercial_products/{id}/free_units_packages/sellable
        - Include multilanguage invoice name and invoice description info in the following schemas:
          - CommercialInfo
          - CommercialProduct_Response
          - CommercialProductBasic
          - FreeUnitsPackageDetail
          - FreeUnitsPackage_Response
          - PromotionDetail_Response
          - Promotion_Response
          - ValueAddedService
          - BundledProductBasic_Response
          - BundledProduct_Response
          - SwitchCommercialProduct_Response
        - Fix schema type response in:
          - /orgs/{org_id}/bundled_products/{id}/can-switch/{target_id}
          - /orgs/{org_id}/commercial_products/{id}/free_units_packages/{fup_id}

      * **2.3.1**
        - DataSharing funcionality:
          - include sharing_compatible in FreeUnitsPackageDetail

      * **2.3.0**
        - DataSharing funcionality
          - new endpoint /orgs/{org_id}/commercial_products/{id}/free_units_packages/{fup_id}
          - add SubsTypeName_Response
          - new value in SubsTypeName
        - Adopt API Conventions
          - change all enum in responses to x-extensible-enum to allow new values in future

      * **2.2.4**
        - Fix is_recurring_package instead of isRecurringPackage in FreeUnitsPackage_free_units_package_template schema
        - BaseProfile_services schema:
          - mantain default_initial_status
          - remove masbarring_code

      * **2.2.3**
        - Update Designer endpoint including /designer prefix
        - Update CommercialDevice_installment_plan schema including:
          - tin
          - tae
          - commission
        - Modifiy /orgs/{org_id}/commercial_products/{id}/base_profiles to include more info in the services schema BaseProfile_services
          - remove default_initial_status
          - add:
            - network_code
            - masbarring_code
            - is_changeable
        - Modify CommercialDevice_device schema by adding image_url property

      * **2.2.1**
        - Update FUP endpoints to cover rating requirements
          - change event_type enum to english
          - remove FreeUnitsPackageDetail_free_units_package_template schema

      * **2.2.0**
        - Update FUP endpoints to cover rating requirements
          - Include new logic to populate applicability_rule attribute
          - Remove following attributes from free units package template:
            - recurrence_scheme
            - recurrence_interval_type
            - recurrence_interval_value
            - prorated
            - carry_over
        - New endpoint /orgs/{org_id}/commercial_devices/terms/sellable

      * **2.1.3**
        - Change query enum to schema
          - RenewalCategory
          - TechnologyName
        - Designer Endpoints Updated
          - Include new response in execution
          - Include format and example for validation_requested_date and execution_requested_date
          - Include url_file example
          - LoadType schema changed

      * **2.1.2**
        - Change query enum to schema

      * **2.1.1**
        - Updated information, no code impact: change BaseProfile_services speed attribute from number to string

      ## Release and compatibility

      - Deprecations for current versions whenever a new version is announced is 6 months.
      - After 6 months, the deprecated version will no longer be supported but will remain accessible for at least 1 year.
      - Our APIs will allow requests only from two versions simultaneously, however we won't support the older of the two.
      - All enum in responses are define as x-extensible-enum, it means they all are susceptible to increase values.

      ## Version criteria

      ```
      {MAJOR}.{MINOR}.{PATCH}
      ```

      1. `{MAJOR}` implies uncompatible changes with the previous `{MAJOR}` version and also set `{MINOR}` to `0`
      2. `{MINOR}` implies new functionalities or information compatible with previous version and set `{PATCH}` to `0`
      3. `{PATCH}` implies bug fixes compatible with previous version
  x-othersOverviewInfo:
    description: |

      ## Response code library

      <details><summary>UNAUTHORIZED_EXCEPTION_CODE</summary>

      ```
      {
      	"error": "Unauthorized",
      	"message": "Unauthorized",
      	"code": "020000"
      }
      ```

      </details>

      <details><summary>TENANT_NOT_VALID</summary>

      ```
      {
      	"error": "Not a valid tenant",
      	"message": "Not a valid tenant",
      	"code": "020000"
      }
      ```

      </details>

      <details><summary>ITEM_NOT_FOUND</summary>

      ```
      {
      	"error": "Item not found",
      	"message": "Item not found",
      	"code": "020002"
      }
      ```

      </details>

      <details><summary>FILE_NOT_FOUND</summary>

      ```
      {
      	"error": "File not found",
      	"message": "File not found",
      	"code": "020003"
      }
      ```

      </details>

      <details><summary>LOG_NOT_FOUND</summary>

      ```
      {
      	"error": "Log not found",
      	"message": "Log not found",
      	"code": "020005"
      }
      ```

      </details>

      <details><summary>QUERYABLE_NODE_NOT_FOUND</summary>

      ```
      {
      	"error": "Queryable node is not valid",
      	"message": "Queryable node is not valid",
      	"code": "020004"
      }
      ```

      </details>

      <details><summary>VALIDATION_REQUIRED</summary>

      ```
      {
      	"error": "Load must be successfully validated before requesting execution",
      	"message": "Load must be successfully validated before requesting execution",
      	"code": "020006"
      }
      ```

      </details>

      <details><summary>LOAD_EXECUTED</summary>

      ```
      {
      	"error": "This Load has already been executed",
      	"message": "This Load has already been executed",
      	"code": "020007"
      }
      ```

      </details>

      <details><summary>UNEXPECTED_EXCEPTION_CODE</summary>

      ```
      {
      	"error": "Unexpected error",
      	"message": "Unexpected error",
      	"code": "020009"
      }
      ```

      </details>

      <details><summary>EXECUTION_IN_PROGRESS</summary>

      ```
      {
      	"error": "Execution process for this load in progress",
      	"message": "Execution process for this load in progress",
      	"code": "020010"
      }
      ```

      </details>

      <details><summary>LOAD_NOT_FOUND</summary>

      ```
      {
      	"error": "Given load id not found",
      	"message": "Given load id not found",
      	"code": "020011"
      }
      ```

      </details>

      <details><summary>PROCESS_IN_PROGRESS</summary>

      ```
      {
      	"error": "Process for this tenant in progress",
      	"message": "Process for this tenant in progress",
      	"code": "020012"
      }
      ```

      </details>

      ## TransactionType details

      | Name        | Possible values                         | Description                                                                     |
      |-------------|-----------------------------------------|---------------------------------------------------------------------------------|
      | is_external | {true, false}                           | This value indicates which billing movements are included in MM billing process |
      | tax_rate    | {not_apply, generic, exempt, not_taxed} | This attribute defines the tax rate of a billing movement                       |

      Possible combinations are:

      - is_external: true
          - not_apply: not included in MM billing and taxes not applied
          - generic: not included in MM billing and taxes applied and taxed applied based on billing address

      - is_external: false
          - generic: included in MM billing and taxes applied based on billing address
          - exempt: included in MM billing and taxes impact removed by legal requirements (example: donations, bets...)
          - not_taxed: included in MM billing and without taxes impact by definition
