For the complete documentation index, see llms.txt. This page is also available as Markdown.

Certificates

List certificates

get

Returns a list of imported certificates and metadata.

Certificates are stored by type:

  • managed: bound to a managed signing key (key_name present), may contain a full x5c chain, and has fingerprint256 = null.

  • trust_anchor: imported without key_name, must contain exactly one certificate in x5c, and has a non-null fingerprint256.

The response includes certificate id, type, associated key_name (when bound), the stored x5c, and fingerprint256 according to the certificate type rules above.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Responses
200

Certificates list retrieved

application/json
get/system/certificates
200

Certificates list retrieved

Import certificate

post

Import certificate material in x5c form (DER-encoded, base64-encoded items).

Behavior depends on whether key_name is provided:

  • With key_name: imports a managed certificate for that managed signing key.

    • x5c must contain at least one certificate.

    • The first item (leaf certificate) public key must match the managed key.

    • The full provided chain is stored.

    • fingerprint256 is stored as null.

  • Without key_name: imports a trust_anchor certificate.

    • x5c must contain exactly one certificate.

    • fingerprint256 is computed and stored.

Notes:

  • For mso_mdoc (mDL) credential issuance the credential key must have a valid DSC certificate; issuance will fail without it (see ISO 18013-5 for mDL DSC requirements).

  • When signing CSRs externally (for example with openssl x509 -req), explicitly provide extensions such as subjectAltName, keyUsage, and extendedKeyUsage so they are present in the issued certificate.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Body
x5cstring[] · min: 1Required

Certificate chain in DER base64 format.

  • With key_name, provide at least the leaf certificate (full chain is accepted and stored).
  • Without key_name, exactly one certificate is required.
key_namestringOptional

Optional managed signing key name. When present, imports as managed.

Responses
201

Certificate imported

application/json
post/system/certificates/import
201

Certificate imported

Delete certificate

delete

Delete an imported certificate by identifier.

Removal deletes either:

  • a managed key-bound certificate chain, or

  • a trust entry (trust_anchor).

Removing a credential signing certificate can break mso_mdoc issuance.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Path parameters
certificate_idstring · uuidRequired

Certificate ID

Responses
204

Certificate deleted

No content

delete/system/certificates/{certificate_id}
204

Certificate deleted

No content

Create CSR

post

Create a Certificate Signing Request (CSR) for a named wallet key and return the CSR PEM.

Typical flow: create CSR → sign the CSR with your CA (ensuring required extensions are present) → import the signed chain using /system/certificates/import with key_name.

Notes:

  • When using openssl x509 -req to sign a CSR, pass required extensions via -extfile so attributes such as subjectAltName and keyUsage are present in the issued certificate.

  • For credential signing keys used with mso_mdoc, ensure the issued certificate contains the DSC-related EKUs and usages required by ISO 18013-5.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Body
key_namestring · enumRequired

Managed signing key identifier

Possible values:
issuer_alternative_name_urlstring[]Optional
Responses
201

CSR created

application/json
post/system/certificates/csrs
201

CSR created

Last updated