Update presentation definition
Changes a presentation definition. Send the whole dcqlQuery in every update: without it the server answers 400 Presentation definition is required. The other members are partial: a member that you leave out, send as null, or send as an empty string or array keeps its stored value. Two exceptions: an empty expectedOrigins array clears the origins, and an empty listedClaims object clears the list. A new value replaces the stored one; the server does not merge objects.
The server checks each rule that the change touches with the rules of Create presentation definition, on the resulting values. For example, a dcApiRequestType in the body is checked against the stored responseMode when the body has none, and a new dcqlQuery is checked against the stored listedClaims, credentialQueryOptions and transactionDataCredentialIds.
Differences from create:
label: a label of one character or less after trimming keeps the stored label; there is no 3-character minimum.clientIdSchemecannot be cleared.- For an unsigned request (
clientIdSchemeredirect_urioutside the DC API response modes), the server removes the stored signing key, and refuses a key in the body.
A presentation definition that a platform extension uses cannot be changed. A change does not affect a verification request that is already sent: each request keeps a copy of its definition (presentationDefinitionSnapshot).
Authorizations
AuthorizationstringheaderrequiredYour API key with the prefix
ApiKey:ApiKey <your-api-key>. Get an API key.Scope:
presentation-definitions:update
Path parameters
presentationDefinition Id stringrequiredThe
presentationDefinitionIdof the presentation definition, from List presentation definitions or the answer of Create presentation definition.
Body
The members to change. A member that the operation does not declare is refused (<name>: unknown field), also the removed names trustAnchor and kid.
labelstringNew name, at most 100 characters and unique in the organisation. A label of one character or less after trimming keeps the stored label. The labels that the platform extensions use are refused, in any letter case.
At most 100 characters.
dcqlQuery objectThe DCQL query. Required in every update: send the whole query, it replaces the stored one. The rules of the
dcqlQueryof the create operation apply.listedClaims objectNew list of the claims that the dashboard builder shows for each credential query, keyed by the
idof the query. You do not need it with the API.It replaces the stored list;
{}clears it. Each key must be theidof a credential query of the resultingdcqlQuery, and each claim needs a non-emptypath. When you changedcqlQueryand send no list, the stored list is checked against the new query: send the list of the new query, or{}.credentialQuery Options objectNew trust rule of each credential query (
requiresTrustedCredentialSigner,acceptedCredentialSigners), keyed by theidof the query. It replaces the stored options. When you leave it out, the stored options stay, without the options of a credential query that a newdcqlQueryremoves.transactionData Definition Type enum<string>New transaction data template. List transaction data templates gives the JSON Schema of each type.
Available options:
payment_data,payment,login_risk_transaction,login_risk_transaction_non_ts12,account_access,emandate,data_agreement_record,data_disclosure_agreement_record,qes_datatransactionData Credential Ids string[]New
idvalues of thedc+sd-jwtcredential queries that the transaction data binds to. Each must be theidof a credential query of the resultingdcqlQuery.hasVerifier Display Metadata booleantrue: theclient_metadataof the request has the display metadata of the verifier.false: only the members of OpenID4VP 1.0 section 5.1. Changes only when you sendtrueorfalse.clientId Scheme enum<string>New way for the verifier to identify itself to the wallet.
x509_hashandx509_san_dnsneed anx509key.redirect_urigives an unsigned request outside the DC API response modes.Available options:
redirect_uri,verifier_attestation,x509_san_dns,x509_hashdirectPost Redirect Uri stringNew absolute URI that the wallet opens after it posts the response, for
direct_postanddirect_post.jwt.responseMode enum<string>New response mode:
direct_post,direct_post.jwt(encrypted),dc_apiordc_api.jwt(encrypted, over the Digital Credentials API).Available options:
direct_post,direct_post.jwt,dc_api,dc_api.jwtdcApi Request Type enum<string>New DC API request type:
signed(use it in production) orunsigned. Only when the resultingresponseModeisdc_apiordc_api.jwt.Available options:
signed,unsignedexpectedOrigins string[]New web origins of the pages that may send a signed DC API request. Required for a signed request: the stored origins count when the body has none. An empty array clears the origins.
versionenum<string>New protocol:
version_01(OpenID4VP 1.0) oriso18013_7_annex_c(ISO/IEC 18013-7 Annex C).Available options:
version_01,iso18013_7_annex_cscopestringNew OAuth 2.0 scope value, unique in the organisation.
responseType enum<string>New response type.
version_01takes onlyvp_token, andiso18013_7_annex_ctakes onlydevice_response.Available options:
vp_token,device_responseencryptedResponse Enc Values Supported enum<string>[]New JWE content encryption algorithms for a
direct_post.jwtresponse.Available options:
A128CBC-HS256,A128GCM,A256GCMcryptographicKey Format enum<string>Format of the new signing key.
x509needs a key with a certificate chain;iso18013_7_annex_cneedsx509. The removed valuejwkgives HTTP 400.Available options:
x509cryptographicKey Identifier stringThe
kidof the new signing key, from List keys. The server checks it as on create.
Response
The changed presentation definition.
signingKey Warnings string[]The warnings of the signing key, for a key whose certificate preset this use does not accept (also a key with no certificate preset): one text for each rule of this use that its certificate does not fit. Always present; an empty list when there is no warning. The save is not refused.
presentationDefinition objectA presentation definition: the DCQL query of a verifier and the transport settings that each of its verification requests uses. A member without a value is left out, except the required members.