Set subaccount products

PUT
https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products

Use this endpoint to set product availability and pricing for a subaccount.

This endpoint is destructive to the products array. Any existing array is overwritten with the sent array.

cURL
curl -X PUT \
  'https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
    "currency": "USD"
    "pricing_method": "custom"
    "balance_negative_limit": "222"
    "products": [
        {
            "product_name_id": "ssl_plus"
        },
        {
            "product_name_id": "ssl_multi_domain",
            "product_name": "Multi-Domain SSL",
            "prices": [
                {
                    "lifetime": 1,
                    "cost": 412,
                    "additional_fqdn_cost": 1351
                },
                {
                    "lifetime": 2,
                    "cost": 782,
                    "additional_fqdn_cost": 257
                }
            ]
        },
        {
            "product_name_id": "ssl_wildcard",
            "product_name": "WildCard",
            "prices": [
                {
                    "lifetime": 1,
                    "cost": 688,
                    "additional_wildcard_cost": 658
                },
                {
                    "lifetime": 2,
                    "cost": 1307,
                    "additional_wildcard_cost": 1250
                }
            ]
        },
        {
            "product_name_id": "ssl_ev_plus",
            "product_name": "EV SSL",
            "prices": [
                {
                    "lifetime": 1,
                    "cost": 344
                },
                {
                    "lifetime": 2,
                    "cost": 654
                }
            ]
        },
        {
            "product_name_id": "ssl_ev_multi_domain",
            "product_name": "EV Multi-Domain",
            "prices": [
                {
                    "lifetime": 1,
                    "cost": 574,
                    "additional_fqdn_cost": 168
                },
                {
                    "lifetime": 2,
                    "cost": 1090,
                    "additional_fqdn_cost": 319
                }
            ]
        }
    ]
}'
Python
import requests

url = "https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products"

payload = "{\n    \"products\": [\n        {\n            \"product_name_id\": \"ssl_plus\"\n        },\n        {\n            \"product_name_id\": \"ssl_multi_domain\",\n            \"product_name\": \"Multi-Domain SSL\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 412,\n                    \"additional_fqdn_cost\": 1351\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 782,\n                    \"additional_fqdn_cost\": 257\n                }\n            ]\n        },\n        {\n            \"product_name_id\": \"ssl_wildcard\",\n            \"product_name\": \"WildCard\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 688,\n                    \"additional_wildcard_cost\": 658\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 1307,\n                    \"additional_wildcard_cost\": 1250\n                }\n            ]\n        },\n        {\n            \"product_name_id\": \"ssl_ev_plus\",\n            \"product_name\": \"EV SSL\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 344\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 654\n                }\n            ]\n        },\n        {\n            \"product_name_id\": \"ssl_ev_multi_domain\",\n            \"product_name\": \"EV Multi-Domain\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 574,\n                    \"additional_fqdn_cost\": 168\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 1090,\n                    \"additional_fqdn_cost\": 319\n                }\n            ]\n        }\n    ]\n}"
headers = {
    'X-DC-DEVKEY': "{{api_key}}",
    'Content-Type': "application/json"
    }

response = requests.request("PUT", url, data=payload, headers=headers)

