--- title: "Set subaccount products" source_url: https://dev.digicert.com/certcentral-apis/services-api/subaccount/set-subaccount-products.html api_method: PUT api_endpoint: "/services/v2/account/subaccount/{{subaccount_id}}/products" api_url: "https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/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. > **Important** > > This endpoint is destructive to the `products` array. > > - Any existing array is overwritten with the sent array. > - Sending an empty `products` array disables all products for the subaccount. ## Example requests and responses **cURL** ```bash 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** ```python import requests url = "https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products" payload = "{\r\n \"currency\": \"USD\"\r\n \"pricing_method\": \"custom\"\r\n \"balance_negative_limit\": \"222\"\r\n \"products\": [\r\n {\r\n \"product_name_id\": \"ssl_plus\"\r\n },\r\n {\r\n \"product_name_id\": \"ssl_multi_domain\",\r\n \"product_name\": \"Multi-Domain SSL\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 412,\r\n \"additional_fqdn_cost\": 1351\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 782,\r\n \"additional_fqdn_cost\": 257\r\n }\r\n ]\r\n },\r\n {\r\n \"product_name_id\": \"ssl_wildcard\",\r\n \"product_name\": \"WildCard\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 688,\r\n \"additional_wildcard_cost\": 658\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 1307,\r\n \"additional_wildcard_cost\": 1250\r\n }\r\n ]\r\n },\r\n {\r\n \"product_name_id\": \"ssl_ev_plus\",\r\n \"product_name\": \"EV SSL\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 344\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 654\r\n }\r\n ]\r\n },\r\n {\r\n \"product_name_id\": \"ssl_ev_multi_domain\",\r\n \"product_name\": \"EV Multi-Domain\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 574,\r\n \"additional_fqdn_cost\": 168\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 1090,\r\n \"additional_fqdn_cost\": 319\r\n }\r\n ]\r\n }\r\n ]\r\n}" headers = { 'X-DC-DEVKEY': '{{api_key}}', 'Content-Type': 'application/json' } response = requests.request("PUT", url, headers=headers, data = payload) print(response.text.encode('utf8')) ``` **Go** ```go package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products" method := "PUT" payload := strings.NewReader("{ \n \"currency\": \"USD\" \n \"pricing_method\": \"custom\" \n \"balance_negative_limit\": \"222\" \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}") client := &http.Client { } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) } req.Header.Add("X-DC-DEVKEY", "{{api_key}}") req.Header.Add("Content-Type", "application/json") res, err := client.Do(req) defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) fmt.Println(string(body)) } ``` **NodeJS** ```javascript var request = require('request'); var options = { 'method': 'PUT', 'url': 'https://www.digicert.com/services/v2/account/subaccount/{{subaccount_id}}/products', 'headers': { 'X-DC-DEVKEY': '{{api_key}}', 'Content-Type': 'application/json' }, body: "{\r\n \"currency\": \"USD\"\r\n \"pricing_method\": \"custom\"\r\n \"balance_negative_limit\": \"222\"\r\n \"products\": [\r\n {\r\n \"product_name_id\": \"ssl_plus\"\r\n },\r\n {\r\n \"product_name_id\": \"ssl_multi_domain\",\r\n \"product_name\": \"Multi-Domain SSL\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 412,\r\n \"additional_fqdn_cost\": 1351\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 782,\r\n \"additional_fqdn_cost\": 257\r\n }\r\n ]\r\n },\r\n {\r\n \"product_name_id\": \"ssl_wildcard\",\r\n \"product_name\": \"WildCard\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 688,\r\n \"additional_wildcard_cost\": 658\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 1307,\r\n \"additional_wildcard_cost\": 1250\r\n }\r\n ]\r\n },\r\n {\r\n \"product_name_id\": \"ssl_ev_plus\",\r\n \"product_name\": \"EV SSL\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 344\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 654\r\n }\r\n ]\r\n },\r\n {\r\n \"product_name_id\": \"ssl_ev_multi_domain\",\r\n \"product_name\": \"EV Multi-Domain\",\r\n \"prices\": [\r\n {\r\n \"lifetime\": 1,\r\n \"cost\": 574,\r\n \"additional_fqdn_cost\": 168\r\n },\r\n {\r\n \"lifetime\": 2,\r\n \"cost\": 1090,\r\n \"additional_fqdn_cost\": 319\r\n }\r\n ]\r\n }\r\n ]\r\n}" }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); }); ``` ## 204 No Content ```json // empty ``` ## 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. 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. Possible values: See Glossary - Subaccount display currencies. Default: Previously assigned currency code, or USD if no code has been assigned. Important:
|
| 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. For more information, 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. For more information, see Product-specific parameter support . Max: 99999999.99 |
.. .. fqdn_package_cost | required* | int float | Specify the FQDN SAN package price for products that support bundled SAN package pricing. *Required only for products that support FQDN SAN package price. For more information, see Product-specific parameter support . Max: 99999999.99 |
| Product name ID | Supports additional_fqdn_cost | Supports additional_wildcard_cost | Supports fqdn_package_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 | Yes |
| ssl_ev_basic | Yes | – | 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 | – |