OV/EV certificate lifecycle
25 minute read
The OV/EV certificate lifecycle consists of these main steps:
- Prepare certificate request
- Submit certificate order
- (Optional) Cancel certificate order
- Complete domain control validation (DCV)
- Complete organization validation
- Check order status
- Download issued certificate
Once a certificate has been issued, you can perform any of these actions:
- Reissue a certificate
- Renew an order
- Revoke a certificate
Prepare certificate request
To construct your request body and submit an order request, you need to collect some key pieces of information:
- Domain names to secure with the certificate.
- Certificate signing request (CSR) generated on the server where the certificate will be installed.
- Validity period of the certificate (amount of time the certificate should be valid).
- DCV method to use when demonstrating control over the domains.
- The legal name and registration information for the Organization being validated.
Domain names
Once you’ve collected the domain names to secure with the certificate, enter them in one of two request body parameters:
| Parameter | Type | Description |
|---|---|---|
common_name | string | Primary domain to be secured by the certificate. |
dns_names | array | Any additional domains to be secured by the certificate. Adding domains to this parameter may incur additional costs. |
common_name parameter and then the other version of the domain (www.[your-domain].com) to the dns_names array.Certificate signing request (CSR)
The CSR should be generated on the server where the certificate will be installed. Once generated, enter the PEM formatted CSR in the csr parameter of the request body. See Create a CSR (Certificate Signing Request) for additional information.
certificate.common_name, certificate.dns_names, and organization.id. If you are requesting an OV or EV certificate for an organization without an existing ID, you must provide values for all required parameters of the organization object. For more information, see Organization details.Validity periods
When you submit an order request, you set a validity period for the certificate and for the order. The validity period of the certificate determines when the certificate expires. The validity period of the order determines how long you can reissue the certificate without additional costs.
Public TLS/SSL certificate validity periods will continue to decrease
Due to industry-wide changes, the validity of Public TLS/SSL certificates will continue to shorten over time. Starting February 24, 2026, the maximum validity period for a Public TLS/SSL certificate will be 199 days. By 2029, the maximum validity period will be reduced to 46 days.
Accounts that have Multi-year Plans (MYP) enabled can purchase 1-, 2-, or 3-year coverage for a limited period. For accounts that do not have MYP enabled can purchase 1-year coverage; although a 1-year duration can be specified, the effective validity is limited to a maximum of 199 days.
For more information, see Moving to 199-day validity for public TLS/SSL certificates.
Order validity period
Use the order_validity object in your request body to customize the number of years or days the order is valid, or to set a custom expiration date for the order. Orders for Multi-year Plans can be valid for up to three years.
Order validity can be greater than certificate validity. If you do not specify a custom certificate validity period, we issue the certificate using the validity period of the order or the maximum certificate validity period defined in the CA/B Forum baseline requirements, whichever is shorter.
| Name | Req/Opt | Type | Description |
|---|---|---|---|
| order_validity | required* | object | Defines the validity period of the order. Note: Accounts that have Multi-year Plans (MYP) enabled can purchase 1-, 2-, or 3-year coverage. When MYP is enabled, the order validity ( order_validity) can be set upto 3 years and the certificate validity (certificate.cert_validity), which is the validity of the first certificate issued for the order, can be set upto 199 days. If the order validity exceeds 199 days and the certificate.cert_validity object is not included in the request, the certificate validity defaults to 199 days (maximum certificate validity). If the order validity is less than the maximum certificate validity (199 days), the certificate.cert_validity object is ignored and the certificate validity is capped at the order validity.For accounts that do not have MYP enabled, the order validity ( order_validity) can be set upto 1 year; although a 1-year duration can be specified, the effective validity is limited to a maximum of 199 days.For more information, see Moving to 199-day validity for public TLS/SSL certificates. |
| .. years | required* | int | Number of years the order is valid. *Can be replaced by order_validity.days or order_validity.custom_expiration_date. Range for MYP: 1-3 Range for non-MYP: 1 For accounts that do not have MYP enabled, a requested 1-year validity is enforced as a 199-day validity. |
| .. days | optional | int | Number of days the order is valid. Overrides order_validity.years. Max value for MYP: 1095 Max value for non-MYP: 199. For accounts that do not have MYP enabled, any requested validity period greater than 199 days is capped at 199 days. |
| .. custom_expiration_date | optional | string | Custom expiration date for the order. Overrides order_validity.days and order_validity.years. Format: YYYY-MM-DD (for example, "2026-12-26") Range for MYP: Must be within three years of the date you request the order. Range for non-MYP: Must be within 199 days of the date you request the order. For accounts that do not have MYP enabled, custom expiration dates beyond 199 days are rejected with a 400 Bad Request error and the system does not automatically adjust the expiration date. |
For example:
...
"order_validity": {
"years": 1
},
......
"order_validity": {
"days": 199
},
......
"order_validity": {
"custom_expiration_date": "2026-12-26"
},
...(Optional) Certificate validity period
Use the optional certificate.cert_validity object in your request body to customize the number of years or days the certificate is valid, or to set a custom expiration date for the certificate.
| Name | Req/Opt | Type | Description |
|---|---|---|---|
| certificate | required | object | Certificate details. |
| .. cert_validity | optional | object | Defines the validity period of the certificate issued for this order. This object is honored only for accounts with MYP enabled and if the order validity exceeds one year. The certificate validity must not exceed the order validity or the maximum allowed certificate validity of 199 days, whichever is shorter. If the order validity is less than the value specified in certificate.cert_validity object, the certificate validity is limited to the order validity.Due to industry-wide changes, the validity of Public TLS/SSL certificates will continue to shorten. Starting February 24, 2026, the maximum validity period for a Public TLS/SSL certificate will be 199 days. By 2029, the maximum validity period will be 46 days. For more information, see Moving to 199-day validity for public TLS certificates.. |
| .. .. days | optional | int | Number of days the order is valid. Can be replaced with cert_validity.custom_expiration_date. Max: 199 If the order validity is less than 199 days, this value is ignored and the certificate validity is capped at the order validity. |
| .. .. custom_expiration_date | optional | string | Custom expiration date for the order. Overrides cert_validity.days . Format: YYYY-MM-DD (for example, "2026-12-26") Range: Must be within 199 days of the date you request the order. If the order validity is less than 199 days, this value is ignored and the certificate expiration matches the order validity. |
For example:
...
"certificate": {
...
"cert_validity": {
"days": 199
}
},
......
"certificate": {
...
"cert_validity": {
"custom_expiration_date": "2026-12-26"
}
},
...Choose a DCV method
Email DCV is the default DCV method used for public TLS/SSL certificate orders. To use a different DCV method, it is recommended to include the dcv_method parameter in your order request. To check the DCV methods available to your account, see List DCV methods.
Use the table below to compare the available DCV methods and determine the right value for the dcv_method parameter:
| DCV method | Value | How it works | Best for |
|---|---|---|---|
| Email to DNS TXT record contact | email | DigiCert emails the contact published in the domain’s _validation-contactemail TXT record, and then the recipient approves the request. | Environments where DNS access is available and a monitored contact email is defined. |
| Email to DNS CAA record contact | email | DigiCert emails the contact specified by the domain’s DNS CAA contactemail property, and then the recipient approves the request. | Environments where a CAA record contact email is already configured. |
| Constructed email | email | DigiCert emails a permitted administrative address, such as admin@domainname, administrator@domainname, hostmaster@domainname, postmaster@domainname, or webmaster@domainname; and then the recipient approves the request. | Environments where standard administrative email aliases are monitored and have a working MX record. |
| Persistent DNS TXT record | persistent-txt | Publish the CertCentral persistent URI in a TXT record at _validation-persist and keep it in place for future revalidation. | Environments where DNS access is available and the domain can be validated through a TXT record. Recommended for validation without replacing the DNS value each time. You only need to set up the DNS TXT record once and can keep it in place for future domain validations. However, this method must be enabled on your account, and validation still expires periodically, requiring revalidation. |
| DNS TXT record | dns-txt-token | Publish the DigiCert-generated DCV random value in the domain’s DNS TXT record. | Environments where DNS access is available (teams can update DNS TXT records) and the domain can be validated through a TXT record. |
| DNS CNAME record | dns-cname-token | Create a CNAME record at _dnsauth pointing to the DigiCert validation host {token}.dcv.digicert.com. | Environments where DNS access is available and the domain uses CNAME-based validation as a preferred choice. |
| HTTP Practical Demonstration | http-token | Serve the DCV random value in /.well-known/pki-validation/fileauth.txt on the FQDN being validated. | Environments with web server access for each exact FQDN, an accessible HTTP endpoint on port 80, and support for IPv4/IPv6 address validation. |
| HTTP Practical Demonstration with unique filename | http-token-dynamic | Serve the DCV random value in a DigiCert-generated file using a unique, DigiCert-provided filename. | Environments that centralize website validation across servers using 302 redirects. Supports IPv4 and IPv6 address validation. |
Organization details
Each OV/EV certificate order must include information about the organization that will receive the certificate. Before DigiCert can issue the certificate, industry standards require us to validate the organization you include in the request. For more information about organization validation, see TLS certificate organization validation process.
Use the organization object in the body of your request to submit the details of an organization with your order. You can use this object to create a new organization, or you can associate the certificate with an organization that already exists in your account.
- To create a new organization, use the
organizationobject to provide the name, address, and contact information for individuals associated with the organization. For details about the structure and required parameters of the organization object, see the documentation for the Create organization endpoint. This example shows theorganizationobject for a request that creates a new organization:{ ... "organization": { "name": "Epigyne Unwieldiness llc", "assumed_name": "Epigyne Unwieldiness", "country": "us", "address": "932 Prospect Street", "address2": "Floor 08", "city": "Minneapolis", "state": "Minnesota", "zip": "40849", "telephone": "666-186-6450", "container": { "id": 93288 }, "organization_contact": { "first_name": "Gia", "last_name": "Booth", "job_title": "Clinical Laboratory Technician", "email": "gia.booth@inbox.com", "telephone": "666-186-6450", "telephone_extension": "736" }, "skip_duplicate_org_check": true }, ... }When you submit an order with organization details instead of providing an organization ID, we check the organizations that already exist in your account to avoid creating a duplicate.
- If we find one matching organization, we automatically associate the order with that organization instead of creating a new one.
- If we find two or more matching organizations, we automatically associate the order with the oldest matching organization in your account instead of creating a new one.
To override this behavior and force the request to create a new organization, set the
organization.skip_duplicate_org_checkparameter totruein the body of your request.When you want to associate an order with an existing organization, we recommend always using the ID of the organization instead of the organization’s details in the body of your request. To get the ID values for organizations in your account, use the List organizations endpoint. Additionally, we recommend deactivating unused organizations to ensure they are never accidentally assigned to a new order request. To deactivate an organization, use the Deactivate organization endpoint.
- To associate the request with an existing organization, pass the ID of the organization as the value of the
organization.idparameter. To get ID values for organizations that already exist in your account, use the List organizations endpoint. This example shows the organization object from a request that associates the order with an existing organization:{ ... "organization": { "id": 112236 }, ... }
(Optional) dcv_emails array
When using the email DCV method, it’s possible to specify the email addresses that should be used when sending the DCV emails. To do this, include the dcv_emails array in the request body and add an entry for each domain on the order.
Each email address specified in dcv_emails must be an allowed DCV email address for the domain: either a DNS-based contact address configured in a DNS TXT record at _validation-contactemail.[domain_name] or a DNS CAA record using the contactemail property, or one of the five constructed addresses: admin@[domain_name], administrator@[domain_name], webmaster@[domain_name], hostmaster@[domain_name], or postmaster@[domain_name]. DigiCert sends DCV emails only to the addresses specified for that domain.
For example, if john.doe@[domain_name] is configured as a DNS TXT or DNS CAA email contact for the domain, you can specify it in dcv_emails. If it is the only address specified for that domain, DigiCert sends the DCV email only to that address. Similarly, if you specify only admin@[domain_name], DigiCert sends the DCV email only to that address.
Example dcv_emails array
"dcv_emails": [
{
"dns_name": "example.com",
"email_domain": "example.com",
"email": "hostname@example.com"
},
{
"dns_name": "my.example.com",
"email_domain": "example.com",
"email": "admin@example.com"
},
{
"dns_name": "another.example.com",
"email_domain": "example.com",
"email": "admin@example.com"
}
]
(Optional) ICA selection
With ICA selection, you can choose which ICA certificate chain should issue your end-entity certificate.
To use ICA selection:
- ICA selection must be enabled for your account. To enable ICA selection, contact your account manager or the Support team. For more information, see ICA certificate chain option for public TLS certificates.
- You must know the
ca_cert_idof the ICA that you want to issue your certificate. To find theca_cert_idfor an ICA certificate chain, use the Product list endpoint.
To select an ICA certificate chain, include the certificate.ca_cert_id parameter in your certificate request. The value of this parameter is the ID of the ICA certificate chain that should issue your end-entity certificate.
For example:
{
"certificate": {
"common_name": "example.test.com",
"csr": {{csr}},
"signature_hash": "sha256",
"ca_cert_id": "4A7259E3E5D112A"
},
"order_validity": {
"years": 1
},
"locale": "en",
"skip_approval": true,
"organization": {
"id": {{organization_id}}
},
"payment_method": "profile"
}
ca_cert_id value for an ICA that is not allowed, the request returns an error. To see the custom ICA settings for each product, use the Product limits endpoint.Submit certificate order
After you collect the above information, you’re ready to construct your request body and submit your order request. To do this, submit a POST request to the order endpoint for the type of certificate you want to buy.
The following table lists the endpoints for ordering different OV/EV SSL products:
| Endpoint | SSL products |
|---|---|
| Order SSL (type_hint) | This endpoint attempts to determine the appropriate SSL product based on the information you provide in the request body. |
| Order Basic OV | Basic OV SSL certificate |
| Order Basic EV | Basic EV SSL certificate |
| Order Secure Site OV | Secure Site OV SSL certificate |
| Order Secure Site EV | Secure Site EV certificate |
| Order Secure Site Pro SSL | Secure Site Pro SSL certificate |
| Order Secure Site Pro EV SSL | Secure Site Pro EV SSL certificate |
| Order Private SSL | Private SSL OV, Private SSL Plus, Private SSL Wildcard, and Private SSL Multi Domain certificates |
| Order OV/EV SSL | Standard SSL, SSL Multi Domain, WildCard, EV SSL, SSL EV Multi-Domain, or SSL Cloud certificates. |
| Order Multi-year Plan | Order a Multi-year Plan for a flex certificate. |
A successful POST to an order endpoint returns a 201 Created HTTP response code. The response body includes information that you can use to check the status of the order and to download the certificate when it is issued, including:
id: The ID of the order in your account. Use this ID with the Order info endpoint to check the details of the order.certificate_id: The ID of the certificate. Use this ID to perform operations such as downloading or revoking the certificate.dcv_random_value: Random value used fordns-txt-token,dns-cname-token, andhttp-tokenDCV methods. Not used forpersistent-txt, which uses a persistent URI. This random value expires after 30 days.
The example below shows the entire request and response bodies for a sample request to the Order OV/EV SSL endpoint:
Request OV/EV SSL certificate (cURL)
curl -X POST \
'https://www.digicert.com/services/v2/order/certificate/{{ssl_certificate_id}}' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"certificate": {
"common_name": "example.com",
"dns_names": [
"sub.example.com",
"app.example.com"
],
"csr": "<csr>",
"server_platform": {
"id": 45
},
"signature_hash": "sha256",
"cert_validity": {
"days": 199
}
},
"order_validity": {
"years": 1
},
"disable_renewal_notifications": true,
"locale": "en",
"skip_approval": true,
"payment_method": "balance",
"organization": {
"id": 123456
},
"container": {
"id": 93288
},
"custom_fields": [
{
"metadata_id": 11,
"value": "Invoice #00001"
}
]
}'
{
"id": 12345,
"domains": [
{
"id": 12345,
"name": "example.com",
"dns_name": "example.com"
},
{
"id": 12345,
"name": "example.com",
"dns_name": "sub.example.com"
},
{
"id": 12345,
"name": "example.com",
"dns_name": "app.example.com"
}
],
"certificate_id": 123456
}{
"id": 12345,
"dcv_random_value": {{token}},
"domains": [
{
"id": 12345,
"name": "example.com",
"dns_name": "example.com",
"dcv_token": {
"token": {{token}},
"status": "pending",
"expiration_date": "2021-08-16T01:16:29+00:00"
}
},
{
"id": 12345,
"name": "example.com",
"dns_name": "sub.example.com"
"dcv_token": {
"token": {{token}},
"status": "pending",
"expiration_date": "2021-08-16T01:16:29+00:00"
},
{
"id": 12345,
"name": "example.com",
"dns_name": "app.example.com"
"dcv_token": {
"token": {{token}},
"status": "pending",
"expiration_date": "2021-08-16T01:16:29+00:00"
}
],
"certificate_id": 123456
}(Optional) Cancel certificate order
After placing an order, there may be times when you need to cancel it. To cancel an order, you need to change the status from pending to canceled. This is done with a PUT to the Update order status endpoint.
A successful PUT to this endpoint returns a 204 No Content HTTP response.
status parameter only allows a value of CANCELED (case sensitive).Cancel certificate order (cURL)
curl -X PUT \
'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/status' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"status": "CANCELED",
"note": "Message about the cancellation."
}'
204 No Content (Order canceled)
// empty
Complete domain control validation (DCV)
After submitting the OV/EV certificate order, complete DCV for each domain on the order or any domain that does not have a current validation. The DCV method you selected when creating the order determines how you demonstrate control over each domain.
dcv_method parameter in the API request.Complete DCV for the domain(s) that still require validation using the method selected when preparing the request. A domain with an active validation may not need another DCV check. To review a domain’s validation status, see Validation details.
For guidance on completing the domain control validation, see DCV Methods.
Choose a DCV method (email, DNS, or HTTP) and then complete validation by responding to the email, updating DNS records, or updating the host validation file accordingly. For the persistent-txt DCV method, keep the persistent DNS TXT record and URI in your domain’s DNS configuration so DigiCert can reuse them for future domain validations. Validating a domain using the email, dns-txt-token, dns-cname-token, or persistent-txt DCV method demonstrates control over the domain and its subdomains. Using only the file-based (http-token or http-token-dynamic) DCV method demonstrates control over the exact FQDN in your request.
Key DCV related tasks you can perform with CertCentral APIs:
- For viewing the available DCV methods for a domain, see List DCV methods.
- For checking DCV status, see Validation details.
- To retrieve the existing DCV random value or generate a replacement if it has expired, using the Order ID, see Generate DCV token.
- For generating a new random value for an individual domain using the Domain ID, see OV/EV SSL: Generate DCV token. To retrieve an existing random value instead of generating a new one, see Domain info endpoint.
- For completing
http-tokenorhttp-token-dynamicDCV, see File-based domain control validation (http-token). - For certificate renewals or reissuances, domain revalidation may be necessary if the prior validation period has lapsed. See Submit domain for validation.
- To resend an email validation request, use Resend DCV email with the domain ID.
Key DCV related tasks you can perform with the CertCentral UI:
- For completing DCV through the CertCentral UI, see Domain Control Validation using CertCentral platform documentation.
Perform DCV check
When you submit your certificate order, DigiCert automatically checks the domain for the required DCV information. For more information about automatic DCV polling, see Automatic domain control validation checks.
In addition to automatic DCV polling, you can perform a DCV check by calling the Check order DCV API endpoint, which also supports OV/EV orders. Alternatively, you can perform a DCV check from your CertCentral account by following these steps:
- For each domain on the order, add the random value to the DNS TXT record (DNS TXT method), DNS CNAME record (DNS CNAME method), or to the fileauth.txt uploaded to the specified location (HTTP TXT DCV method).
- Sign in to CertCentral.
- Navigate to the Order Detail page for the new order.
- In the Order status section of the page, click on each domain listed as pending DCV, and then click Check to have the DCV method checked and confirmed.
Organization validation
In addition to domain validation, all OV/EV orders also require organization validation. Once an order is submitted, DigiCert’s validation team will begin working on the OV/EV organization validation process.
Check validation status
You can check the current validation status for an organization with a GET to the Organization Validation details endpoint.
A successful GET to this endpoint returns a 200 OK HTTP response.
Check validation status (cURL)
curl -X GET \
'https://www.digicert.com/services/v2/organization/{{organization_id}}/validation' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}'
200 OK (Validation status)
{
"validations": [
{
"type": "ov",
"name": "OV",
"description": "Normal Organization Validation",
"status": "pending"
},
{
"type": "ev",
"name": "EV",
"description": "Extended Organization Validation (EV)",
"status": "pending",
"verified_users": [
{
"id": 12,
"first_name": "John",
"last_name": "Smith"
}
]
}
]
}
Check order status
After submitting your order and completing the DCV for each domain, you’ll want to know when the order status changes and whether DigiCert has issued the certificate.
To check the status of your order, use the GET /order/certificate/{order_id} endpoint. Check the value of the Status response parameter to get the current status of the order. For more information about retrieving order information, see Order info. For more information about types of order status, see Glossary - Order Status.
The best way to determine when an order’s status changes is to send a GET request to the Status change list endpoint. A GET to this endpoint returns three possible responses:
- 200 OK (
ordersarray): The orders array lists all orders that have changed status in the specified timeframe. When your order’s status changes from pending to issued, it will appear in the list. If multiple orders are returned, use either the order ID or certificate ID to locate the order. - 200 OK (empty object): A response with an empty object (
{}) means no orders have had a status change in the specified timeframe. Either increase the timeframe or wait to send another request. - 400 Bad Request : A response with the
time_frame_too_longerror code means the timeframe specified in the URL query string exceeds the maximum value. Reduce the timeframe to a value less than 10080 minutes (7 days).
Check order status (cURL)
curl -X GET \
'https://www.digicert.com/services/v2/order/certificate/status-changes?minutes=10' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}'
{
"orders": [
{
"order_id": 112233,
"certificate_id": 123456,
"status": "issued"
}
]
}{}{
"errors": [
{
"code": "time_frame_too_long",
"message": "An error occurred while processing your request."
}
]
}Download certificate
Once the order status changes from pending to issued, your certificate is ready to be downloaded. Depending on your needs, you can use any of the following endpoints to download your certificate.
To download a certificate, use the GET /certificate/{certificate_id}/download/ endpoint after the certificate is issued. You can download certificates for a specific platform, in a supported format or by order ID.
For more information about downloading the certificate for a platform, see Download certificate for a platform.
For more information about downloading the certificate in a specific format, see Download certificate by format.
For more information about downloading the certificate based on the order ID, see Download certificate (order_id).
For more information about downloading the certificate using its order ID in a specific format, see Download certificate by format (order_id).
Reissue certificate
Reissuing a certificate allows you to add, remove, or swap domain names, update the CSR, or change the signature hash of a certificate without submitting a new order. Additionally, if a certificate expires before the end of an order, you can reissue the certificate to receive a new certificate with a new expiration date.
A reissued certificate has a new certificate ID but the same order ID. After a reissue is approved, a new certificate is issued and needs to be reinstalled.
When reissuing a certificate, you need to provide this information:
- Common name
- SANs (include both the current SANs in the dns_names parameter as well as any additional SANs to be secured)
- CSR (to get and reuse the current CSR, use the Request info endpoint)
- Server platform ID (options listed here)
Even if some of the above details are staying the same, you still need to include it in the reissue request.
The Reissue certificate endpoint accepts the following optional parameters:
skip_approval: Allows the request to be immediately submitted for validation, bypassing the need to approve the reissue request.certificate.cert_validity(Multi-year Plans): Allows you to customize the validity period for the reissued certificate. For more information about the parameters in this object, see (Optional) Certificate validity period.
The following example shows the full request and response bodies for a request to the reissue certificate endpoint:
Reissue certificate (cURL)
curl -X POST \
'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/reissue' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"certificate": {
"common_name": "example.com",
"dns_names": [
"sub.example.com"
],
"csr": "<csr>",
"server_platform": {
"id": 2
},
"signature_hash": "sha256"
"skip_approval": true
}
}'
{
"id": 112233,
"dcv_random_value": {{token}},
"certificate_id": 111112
}{
"id": 112233,
"requests": [
{
"id": 332211
}
]
}After a reissue is complete, download the new certificate (see Download certificate).
You can get a complete reissue history for an order by using the List reissues endpoint.
Renew order
Renewing an order allows you to link a new order to an expiring order such that you can track the history of your certificates using CertCentral and the Services API. When you renew an order, you receive a new certificate and a new order ID.
To renew, send a request to the endpoint for the certificate you want to buy. Follow the instructions to prepare the certificate request, and include a value for one of the following parameters:
| Name | Type | Description |
|---|---|---|
| renewed_thumbprint | string | The SHA-1 thumbprint of the previous order's primary certificate. For more information, see How to check a certificate's thumbprint. |
| renewal_of_order_id | int | If order is a renewal, enter the previous order's ID. |
For example, a request to renew the order with ID 123456 looks like this:
curl -X POST \
'https://www.digicert.com/services/v2/order/certificate/{{ssl_certificate_id}}' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"certificate": {
"common_name": "example.com",
"dns_names": [
"sub.example.com",
"app.example.com"
],
"csr": "<csr>",
"server_platform": {
"id": 45
},
"signature_hash": "sha256",
"cert_validity": {
"days": 199
}
},
"order_validity": {
"years": 1
},
"disable_renewal_notifications": true,
"locale": "en",
"renewal_of_order_id": 123456,
"payment_method": "balance",
"skip_approval": true,
"organization": {
"id": 123456
},
"custom_fields": [
{
"metadata_id": 11,
"value": "Invoice #00001"
}
]
}'
dns_names), may incur additional costs. You may need to perform DCV for some or all of the domains.For renewal orders, the Order info response includes a true value for the is_renewal parameter. The value of the renewed_order_id parameter is the order ID for the previous order:
{
"is_renewal": true,
"renewed_order_id": 123456
}
After the status of the order renewal changes from pending to issued, you can download the new certificate (see Download certificate) and install it on your server. For more information about installing your certificate, see our SSL Certificate Installation Instructions & Tutorials page.
Revoke certificate
Once your order is issued, you can submit a revoke request if needed. You can revoke a certificate using one of two endpoints. Both endpoints use the same request body parameters.
- Revoke certificate – Use this endpoint to revoke a specific certificate using the certificate ID or serial number.
- Revoke order certificate – Use this endpoint to revoke all certificates associated with an order ID.
After submitting the request, an administrator must approve it before DigiCert can revoke the certificate.
To skip the approval step and submit the request directly to DigiCert for revocation, include "skip_approval": true in the body of your request. To skip the approval step, the API key must have admin privileges. See Authentication.
curl --request PUT 'https://www.digicert.com/services/v2/certificate/{{certificate_identifier}}/revoke' \
--header 'Content-Type: application/json' \
--header 'X-DC-DEVKEY: {{api_key}}' \
--data-raw '{
"skip_approval": true
}'curl --request PUT 'https://www.digicert.com/services/v2/certificate/{{certificate_identifier}}/revoke' \
--header 'Content-Type: application/json' \
--header 'X-DC-DEVKEY: {{api_key}}' \
--data-raw '{
"comments": "I no longer need this certificate."
}'curl --request PUT 'https://www.digicert.com/services/v2/certificate/{{certificate_identifier}}/revoke' \
--header 'Content-Type: application/json' \
--header 'X-DC-DEVKEY: {{api_key}}' \
--data-raw '{
"revocation_reason": "superseded",
"skip_approval": true
}'// empty{
"id": 1,
"date": "2016-02-10T17:06:15+00:00",
"type": "revoke",
"status": "pending",
"requester": {
"id": 242140,
"first_name": "Jack",
"last_name": "White",
"email": "j.white@fakeaddy.com"
},
"comments": "Revoked via API!"
}