AppDirect Marketplace Product Settings API

The Marketplace Product Settings API from AppDirect — 4 operation(s) for marketplace product settings.

OpenAPI Specification

appdirect-marketplace-product-settings-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: The Companies API allows developers to manage marketplace companies and their user memberships.
  title: Companies AI Embed Marketplace Product Settings API
  license:
    name: Apache License, Version 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: v296.0-SNAPSHOT
servers:
- url: https://marketplace.appdirect.com/api
- url: https://virtserver.swaggerhub.com
tags:
- name: Marketplace Product Settings
  x-displayName: Marketplace Product Settings
paths:
  /v3/marketplaceProduct/activeSettings/{productId}:
    get:
      description: Retrieve the settings, sections, tabs that should be visible to end user on the marketplace product settings UI for a given marketplace.
      tags:
      - Marketplace Product Settings
      summary: Retrieve active settings for a given marketplace
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
        ROLE_CHANNEL_PRODUCT_SUPPORT:
        - Allows access as a Product Support agent for the marketplace.
      operationId: resource_Product_Active_Setting_readSettings_GET
      parameters:
      - description: The product identifier
        name: productId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketplaceProductSettingActiveComponentsWS'
              examples:
                response:
                  value:
                    productInformation:
                      productName: AUTO_WEBAPP_NEW
                      appFromNetwork: false
                    showSettingsContainer: true
                    showVisibleOnNetwork: true
                    showVisibleOnMarketplace: true
                    showSellDomainAsStandalone: false
                    showAsComingSoon: true
                    showCollectLeads: true
                    showCompanyGroupSegmentsContainer: true
                    showHideAllPricing: true
                    showDisableSelfService: false
                    showTermsOfServiceURL: false
                    showSortingRank: true
                    showAdditionalSettingsContainer: false
                    showAPIHealthMaintenanceContainer: true
                    showSKUsContainer: false
                    showFID1Number: false
                    showProductTab: true
                    showCategoriesContainer: true
                    showAttributesContainer: true
                    showProductLinesContainer: true
                    showCustomerGroupsContainer: true
                    showMerchandisingOptionsContainer: true
                    showBillingTab: true
                    showBillingSettingsContainer: true
                    showSkipFirstPayment: false
                    showTaxCode: true
                    showSetupFeeTaxCode: false
                    showBillingCycleStartDay: false
                    showFreeTrialBillingOptionsContainer: true
                    showBillingPatternsContainer: false
        '401':
          description: Unauthorized
        '404':
          description: Product not found
          content:
            application/json:
              examples:
                response:
                  value:
                  - code: Not Found
                    message: Product with id 10 not found.
        '500':
          description: Internal server error
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/v3/marketplaceProduct/activeSettings/%7BproductId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/v3/marketplaceProduct/activeSettings/%7BproductId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/v3/marketplaceProduct/activeSettings/%7BproductId%7D\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /v3/marketplaceProduct/productSettings/{productId}:
    get:
      description: Retrieve product settings, including product information, general settings, product group, and billing settings for a product on a given marketplace.
      tags:
      - Marketplace Product Settings
      summary: Retrieve product settings on a given marketplace
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
        ROLE_CHANNEL_PRODUCT_SUPPORT:
        - Allows access as a Product Support agent for the marketplace.
      operationId: resource_Product_Setting_readSettings_GET
      parameters:
      - description: The product identifier
        name: productId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketplaceProductSettingsWS'
              examples:
                response:
                  value:
                    productInformation:
                      productName: AUTO_WEBAPP_NEW
                      iconUrl: https://ad-dev-dump1.s3.amazonaws.com/app_resources/157/thumbs_64/img7932941780668708927.png
                      appFromNetwork: false
                    general:
                      settings:
                        validations:
                        - field: termsOfServiceURL
                          maxLength: 1024
                        visibleOnNetwork: true
                        visibleOnMarketplace: true
                        sellDomainAsStandalone: true
                        showAsComingSoon: true
                        collectLeads:
                          options:
                          - inAdditionToPurchase
                          - insteadOfPurchase
                          enabled: true
                          selectedOption: inAdditionToPurchase
                          assignLeadsToDevelopers: false
                          editionLeadGenEnabled: false
                        hideAllPricing: true
                        disableSelfServe: true
                        termsOfServiceURL: http://www.google.com
                        sortingRank:
                          selectedOption: Very Low
                          options:
                          - Very High
                          - High
                          - Medium
                          - Low
                          - Very Low
                      additionalSettings:
                        validations:
                        - field: externalIdentifier
                          maxLength: 36
                        - field: productStockNumber
                          maxLength: 36
                      apiHealthMaintenance:
                        purchase:
                          value: true
                          disabled: false
                        singleSignOn:
                          value: false
                          disabled: false
                        updateSubscription:
                          value: true
                          disabled: true
                          tooltip: The product is part of a bundle.
                        assignAndUnassign:
                          value: false
                          disabled: true
                          tooltip: This endpoint has been disabled by the developer.
                    productGroups:
                      categories:
                        tooltip: Add categories to your application
                        required: false
                        options:
                        - categoryId: 0
                          name: Select a Category
                          subCategories:
                          - subCategoryId: 0
                            name: Select a Sub Category
                        - categoryId: 186
                          name: Numbers
                          subCategories:
                          - subCategoryId: 0
                            name: Select a Sub Category
                          - subCategoryId: 113
                            name: One
                          - subCategoryId: 114
                            name: Two
                        selectedOptions:
                        - categoryId: 0
                          subCategoryId: 0
                        - categoryId: 186
                          subCategoryId: 0
                        - categoryId: 186
                          subCategoryId: 115
                      attributes:
                      - attributeId: 56
                        name: English
                        required: false
                        options:
                        - attributeOptionId: 128
                          name: EngOpt1
                          selected: true
                        - attributeOptionId: 129
                          name: EngOpt2
                          selected: false
                        - attributeOptionId: 130
                          name: EngOpt3
                          selected: false
                        - attributeOptionId: 131
                          name: EngOpt4
                          selected: false
                        - attributeOptionId: 132
                          name: EngOpt5
                          selected: false
                        - attributeOptionId: 133
                          name: EngOpt6
                          selected: false
                        - attributeOptionId: 134
                          name: EngOpt7
                          selected: false
                      productLines:
                      - productLineId: 1
                        name: MSFT
                        selected: false
                      customerGroups:
                      - userAttributeId: 31
                        name: New Customer Group
                        required: true
                        options:
                        - industryId: 55
                          name: Industry1
                          selected: true
                        - industryId: 56
                          name: Industry2
                          selected: false
                      merchandisingOptions:
                        ribbons:
                          options:
                          - ribbonId: 0
                            text: Choose One
                          - ribbonId: 8
                            color: '#0004FF'
                            text: Discount
                            textColor: '#FFFFF'
                          - ribbonId: 7
                            color: '#0004FF'
                            text: Free
                            textColor: '#FFFFF'
                          - ribbonId: 9
                            color: '#0004FF'
                            text: Special
                            textColor: '#FFFFF'
                          selectedOption: 7
                        badges:
                          options:
                          - badgeId: 7
                            name: EngOpt1
                            imageUrl: common_resources/attributeOptions/128/badge.png?e5dc31b07b947203ce979bd55032f960
                            position: 1
                          - badgeId: 8
                            name: EngOpt2
                            imageUrl: common_resources/attributeOptions/129/badge.png?e5dc31b07b947203ce979bd55032f960
                            position: 2
                          - badgeId: 9
                            name: EngOpt3
                            imageUrl: common_resources/attributeOptions/130/badge.png?fd55e224f0cc01dd33f6ae864002e880
                          - badgeId: 10
                            name: EngOpt4
                            imageUrl: common_resources/attributeOptions/null/badge.png?e5dc31b07b947203ce979bd55032f960
                          selectedOptions:
                          - 7
                          - 8
                      segmentSelections:
                        availableCompanyGroups:
                        - id: 1b0cc1f0-4945-4c6a-989c-d5f350a1b9d1
                          name: cda
                          segments:
                          - id: e96f1bd2-c6c7-4546-ad9c-518f5ff650a9
                            name: fd
                        selectedSegments:
                        - e96f1bd2-c6c7-4546-ad9c-518f5ff650a9
                    billing:
                      billingSettings:
                        validations:
                        - field: startDay
                          numeric: true
                          minValue: 1
                          maxValue: 31
                        - field: taxCode
                          maxLength: 255
                        - field: setupFeeTaxCode
                          maxLength: 25
                        skipFirstPayment: true
                        taxCode: ABC123
                        setupFeeTaxCode: DEF456
                        billingCycle:
                          options:
                          - MP_DEFAULT_CYCLE
                          - FIRST_DAY_OF_THE_MONTH
                          - LAST_DAY_OF_THE_MONTH
                          - PURCHASE_DAY
                          - CUSTOM_DAY_OF_THE_MONTH
                          selectedOption: FIRST_DAY_OF_THE_MONTH
                          startDay: 1
                      freeTrialBillingOptions:
                      - editionId: 9890
                        editionName: Free Trial
                        requireBillingInfo: true
                        automaticUpgradeToPaidEnabled: true
                      skuSettings:
                        validations:
                        - field: sku
                          required: true
                          alphanumeric: true
                          minLength: 6
                          maxLength: 6
                        - field: fid1
                          required: false
                          minLength: 2
                          maxLength: 25
                        editionPricingItems:
                        - editionName: Free Trial Edition
                          paymentPlanId: 123
                          skus:
                          - pricingItemId: 20423
                            price: $0.03
                            sku: A1B2C3
                            fid1: yyyy-yyyyyy-yyyy
                          - pricingItemId: 20424
                            price: $0.17
                            sku: 321CBA
                            fid1: yyyy-yyyyyy-yyyy
        '401':
          description: Unauthorized
        '404':
          description: Product not found
          content:
            application/json:
              examples:
                response:
                  value:
                  - code: Not Found
                    message: Product with id 10 not found.
        '500':
          description: Internal server error
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/%7BproductId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/%7BproductId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/%7BproductId%7D\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    put:
      description: Update product settings for a product on a given marketplace. When addToCatalog is set to true, the product will be automatically added to the production catalog if it is not already present.
      tags:
      - Marketplace Product Settings
      summary: Update product settings on a given marketplace
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
        ROLE_CHANNEL_PRODUCT_SUPPORT:
        - Allows access as a Product Support agent for the marketplace.
      operationId: resource_Product_Setting_updateSettings_PUT
      parameters:
      - description: The product identifier
        name: productId
        in: path
        required: true
        schema:
          type: integer
      - description: When true, the product is automatically added to the production catalog if it is not already present. Defaults to false. Callers that intend to publish a product to the catalog (e.g. the Admin UI) should set this to true.
        name: addToCatalog
        in: query
        required: false
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarketplaceProductSettingsWS'
        description: Information about the product settings that will be updated.
        required: true
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: Product not found
          content:
            application/json:
              examples:
                response:
                  value:
                  - code: Not Found
                    message: Product with id 10 not found.
        '500':
          description: Internal server error
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request PUT \\\n  --url 'https://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/%7BproductId%7D?addToCatalog=SOME_BOOLEAN_VALUE' \\\n  --data '{\"productInformation\":{\"productName\":\"AUTO_WEBAPP_NEW\",\"iconUrl\":\"https://ad-dev-dump1.s3.amazonaws.com/app_resources/157/thumbs_64/img7932941780668708927.png\",\"appFromNetwork\":false},\"general\":{\"settings\":{\"validations\":[{\"field\":\"termsOfServiceURL\",\"maxLength\":1024}],\"visibleOnNetwork\":true,\"visibleOnMarketplace\":true,\"sellDomainAsStandalone\":true,\"showAsComingSoon\":true,\"collectLeads\":{\"options\":[\"inAdditionToPurchase\",\"insteadOfPurchase\"],\"enabled\":true,\"selectedOption\":\"inAdditionToPurchase\",\"assignLeadsToDevelopers\":false,\"editionLeadGenEnabled\":false},\"hideAllPricing\":true,\"disableSelfServe\":true,\"termsOfServiceURL\":\"http://www.google.com\",\"sortingRank\":{\"selectedOption\":\"Very Low\",\"options\":[\"Very High\",\"High\",\"Medium\",\"Low\",\"Very Low\"]}},\"additionalSettings\":{\"validations\":[{\"field\":\"externalIdentifier\",\"maxLength\":36},{\"field\":\"productStockNumber\",\"maxLength\":36}]},\"apiHealthMaintenance\":{\"purchase\":{\"value\":true,\"disabled\":false},\"singleSignOn\":{\"value\":false,\"disabled\":false},\"updateSubscription\":{\"value\":true,\"disabled\":true,\"tooltip\":\"The product is part of a bundle.\"},\"assignAndUnassign\":{\"value\":false,\"disabled\":true,\"tooltip\":\"This endpoint has been disabled by the developer.\"}}},\"productGroups\":{\"categories\":{\"tooltip\":\"Add categories to your application\",\"required\":false,\"options\":[{\"categoryId\":0,\"name\":\"Select a Category\",\"subCategories\":[{\"subCategoryId\":0,\"name\":\"Select a Sub Category\"}]},{\"categoryId\":186,\"name\":\"Numbers\",\"subCategories\":[{\"subCategoryId\":0,\"name\":\"Select a Sub Category\"},{\"subCategoryId\":113,\"name\":\"One\"},{\"subCategoryId\":114,\"name\":\"Two\"}]}],\"selectedOptions\":[{\"categoryId\":0,\"subCategoryId\":0},{\"categoryId\":186,\"subCategoryId\":0},{\"categoryId\":186,\"subCategoryId\":115}]},\"attributes\":[{\"attributeId\":56,\"name\":\"English\",\"required\":false,\"options\":[{\"attributeOptionId\":128,\"name\":\"EngOpt1\",\"selected\":true},{\"attributeOptionId\":129,\"name\":\"EngOpt2\",\"selected\":false},{\"attributeOptionId\":130,\"name\":\"EngOpt3\",\"selected\":false},{\"attributeOptionId\":131,\"name\":\"EngOpt4\",\"selected\":false},{\"attributeOptionId\":132,\"name\":\"EngOpt5\",\"selected\":false},{\"attributeOptionId\":133,\"name\":\"EngOpt6\",\"selected\":false},{\"attributeOptionId\":134,\"name\":\"EngOpt7\",\"selected\":false}]}],\"productLines\":[{\"productLineId\":1,\"name\":\"MSFT\",\"selected\":false}],\"customerGroups\":[{\"userAttributeId\":31,\"name\":\"New Customer Group\",\"required\":true,\"options\":[{\"industryId\":55,\"name\":\"Industry1\",\"selected\":true},{\"industryId\":56,\"name\":\"Industry2\",\"selected\":false}]}],\"merchandisingOptions\":{\"ribbons\":{\"options\":[{\"ribbonId\":0,\"text\":\"Choose One\"},{\"ribbonId\":8,\"color\":\"#0004FF\",\"text\":\"Discount\",\"textColor\":\"#FFFFF\"},{\"ribbonId\":7,\"color\":\"#0004FF\",\"text\":\"Free\",\"textColor\":\"#FFFFF\"},{\"ribbonId\":9,\"color\":\"#0004FF\",\"text\":\"Special\",\"textColor\":\"#FFFFF\"}],\"selectedOption\":7},\"badges\":{\"options\":[{\"badgeId\":7,\"name\":\"EngOpt1\",\"imageUrl\":\"common_resources/attributeOptions/128/badge.png?e5dc31b07b947203ce979bd55032f960\",\"position\":1},{\"badgeId\":8,\"name\":\"EngOpt2\",\"imageUrl\":\"common_resources/attributeOptions/129/badge.png?e5dc31b07b947203ce979bd55032f960\",\"position\":2},{\"badgeId\":9,\"name\":\"EngOpt3\",\"imageUrl\":\"common_resources/attributeOptions/130/badge.png?fd55e224f0cc01dd33f6ae864002e880\"},{\"badgeId\":10,\"name\":\"EngOpt4\",\"imageUrl\":\"common_resources/attributeOptions/null/badge.png?e5dc31b07b947203ce979bd55032f960\"}],\"selectedOptions\":[7,8]}}},\"billing\":{\"billingSettings\":{\"validations\":[{\"field\":\"startDay\",\"numeric\":true,\"minValue\":1,\"maxValue\":31},{\"field\":\"taxCode\",\"maxLength\":255},{\"field\":\"setupFeeTaxCode\",\"maxLength\":25}],\"skipFirstPayment\":true,\"taxCode\":\"ABC123\",\"setupFeeTaxCode\":\"DEF456\",\"billingCycle\":{\"options\":[\"MP_DEFAULT_CYCLE\",\"FIRST_DAY_OF_THE_MONTH\",\"LAST_DAY_OF_THE_MONTH\",\"PURCHASE_DAY\",\"CUSTOM_DAY_OF_THE_MONTH\"],\"selectedOption\":\"FIRST_DAY_OF_THE_MONTH\",\"startDay\":1}},\"freeTrialBillingOptions\":[{\"editionId\":9890,\"editionName\":\"Free Trial\",\"requireBillingInfo\":true,\"automaticUpgradeToPaidEnabled\":true}],\"skuSettings\":{\"validations\":[{\"field\":\"sku\",\"required\":true,\"alphanumeric\":true,\"minLength\":6,\"maxLength\":6},{\"field\":\"fid1\",\"required\":false,\"minLength\":2,\"maxLength\":25}],\"editionPricingItems\":[{\"editionName\":\"Free Trial Edition\",\"paymentPlanId\":123,\"skus\":[{\"pricingItemId\":20423,\"price\":\"$0.03\",\"sku\":\"A1B2C3\",\"fid1\":\"yyyy-yyyyyy-yyyy\"},{\"pricingItemId\":20424,\"price\":\"$0.17\",\"sku\":\"321CBA\",\"fid1\":\"yyyy-yyyyyy-yyyy\"}]}]}}}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'PUT',\n  url: 'https://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/%7BproductId%7D',\n  qs: {addToCatalog: 'SOME_BOOLEAN_VALUE'},\n  body: {\n    productInformation: {\n      productName: 'AUTO_WEBAPP_NEW',\n      iconUrl: 'https://ad-dev-dump1.s3.amazonaws.com/app_resources/157/thumbs_64/img7932941780668708927.png',\n      appFromNetwork: false\n    },\n    general: {\n      settings: {\n        validations: [{field: 'termsOfServiceURL', maxLength: 1024}],\n        visibleOnNetwork: true,\n        visibleOnMarketplace: true,\n        sellDomainAsStandalone: true,\n        showAsComingSoon: true,\n        collectLeads: {\n          options: ['inAdditionToPurchase', 'insteadOfPurchase'],\n          enabled: true,\n          selectedOption: 'inAdditionToPurchase',\n          assignLeadsToDevelopers: false,\n          editionLeadGenEnabled: false\n        },\n        hideAllPricing: true,\n        disableSelfServe: true,\n        termsOfServiceURL: 'http://www.google.com',\n        sortingRank: {\n          selectedOption: 'Very Low',\n          options: ['Very High', 'High', 'Medium', 'Low', 'Very Low']\n        }\n      },\n      additionalSettings: {\n        validations: [\n          {field: 'externalIdentifier', maxLength: 36},\n          {field: 'productStockNumber', maxLength: 36}\n        ]\n      },\n      apiHealthMaintenance: {\n        purchase: {value: true, disabled: false},\n        singleSignOn: {value: false, disabled: false},\n        updateSubscription: {value: true, disabled: true, tooltip: 'The product is part of a bundle.'},\n        assignAndUnassign: {\n          value: false,\n          disabled: true,\n          tooltip: 'This endpoint has been disabled by the developer.'\n        }\n      }\n    },\n    productGroups: {\n      categories: {\n        tooltip: 'Add categories to your application',\n        required: false,\n        options: [\n          {\n            categoryId: 0,\n            name: 'Select a Category',\n            subCategories: [{subCategoryId: 0, name: 'Select a Sub Category'}]\n          },\n          {\n            categoryId: 186,\n            name: 'Numbers',\n            subCategories: [\n              {subCategoryId: 0, name: 'Select a Sub Category'},\n              {subCategoryId: 113, name: 'One'},\n              {subCategoryId: 114, name: 'Two'}\n            ]\n          }\n        ],\n        selectedOptions: [\n          {categoryId: 0, subCategoryId: 0},\n          {categoryId: 186, subCategoryId: 0},\n          {categoryId: 186, subCategoryId: 115}\n        ]\n      },\n      attributes: [\n        {\n          attributeId: 56,\n          name: 'English',\n          required: false,\n          options: [\n            {attributeOptionId: 128, name: 'EngOpt1', selected: true},\n            {attributeOptionId: 129, name: 'EngOpt2', selected: false},\n            {attributeOptionId: 130, name: 'EngOpt3', selected: false},\n            {attributeOptionId: 131, name: 'EngOpt4', selected: false},\n            {attributeOptionId: 132, name: 'EngOpt5', selected: false},\n            {attributeOptionId: 133, name: 'EngOpt6', selected: false},\n            {attributeOptionId: 134, name: 'EngOpt7', selected: false}\n          ]\n        }\n      ],\n      productLines: [{productLineId: 1, name: 'MSFT', selected: false}],\n      customerGroups: [\n        {\n          userAttributeId: 31,\n          name: 'New Customer Group',\n          required: true,\n          options: [\n            {industryId: 55, name: 'Industry1', selected: true},\n            {industryId: 56, name: 'Industry2', selected: false}\n          ]\n        }\n      ],\n      merchandisingOptions: {\n        ribbons: {\n          options: [\n            {ribbonId: 0, text: 'Choose One'},\n            {ribbonId: 8, color: '#0004FF', text: 'Discount', textColor: '#FFFFF'},\n            {ribbonId: 7, color: '#0004FF', text: 'Free', textColor: '#FFFFF'},\n            {ribbonId: 9, color: '#0004FF', text: 'Special', textColor: '#FFFFF'}\n          ],\n          selectedOption: 7\n        },\n        badges: {\n          options: [\n            {\n              badgeId: 7,\n              name: 'EngOpt1',\n              imageUrl: 'common_resources/attributeOptions/128/badge.png?e5dc31b07b947203ce979bd55032f960',\n              position: 1\n            },\n            {\n              badgeId: 8,\n              name: 'EngOpt2',\n              imageUrl: 'common_resources/attributeOptions/129/badge.png?e5dc31b07b947203ce979bd55032f960',\n              position: 2\n            },\n            {\n              badgeId: 9,\n              name: 'EngOpt3',\n              imageUrl: 'common_resources/attributeOptions/130/badge.png?fd55e224f0cc01dd33f6ae864002e880'\n            },\n            {\n              badgeId: 10,\n              name: 'EngOpt4',\n              imageUrl: 'common_resources/attributeOptions/null/badge.png?e5dc31b07b947203ce979bd55032f960'\n            }\n          ],\n          selectedOptions: [7, 8]\n        }\n      }\n    },\n    billing: {\n      billingSettings: {\n        validations: [\n          {field: 'startDay', numeric: true, minValue: 1, maxValue: 31},\n          {field: 'taxCode', maxLength: 255},\n          {field: 'setupFeeTaxCode', maxLength: 25}\n        ],\n        skipFirstPayment: true,\n        taxCode: 'ABC123',\n        setupFeeTaxCode: 'DEF456',\n        billingCycle: {\n          options: [\n            'MP_DEFAULT_CYCLE',\n            'FIRST_DAY_OF_THE_MONTH',\n            'LAST_DAY_OF_THE_MONTH',\n            'PURCHASE_DAY',\n            'CUSTOM_DAY_OF_THE_MONTH'\n          ],\n          selectedOption: 'FIRST_DAY_OF_THE_MONTH',\n          startDay: 1\n        }\n      },\n      freeTrialBillingOptions: [\n        {\n          editionId: 9890,\n          editionName: 'Free Trial',\n          requireBillingInfo: true,\n          automaticUpgradeToPaidEnabled: true\n        }\n      ],\n      skuSettings: {\n        validations: [\n          {field: 'sku', required: true, alphanumeric: true, minLength: 6, maxLength: 6},\n          {field: 'fid1', required: false, minLength: 2, maxLength: 25}\n        ],\n        editionPricingItems: [\n          {\n            editionName: 'Free Trial Edition',\n            paymentPlanId: 123,\n            skus: [\n              {pricingItemId: 20423, price: '$0.03', sku: 'A1B2C3', fid1: 'yyyy-yyyyyy-yyyy'},\n              {pricingItemId: 20424, price: '$0.17', sku: '321CBA', fid1: 'yyyy-yyyyyy-yyyy'}\n            ]\n          }\n        ]\n      }\n    }\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"productInformation\\\":{\\\"productName\\\":\\\"AUTO_WEBAPP_NEW\\\",\\\"iconUrl\\\":\\\"https://ad-dev-dump1.s3.amazonaws.com/app_resources/157/thumbs_64/img7932941780668708927.png\\\",\\\"appFromNetwork\\\":false},\\\"general\\\":{\\\"settings\\\":{\\\"validations\\\":[{\\\"field\\\":\\\"termsOfServiceURL\\\",\\\"maxLength\\\":1024}],\\\"visibleOnNetwork\\\":true,\\\"visibleOnMarketplace\\\":true,\\\"sellDomainAsStandalone\\\":true,\\\"showAsComingSoon\\\":true,\\\"collectLeads\\\":{\\\"options\\\":[\\\"inAdditionToPurchase\\\",\\\"insteadOfPurchase\\\"],\\\"enabled\\\":true,\\\"selectedOption\\\":\\\"inAdditionToPurchase\\\",\\\"assignLeadsToDevelopers\\\":false,\\\"editionLeadGenEnabled\\\":false},\\\"hideAllPricing\\\":true,\\\"disableSelfServe\\\":true,\\\"termsOfServiceURL\\\":\\\"http://www.google.com\\\",\\\"sortingRank\\\":{\\\"selectedOption\\\":\\\"Very Low\\\",\\\"options\\\":[\\\"Very High\\\",\\\"High\\\",\\\"Medium\\\",\\\"Low\\\",\\\"Very Low\\\"]}},\\\"additionalSettings\\\":{\\\"validations\\\":[{\\\"field\\\":\\\"externalIdentifier\\\",\\\"maxLength\\\":36},{\\\"field\\\":\\\"productStockNumber\\\",\\\"maxLength\\\":36}]},\\\"apiHealthMaintenance\\\":{\\\"purchase\\\":{\\\"value\\\":true,\\\"disabled\\\":false},\\\"singleSignOn\\\":{\\\"value\\\":false,\\\"disabled\\\":false},\\\"updateSubscription\\\":{\\\"value\\\":true,\\\"disabled\\\":true,\\\"tooltip\\\":\\\"The product is part of a bundle.\\\"},\\\"assignAndUnassign\\\":{\\\"value\\\":false,\\\"disabled\\\":true,\\\"tooltip\\\":\\\"This endpoint has been disabled by the developer.\\\"}}},\\\"productGroups\\\":{\\\"categories\\\":{\\\"tooltip\\\":\\\"Add categories to your application\\\",\\\"required\\\":false,\\\"options\\\":[{\\\"categoryId\\\":0,\\\"name\\\":\\\"Select a Category\\\",\\\"subCategories\\\":[{\\\"subCategoryId\\\":0,\\\"name\\\":\\\"Select a Sub Category\\\"}]},{\\\"categoryId\\\":186,\\\"name\\\":\\\"Numbers\\\",\\\"subCategories\\\":[{\\\"subCategoryId\\\":0,\\\"name\\\":\\\"Select a Sub Category\\\"},{\\\"subCategoryId\\\":113,\\\"name\\\":\\\"One\\\"},{\\\"subCategoryId\\\":114,\\\"name\\\":\

# --- truncated at 32 KB (117 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appdirect/refs/heads/main/openapi/appdirect-marketplace-product-settings-api-openapi.yml