# v2 (https://developer.godaddy.com/en/docs/references/rest/certificates/v2)

---
title: v2
description: >-
  Entitlement- and subscription-backed operations. Order and reissue
  certificates against an entitlement, look certificates up by Automated SSL
  subscription, check domain verification state, and fetch ACME external account
  binding credentials.
full: true
pageId: 9fed8913-cde5-4a0c-bd84-a6285adb1406
---

## POST /v2/certificates

Create a pending order for certificate

<p>Creating a certificate order for a subscription can be a long running asynchronous operation in the PKI workflow. The PKI API supports 2 options for getting the completion stateful actions for this asynchronous operations: 1) by polling operations -- see /v1/certificates/{certificateId}/actions 2) via WebHook style callback -- see '/v1/certificates/{certificateId}/callback'.</p>

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Market-Id` | string | no | Setting locale for communications such as emails and error messages. Defaults to the locale of the shopper account. |

### Request body (required)

The certificate order information

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/SubscriptionCertificateCreate`

### Responses

**202** — Request was successful

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/SubscriptionCertificateIdentifier`

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow renew

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — `email` is not empty<br>`csr` is invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## POST /v2/certificates/{certificateId}/reissue

Reissue active certificate

<p>Rekeying is the process by which the private and public key is changed for a certificate. It is a simplified reissue,where only the CSR is changed. Reissue extends validity of the existing certificate by requesting a new certificate with all the same values as existing issued certificate. Once a request is validated and approved, the certificate will be reissued with the same common name and sans specified from existing certificate. Unlimited reissues are available during the lifetime of the certificate.If this API call is made before a previous pending reissue has been validated and issued, the previous reissue request is automatically rejected and replaced with the current request.</p>

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | unknown | yes | The id of the certificate. |

### Request body

The reissue request info

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateReissueV2`

### Responses

**202** — Reissue request created

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow reissue

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — `csr` is invalid<br>Delay revocation exceeds maximum

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/{certificateId}

Retrieve individual certificate details

Once the certificate order has been created, this method can be used to check the status of the certificate. This method can also be used to retrieve details of the certificate. <ul><li>**shopperId** is **not the same** as **customerId**. **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)</li></ul>

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `certificateId` | unknown | yes | The id of the certificate. |

### Responses

**200** — Certificate details retrieved

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateDetailV2`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — Application-specific request error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/{certificateId}/domainVerifications

Retrieve domain verification status

This method can be used to retrieve the domain verification status for a certificate request.<ul><li>**shopperId** is **not the same** as **customerId**.  **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)</li></ul>"

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `certificateId` | unknown | yes | The id of the certificate. |

### Responses

**200** — Domain verification status list for specified certificateId.

Content-Type: `application/json`

Schema:

- array
  - items:

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — Application-specific request error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/{certificateId}/domainVerifications/{domain}

Retrieve detailed information for supplied domain

Retrieve detailed information for supplied domain, including domain verification details and Certificate Authority Authorization (CAA) verification details. <ul><li>**shopperId** is **not the same** as **customerId**.  **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)</li></ul>

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `certificateId` | unknown | yes | The id of the certificate. |
| `domain` | string <domain> | yes | A valid domain name in the certificate request |

### Responses

**200** — Retrieve detailed information for supplied domain, including domain verification details and Certificate Authority Authorization (CAA) verification details.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/DomainVerificationDetail`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — Application-specific request error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/acme/externalAccountBinding

Retrieves the external account binding for the specified customer

Use this endpoint to retrieve a key identifier and Hash-based Message Authentication Code (HMAC) key for Automated Certificate Management Environment (ACME) External Account Binding (EAB). These credentials can be used with an ACME client that supports EAB (ex. CertBot) to automate the issuance request and deployment of DV SSL certificates

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |

### Responses