print(response.text)
Go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products"

	payload := strings.NewReader("{\n    \"products\": [\n        {\n            \"product_name_id\": \"ssl_plus\"\n        },\n        {\n            \"product_name_id\": \"ssl_multi_domain\",\n            \"product_name\": \"Multi-Domain SSL\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 412,\n                    \"additional_fqdn_cost\": 1351\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 782,\n                    \"additional_fqdn_cost\": 257\n                }\n            ]\n        },\n        {\n            \"product_name_id\": \"ssl_wildcard\",\n            \"product_name\": \"WildCard\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 688,\n                    \"additional_wildcard_cost\": 658\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 1307,\n                    \"additional_wildcard_cost\": 1250\n                }\n            ]\n        },\n        {\n            \"product_name_id\": \"ssl_ev_plus\",\n            \"product_name\": \"EV SSL\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 344\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 654\n                }\n            ]\n        },\n        {\n            \"product_name_id\": \"ssl_ev_multi_domain\",\n            \"product_name\": \"EV Multi-Domain\",\n            \"prices\": [\n                {\n                    \"lifetime\": 1,\n                    \"cost\": 574,\n                    \"additional_fqdn_cost\": 168\n                },\n                {\n                    \"lifetime\": 2,\n                    \"cost\": 1090,\n                    \"additional_fqdn_cost\": 319\n                }\n            ]\n        }\n    ]\n}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("X-DC-DEVKEY", "{{api_key}}")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
NodeJS
var request = require("request");

var options = { method: 'PUT',
  url: 'https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products',
  headers: 
   { 'Content-Type': 'application/json',
     'X-DC-DEVKEY': '{{api_key}}' },
  body: 
   { products: 
      [ { product_name_id: 'ssl_plus' },
        { product_name_id: 'ssl_multi_domain',
          product_name: 'Multi-Domain SSL',
          prices: 
           [ { lifetime: 1, cost: 412, additional_fqdn_cost: 1351 },
             { lifetime: 2, cost: 782, additional_fqdn_cost: 257 } ] },
        { product_name_id: 'ssl_wildcard',
          product_name: 'WildCard',
          prices: 
           [ { lifetime: 1, cost: 688, additional_wildcard_cost: 658 },
             { lifetime: 2, cost: 1307, additional_wildcard_cost: 1250 } ] },
        { product_name_id: 'ssl_ev_plus',
          product_name: 'EV SSL',
          prices: [ { lifetime: 1, cost: 344 }, { lifetime: 2, cost: 654 } ] },
        { product_name_id: 'ssl_ev_multi_domain',
          product_name: 'EV Multi-Domain',
          prices: 
           [ { lifetime: 1, cost: 574, additional_fqdn_cost: 168 },
             { lifetime: 2, cost: 1090, additional_fqdn_cost: 319 } ] } ] },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
204 No Content
// empty

Sending an empty products array disables all products for the subaccount.

Request parameters

Name Req/Opt Type Description
currency optional string Sets the currency code for displaying product prices. When you change the display currency for a bill-to-parent subaccount, you must also update the price for each of the subaccount's enabled products.
Possible values: See Glossary - Subaccount display currencies.
Default: Previously assigned currency code, or USD if no code has been assigned.
Note: This parameter is ignored for self-billed subaccounts. Parent accounts and self-billed subaccounts always see prices and receive invoices in the currency associated with their account.
pricing_method optional string Pricing method used by the subaccount
Possible values:
Units
balance_negative_limit optional int Dollar amount that the account balance can go into the negative.
products required array List of products to enable for the subaccount.
.. product_name_id optional string Name ID of the product to enable for the subaccount.
See Glossary – Product identifiers
.. prices optional array List of objects with information about the prices to set for each product.
Note: If DigiCert supports billing in the chosen currency, prices default to DigiCert's retail price in that currency. Otherwise, prices default to 0. This parameter is ignored for self-billed subaccounts.
.. .. lifetime required int Validity term in years that the pricing applies to.
.. .. cost required int
float
Specify the base price of the product.
Max: 99999999.99
.. .. additional_fqdn_cost required* int
float
Specify the cost for each additional domain name (SAN) added to the order.
*Required only for products that support this parameter. See Product-specific parameter support.
Max: 99999999.99
.. .. additional_wildcard_cost required* int
float
Specify the cost for each additional wildcard domain (e.g., *.example.com) added to the order.
*Required only for products that support this parameter. See Product-specific parameter support.
Max: 99999999.99

Product-specific parameter support

If a product does not support additional cost parameters (additional_fqdn_cost or additional_wildcard_cost), any value specified for that product is ignored.

Product name ID Supports additional_fqdn_cost Supports additional_wildcard_cost
ssl_cloud_wildcard Yes
ssl_plus
ssl_multi_domain Yes
ssl_wildcard Yes
ssl_ev_plus
ssl_ev_multi_domain Yes
private_ssl_multi_domain Yes
private_ssl_plus
private_ssl_wildcard Yes
client_digital_signature_plus
client_digital_signature_plus_ad
client_digital_signature_plus_sha2
client_email_security_plus
client_email_security_plus_ad
client_email_security_plus_sha2
client_authentication_plus
client_authentication_plus_ad
client_premium
client_premium_ad
client_premium_sha2
client_ltans_adobe_signing
client_timestamp_authority
private_client_premium
client_authentication_only
client_grid_premium
client_grid_robot_email
client_grid_robot_fqdn
client_grid_robot_name
grid_host_ssl
client_multi_name
grid_host_ssl_multi_domain Yes
code_signing
code_signing_ev
document_signing_org_1
document_signing_org_2
document_signing_individual_1
document_signing_individual_2
client_authentication_only_non_repudiation
class1_smime
ssl_dv_geotrust Yes
ssl_dv_rapidssl
ssl_ev_geotrust_truebizid Yes
ssl_ev_thawte_webserver Yes
ssl_geotrust_truebizid Yes Yes
client_premium_data_encipherment
client_premium_non_repudiation
ssl_thawte_webserver Yes Yes
wildcard_dv_geotrust Yes
wildcard_dv_rapidssl
cloud_dv_geotrust Yes
ssl_ev_securesite
ssl_ev_securesite_multi_domain Yes
ssl_ev_securesite_pro Yes
ssl_securesite
ssl_securesite_multi_domain Yes
ssl_securesite_pro Yes Yes
ssl_securesite_wildcard Yes
ssl_basic Yes Yes
ssl_ev_basic Yes
ssl_securesite_flex Yes Yes
ssl_ev_securesite_flex Yes
ssl_dv_thawte Yes Yes
ssl_dv_geotrust_flex Yes Yes
private_ssl_flex Yes Yes
ssl_dv_ee Yes Yes