MethodPathSummaryAuth
GET/v1/certificate-ordersList certificate ordersSession
POST/v1/certificate-ordersQueue a pending certificate orderSession

Contract file:api/openapi/v1/dns-acme.yaml

Operation details

GET /v1/certificate-orders

List certificate orders

operationId
listCertificateOrders
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:certificates.read

Responses

listCertificateOrders Responses
StatusDescription
200Orders visible in the authenticated scope.

Fields:items: array<CertificateOrder>

401Authentication is required.
403The active role lacks the required permission.

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.

↑ Back to list

POST /v1/certificate-orders

Queue a pending certificate order

operationId
createCertificateOrder
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:certificates.manage

Description (from the contract)

Wildcards require dns-01 and a provider in the same tenant scope. A 202 response only persists a tenant-scoped pending intent and its audit event; it does not claim CA acceptance. Reusing an Idempotency-Key with a different scope, domain set, challenge, provider, or auto-renew value returns a conflict. HTTP-01 forbids dns_provider_id; DNS-01 requires a verified same-tenant provider. Entitlement authorization is a separate fail-closed server composition requirement and is not implied by RBAC.

Parameters

createCertificateOrder Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYes—

Request body

application/json · Required:Yes

createCertificateOrder Request body
NameTypeRequiredDescription
target_scope_idstring(uuid)No—
dns_provider_idstring(uuid)No—
domainsarray<string>Yes—
challenge_typestring: http-01 / dns-01Yes—
auto_renewbooleanYes—
issuerstring: lets_encrypt / zerossl / google_trustNoThe CA. Omitted uses the requesting user's default issuer, then the platform default. The resolved CA is frozen on the order and its renewals; a CA without platform EAB credentials is refused with 409 certificate_issuer_unavailable. An order for the same domain set that is still pending, validating or issuing refuses the new order with 409 certificate_order_in_flight.
namestringNoNames the order and the certificate it issues; trimmed.
remarkstringNoCopied to the issued certificate; trimmed

Responses

createCertificateOrder Responses
StatusDescription
202Pending intent stored without external side effects.

Fields:id: string(uuid) scope_id: string(uuid) dns_provider_id?: string(uuid) domains: array<string> challenge_type: string: http-01 / dns-01 status: string: pending / validating / issuing / issued / deploying / active / renewal_due / failed / revoked auto_renew: boolean issuer?: string: lets_encrypt / zerossl / google_trust name?: string remark?: string renewal_of_order_id?: string(uuid) not_after?: string(date-time) failure_code?: string issued_asset_id?: string(uuid) issued_version_id?: string(uuid) issued_at?: string(date-time) version: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Invalid request or structurally invalid DNS/certificate data.
401Authentication is required.
403The active role lacks the required permission.
404Resource absent or hidden by tenant isolation.
409Duplicate, referenced, stale, or conflicting idempotent request.

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.

↑ Back to list