**200** — Acme key identifier and HMAC key for the external account binding. Directory URI is also provided for making ACME requests.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/ExternalAccountBinding`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — Application-specific request error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/credits/search

Search a customer's certificate credits

Returns a page of certificate credits for the customer. A credit is a purchased entitlement: it may already have a certificate issued against it, or still be unused. Filters combine, and the ones you supply decide which search index is used, so an unusual combination can return 400.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `pageSize` | integer <int32> | no | The number of records to return per query. |
| `page` | integer <int32> | no | The page number. <b>(First page is <i>one</i> instead of zero.)</b> |
| `domain` | string | no | Filter by domain name / common name. This will look for the text inside the content of the domain. This is not a "find domains that start with x" search. |
| `status` | string | no | Filter credits by the state of the certificate issued against them. ISSUED matches any certificate that was ever issued, expired or not. UNUSED matches credits with no certificate requested yet, USED matches everything except those, and ALL disables the filter. |
| `product_type` | unknown | no | Filter by the purchased product behind the credit. |
| `sort_by` | string | no | Field to sort the credit list by. Omit to let the service pick the ordering that suits the filters you supplied. |
| `sort_direction` | string | no | Sort direction applied to sort_by. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateCreditList`

**400** — Pagination or domain input is invalid, or no search strategy matched the supplied filters

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/credits/available

List a customer's unused certificate credits

Returns the credits the customer has purchased but not yet used — one entry per available slot, with the product it came from. Use this before creating a certificate to see what the customer is already entitled to.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- array
  - items:

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/subscriptions/stats

Get aggregate certificate and subscription counts for a customer

Returns one count per requested bucket, scoped to a single customer. Both certificate buckets (ACTIVE, EXPIRING_SOON, DV, ...) and subscription buckets (SUBSCRIPTION_TOTAL, SUBSCRIPTION_ACTIVE, ...) are accepted. Subscriptions with no certificates are counted.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `subscriptionStatus` | string | no | Filter by subscription status. ACTIVE_OR_SUSPENDED matches both of those states and is the default; ANY disables the filter entirely. |
| `bucket` | array | no | Repeat this parameter to select which counts to return. Both certificate and SUBSCRIPTION_* buckets are accepted on this endpoint. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateByDomainStats`

**400** — No recognized stat bucket was supplied

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/subscription/{guid}/search

Search the certificates in one subscription

Returns the subscription with one page of the certificates issued under it. Get the `guid` from `GET /v2/customers/{customerId}/certificates/subscriptions`. The paging fields (`total`, `page`, `pageSize`) sit on the subscription itself and count certificates. A subscription with no matching certificates still returns, with an empty `certificates` array.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `guid` | string | yes | The Subscription GUID containing the certificates being requested. |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `pageSize` | integer <int32> | no | The number of records to return per query. |
| `page` | integer <int32> | no | The page number. <b>(First page is <i>one</i> instead of zero.)</b> |
| `domain` | string | no | Filter by domain name / common name. This will look for the text inside the content of the domain. This is not a "find domains that start with x" search. |
| `status` | string | no | Filter by certificate lifecycle stage. ACTIVE, EXPIRED, and REVOKED are all issued certificates. EXPIRING_SOON is an active certificate close to its end date. PENDING is still going through issuance. DENIED went from pending to denied, for example because the customer canceled or a CAA record blocked issuance. |
| `type` | string | no | The type of certificate in terms of the number of applicable domains. |
| `validation` | string | no | The validation type for the certificate.  Standard/Basic Validation (DV).  Organizational/Deluxe Vetting (OV). Extended/Premium Validation (EV). |
| `hidden` | boolean | no | Set to true to return *only* the certificates the customer has hidden. The default, false, returns only the visible ones. |
| `sortBy` | string | no | Field to sort the results by. |
| `sortDirection` | string | no | Sort direction applied to sortBy. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificatesBySubscriptionPage`

**400** — Pagination or domain input is invalid, or the guid is malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/subscription/{guid}/stats

Get aggregate certificate counts for one subscription

