Submit for validation

POST https://www.digicert.com/services/v2/organization/{{organization_id}}/validation

Use this endpoint to submit an organization to be validated and add verified contacts who can approve orders for the given product type.

To get a list of possible user IDs to use for the verified_users array, use the List approvers endpoint.

Organization validation reuse periods will decrease to 397 days

Due to industry-wide changes, the organization validation reuse period will continue to shorten over time. Starting February 24, 2026, the maximum organization validation reuse period will be 397 days. For existing pre-validated organization, the new expiration date must be calculated as the last validation date + 397 days. For more information, see Organization validation reuse changes for public OV TLS certificates in 2026.

Example requests and responses

curl -X POST \
  'https://www.digicert.com/services/v2/organization/{{organization_id}}/validation' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
  "validations": [
    {
      "type": "ov"
    },
    {
      "type": "ev",
      "verified_users": [
        {
          "id": 112233
        },
        {
          "first_name": "Jill",
          "last_name": "Valentine",
          "job_title": "CTO",
          "telephone": "555-555-5555",
          "email": "jill.valentine@digicert.com"
        }
      ]
    }
  ]
}'
import requests

url = "https://www.digicert.com/services/v2/organization/{{organization_id}}/validation"

payload = "{\n  \"validations\": [\n    {\n      \"type\": \"ov\"\n    },\n    {\n      \"type\": \"ev\",\n      \"verified_users\": [\n        {\n          \"id\": 112233\n        },\n        {\n          \"first_name\": \"Jill\",\n          \"last_name\": \"Valentine\",\n          \"job_title\": \"CTO\",\n          \"telephone\": \"555-555-5555\",\n          \"email\": \"jill.valentine@digicert.com\"\n        }\n      ]\n    }\n  ]\n}"
headers = {
    'X-DC-DEVKEY': "{{api_key}}",
    'Content-Type': "application/json"
    }

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

print(response.text)
package main

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

func main() {

	url := "https://www.digicert.com/services/v2/organization/{{organization_id}}/validation"

	payload := strings.NewReader("{\n  \"validations\": [\n    {\n      \"type\": \"ov\"\n    },\n    {\n      \"type\": \"ev\",\n      \"verified_users\": [\n        {\n          \"id\": 112233\n        },\n        {\n          \"first_name\": \"Jill\",\n          \"last_name\": \"Valentine\",\n          \"job_title\": \"CTO\",\n          \"telephone\": \"555-555-5555\",\n          \"email\": \"jill.valentine@digicert.com\"\n        }\n      ]\n    }\n  ]\n}")

	req, _ := http.NewRequest("POST", 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))

}
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.digicert.com/services/v2/organization/{{organization_id}}/validation',
  headers: 
   { 'Content-Type': 'application/json',
     'X-DC-DEVKEY': '{{api_key}}' },
  body: 
   { validations: 
      [ { type: 'ov' },
        { type: 'ev',
          verified_users: 
           [ { id: 112233 },
             { first_name: 'Jill',
               last_name: 'Valentine',
               job_title: 'CTO',
               telephone: '555-555-5555',
               email: 'jill.valentine@digicert.com' } ] } ] },
  json: true };

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

  console.log(body);
});

204 No Content

// empty

Request parameters

When adding an existing contact, use the id parameter in the request body and omit the first_name, last_name, job_title, telephone, and email parameters.
NameReq/OptTypeDescription
validationsrequiredarrayList of validation types the organization will be validated for.
.. typerequiredstringValidation type identifier.
Possible values:
  • ov: Normal Organization Validation
  • ev Extended Organization Validation
  • cs: Code Signing Organization Validation
  • ev_cs: Code Signing Organization Extended Validation
  • ds: Document Signing Validation
  • smime: SMIME Organization Validation

See also: Glossary – Validation types.
.. verified_usersconditionalarrayList of verified contacts for the organization.
Required if the validation type is ev, cs, or ev_cs. Not used for other validation types.
.. .. idconditionalintID of the user to add as the verified contact.
Only required if adding an existing user as the verified contact. If included, other contact parameters are ignored.
.. .. first_nameconditionalstringFirst name of the verified contact.
Required if the id parameter is omitted.
.. .. last_nameconditionalstringLast name of the verified contact.
Required if the id parameter is omitted.
.. .. job_titleconditionalstringJob title of the verified contact.
Required if the id parameter is omitted.
.. .. telephoneconditionalstringTelephone number of the verified contact.
Required if the id parameter is omitted.
.. .. emailconditionalstringEmail address of the verified contact.
Required if the id parameter is omitted.