--- 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:
  • Changing the display currency resets the subaccount’s balance or division balances to 0. This cannot be undone.
  • If any orders placed in a different currency are rejected or revoked, refunds are issued only to the parent account.
  • For any orders placed in a different currency, additional domains cannot be added when reissuing the certificate.
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-specific parameter support > **Info** > > If a product does not support additional cost parameters (`additional_fqdn_cost`, `additional_wildcard_cost`, or `fqdn_package_cost`) any value specified for that product is ignored.
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