Returns one count per requested bucket, scoped to a single subscription. Only certificate buckets are accepted — passing a SUBSCRIPTION_* bucket returns 400.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `guid` | string | yes | The Subscription GUID containing the certificates being requested. |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `bucket` | array | no | Repeat this parameter to select which counts to return. SUBSCRIPTION_* buckets are rejected on this endpoint. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateByDomainStats`

**400** — A SUBSCRIPTION_* stat bucket was requested, or the guid is malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificates/subscriptions

Get a page of a customer's subscriptions

Each entry describes the *subscription itself* — its plan, domain allowance, supported validation levels, and features — rather than the certificates issued under it. Each entry carries the `guid` that identifies the subscription, which is what the per-subscription search and stats endpoints take. Subscriptions with no certificates are included.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `pageSize` | integer <int32> | no | The number of records to return per query. |
| `page` | integer <int32> | no | The page number. <b>(First page is <i>one</i> instead of zero.)</b> |
| `domain` | string | no | Filter by domain name / common name. This will look for the text inside the content of the domain. This is not a "find domains that start with x" search. |
| `subscriptionStatus` | string | no | Filter by subscription status. ACTIVE_OR_SUSPENDED matches both of those states and is the default; ANY disables the filter entirely. |
| `type` | string | no | Filter by subscription size. SINGLE matches subscriptions that allow exactly one domain; MULTIPACK matches those that allow more than one. |
| `validation` | string | no | The validation type for the certificate.  Standard/Basic Validation (DV).  Organizational/Deluxe Vetting (OV). Extended/Premium Validation (EV). |
| `wildcard` | string | no | Filter by whether the subscription can issue wildcard certificates. |
| `sortBy` | string | no | Field to sort the subscription list by. NEEDS_ATTENTION, the default, orders by subscription status (REMOVED first, ACTIVE last) and then by soonest expiry. DOMAIN_USAGE sorts by allowedDomains / maxDomains. |
| `sortDirection` | string | no | Sort direction applied to sortBy. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateSubscriptionsPage`

**400** — Pagination or domain input is invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## POST /v2/customers/{customerId}/certificates/visibility

Show or hide several certificates

Sets the same visibility on every certificate ID in the body. Hidden certificates stay in the account and keep working — they are just filtered out of the default listings until asked for with `hidden=true`. The response reports the resulting state of each certificate. This operation does not apply to certificate credits.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `hidden` | boolean | no | The visibility to apply — true hides, false shows. |

### Request body (required)

Content-Type: `application/json`

Schema:

- array — The certificate IDs to show or hide. Duplicates are ignored.
  - items:

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- array
  - items:

**400** — The request body was empty

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificate/{certificateId}/visibility

Check whether a certificate is hidden

Returns whether the certificate is currently hidden from the default listings. Certificate credits cannot be hidden.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `certificateId` | unknown | yes | The id of the certificate. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateVisibility`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## POST /v2/customers/{customerId}/certificate/{certificateId}/visibility

Show or hide one certificate

Single-certificate form of `POST /v2/customers/{customerId}/certificates/visibility`, with no request body. Note the singular `certificate` segment — unlike the `GET` above, the plural `certificates` form of this path is not routed for `POST`. The response is still an array, with one entry. This operation does not apply to certificate credits.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `certificateId` | unknown | yes | The id of the certificate. |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `hidden` | boolean | no | The visibility to apply — true hides, false shows. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- array — Contains one entry if the certificate was updated. Empty if the certificate wasn't found, isn't owned by the customer, or was removed.
  - items:

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.

## GET /v2/customers/{customerId}/certificate/{certificateId}/checklist

Get the issuance checklist for a certificate

Returns the outstanding steps between a pending certificate request and issuance — fraud review, domain control, organization vetting, agreement signing, final review, and installation — with a count of how many are done and how many are waiting on the customer. Use this to tell a customer exactly what is blocking their certificate. Note the singular `certificate` segment; this route has no plural alias.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | An identifier for a customer |
| `certificateId` | unknown | yes | The id of the certificate. |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `types` | array | no | Repeat this parameter to limit the checklist to specific steps. Defaults to every step. |

### Responses

**200** — OK

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateStatusChecklist`

**401** — Authentication info not sent or is invalid

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Resource not found

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `*/*`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `sso-key`.
