{"openapi":"3.0.0","components":{"examples":{},"headers":{},"parameters":{},"requestBodies":{},"responses":{},"schemas":{"FilterJsonApiResponse":{"type":"object","additionalProperties":{"type":"string","nullable":true,"additionalProperties":false}},"SearchJsonApiResponse":{"type":"object","additionalProperties":{"type":"string","additionalProperties":false}},"MetaJsonApiResponse":{"properties":{"page":{"properties":{"maxSize":{"type":"string"},"after":{"type":"string"},"before":{"type":"string"},"size":{"type":"string"}},"required":["maxSize","size"],"type":"object"},"filter":{"$ref":"#/components/schemas/FilterJsonApiResponse"},"search":{"$ref":"#/components/schemas/SearchJsonApiResponse"},"include":{"type":"string"},"sort":{"items":{"properties":{},"additionalProperties":{"type":"string","enum":["asc","desc"]},"type":"object"},"type":"array"},"prev":{"type":"string"},"next":{"type":"string"}},"required":["page"],"type":"object","additionalProperties":{}},"WalletWebhookSubscription":{"properties":{"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"eventTypes":{"items":{"type":"string"},"type":"array"},"url":{"type":"string"},"walletId":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["updatedAt","createdAt","eventTypes","url","walletId","id","name"],"type":"object"},"JsonApiResponse_WalletWebhookSubscription-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WalletWebhookSubscription"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"WalletId":{"type":"string"},"WalletWebhookSubscriptionWithSecret":{"allOf":[{"$ref":"#/components/schemas/WalletWebhookSubscription"},{"properties":{"signatureSecret":{"type":"string"}},"required":["signatureSecret"],"type":"object"}]},"AppEventType":{"type":"string","enum":["openid4vc.issuance.offered","openid4vc.issuance.offerRetrieved","openid4vc.issuance.deferred","openid4vc.issuance.completed","openid4vc.issuance.failed","openid4vc.issuance.partiallyIssued","openid4vc.issuance.expired","openid4vc.verification.failed","openid4vc.verification.requestRetrieved","openid4vc.verification.requested","openid4vc.verification.data","openid4vc.verification.verified","openid4vc.verification.expired","didcomm.invitation.expired","didcomm.connection.created","didcomm.connection.reused","didcomm.messaging.basic.received","didcomm.messaging.custom.received","didcomm.issuance.offered","didcomm.issuance.completed","didcomm.issuance.failed","didcomm.issuance.expired","didcomm.verification.failed","didcomm.verification.requested","didcomm.verification.verified","didcomm.verification.data","didcomm.verification.expired","didcomm.mediator.connection.active","didcomm.mediator.message.queued","certificate.renewal.required","trustedEntity.etsiLote.update.failed"]},"Wildcards_AppEventType_":{"type":"string","enum":["openid4vc.*","openid4vc.issuance.*","openid4vc.verification.*","didcomm.*","didcomm.invitation.*","didcomm.connection.*","didcomm.messaging.*","didcomm.messaging.basic.*","didcomm.messaging.custom.*","didcomm.issuance.*","didcomm.verification.*","didcomm.mediator.*","didcomm.mediator.connection.*","didcomm.mediator.message.*","certificate.*","certificate.renewal.*","trustedEntity.*","trustedEntity.etsiLote.*","trustedEntity.etsiLote.update.*"]},"WebhookEventType":{"anyOf":[{"$ref":"#/components/schemas/AppEventType"},{"$ref":"#/components/schemas/Wildcards_AppEventType_"},{"type":"string","enum":["*"]}]},"UpdateWebhook":{"properties":{"name":{"type":"string","description":"The new name of the webhook."},"eventTypes":{"items":{"type":"string"},"type":"array","description":"The event types that will trigger the webhook. Replaces the existing set."}},"type":"object","additionalProperties":false},"ReplaceWebhook":{"properties":{"name":{"type":"string","description":"The new name of the webhook."},"eventTypes":{"items":{"type":"string"},"type":"array","description":"The event types that will trigger the webhook. Replaces the existing set."}},"required":["name","eventTypes"],"type":"object","additionalProperties":false},"WalletVerificationDataAccess":{"type":"string","enum":["webhook","once","15min","1week","indefinite"]},"Wallet":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"ownerId":{"type":"string"},"verificationDataAccess":{"$ref":"#/components/schemas/WalletVerificationDataAccess"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","ownerId","verificationDataAccess","createdAt","updatedAt"],"type":"object","additionalProperties":false},"JsonApiResponse_Wallet-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Wallet"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"CreatableWalletVerificationDataAccess":{"type":"string","enum":["webhook","once","15min"]},"CreatableWalletOpenId4VcVersion":{"type":"string","enum":["v1"],"nullable":false},"CreateWallet":{"properties":{"name":{"type":"string","description":"The name of the wallet."},"verificationDataAccess":{"$ref":"#/components/schemas/CreatableWalletVerificationDataAccess","description":"The default data access configuration for verification sessions created through the OpenID4VC or DIDComm API.\n\nThe available options are:\n- `webhook` - only emit verification data as webhook\n- `once` - only allow verification data to be retrieved once, with a limit of 15 minutes\n- `15min` - only allow verification data to be retrieved for 15 minutes\n\nThe default is to emit verification data as webhooks (`webhook`), as we recommend to handle it through webhooks.\nIf you can't rely on webhooks, we recommend setting the access to once (`once`) or for a maximum of 15 minutes (`15min`).\nThis should give enough time to fetch the verification data from our API, before it is removed."},"openId4VcVersion":{"$ref":"#/components/schemas/CreatableWalletOpenId4VcVersion","description":"The version of the OpenID for Verifiable Credentials specification suite to be used.\n\nThe available options are:\n- `v1` - version 1.0 of the OpenID for Verifiable Presentations and OpenID for Verifiable Credential Issuance specifications\n\nNew wallets use version 1.0 of the specifications (`v1`)."}},"required":["name"],"type":"object","additionalProperties":false},"UpdateWallet":{"properties":{"name":{"type":"string","description":"The name of the wallet."},"verificationDataAccess":{"$ref":"#/components/schemas/WalletVerificationDataAccess","description":"The default data access configuration for verification sessions created through the OpenID4VC or DIDComm API.\n\nThe available options are:\n- `webhook` - only emit verification data as webhook\n- `once` - only allow verification data to be retrieved once, with a limit of 15 minutes\n- `15min` - only allow verification data to be retrieved for 15 minutes\n\nThe default is to emit verification data as webhooks (`webhook`), as we recommend to handle it through webhooks.\nIf you can't rely on webhooks, we recommend setting the access to once (`once`) or for a maximum of 15 minutes (`15min`).\nThis should give enough time to fetch the verification data from our API, before it is removed.\n\nThe `1week` and `indefinite` options are deprecated and can no longer be set. Wallets that still use one of these\nvalues may keep it (by sending the same value), but cannot switch to it. We recommend migrating to one of the\nshorter retention periods."}},"required":["name"],"type":"object","additionalProperties":false},"PartialUpdateWallet":{"properties":{"verificationDataAccess":{"$ref":"#/components/schemas/WalletVerificationDataAccess","description":"The default data access configuration for verification sessions created through the OpenID4VC or DIDComm API.\n\nThe available options are:\n- `webhook` - only emit verification data as webhook\n- `once` - only allow verification data to be retrieved once, with a limit of 15 minutes\n- `15min` - only allow verification data to be retrieved for 15 minutes\n\nThe default is to emit verification data as webhooks (`webhook`), as we recommend to handle it through webhooks.\nIf you can't rely on webhooks, we recommend setting the access to once (`once`) or for a maximum of 15 minutes (`15min`).\nThis should give enough time to fetch the verification data from our API, before it is removed.\n\nThe `1week` and `indefinite` options are deprecated and can no longer be set. Wallets that still use one of these\nvalues may keep it (by sending the same value), but cannot switch to it. We recommend migrating to one of the\nshorter retention periods."},"name":{"type":"string","description":"The name of the wallet."}},"type":"object","additionalProperties":false},"WalletOpenId4VcVersion":{"type":"string","enum":["v1","legacy"]},"Bcp47SupportedLocale":{"type":"string","enum":["af","sq","am","ar","hy-AM","az-AZ","bn-BD","eu-ES","be","bg","my-MM","ca","zh-HK","zh-CN","zh-TW","hr","cs-CZ","da-DK","nl-NL","en","en-AU","en-CA","en-US","en-GB","en-IN","en-SG","en-ZA","et","fil","fi-FI","fr-CA","fr-FR","gl-ES","ka-GE","de-DE","el-GR","gu","iw-IL","hi-IN","hu-HU","is-IS","id","it-IT","ja-JP","kn-IN","kk","km-KH","ko-KR","ky-KG","lo-LA","lv","lt","mk-MK","ms-MY","ms","ml-IN","mr-IN","mn-MN","ne-NP","no-NO","fa","fa-AE","fa-AF","fa-IR","pl-PL","pt-BR","pt-PT","pa","ro","rm","ru-RU","sr","si-LK","sk","sl","es-419","es-ES","es-US","sw","sv-SE","ta-IN","te-IN","th","tr-TR","uk","ur","vi"]},"NameLocalizationArray":{"items":{"properties":{"name":{"type":"string"},"locale":{"$ref":"#/components/schemas/Bcp47SupportedLocale"}},"required":["name","locale"],"type":"object"},"type":"array"},"WalletProfile":{"properties":{"localization":{"$ref":"#/components/schemas/NameLocalizationArray","description":"Localization for the profile display name.\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"nl-NL\", \"de-DE\")\nand the translated `name`. Locales must be unique."},"defaultLocale":{"$ref":"#/components/schemas/Bcp47SupportedLocale","description":"The default locale for metadata published in this wallet. This locale will be used\nfor the primary name and description in templates, attributes, and the profile display name.\n\nIf not defined, the default names and descriptions will be included without language identifier.\n\nThe value must be a supported BCP47 language tag (e.g., \"nl-NL\", \"de-DE\"),"},"openId4VciRedirectUri":{"type":"string"},"openId4VcVersion":{"$ref":"#/components/schemas/WalletOpenId4VcVersion"},"wallet":{"properties":{"androidApplicationId":{"type":"string"},"appleApplicationId":{"type":"string"},"baseUrl":{"type":"string"},"name":{"type":"string"}},"required":["baseUrl","name"],"type":"object"},"logo":{"properties":{"altText":{"type":"string"},"url":{"type":"string"}},"required":["url"],"type":"object"},"displayName":{"type":"string"},"id":{"type":"string"}},"required":["openId4VcVersion","displayName","id"],"type":"object"},"UpdateProfile":{"properties":{"displayName":{"type":"string"},"logo":{"properties":{"altText":{"type":"string"},"url":{"type":"string"}},"required":["url"],"type":"object"},"wallet":{"properties":{"appleApplicationId":{"type":"string"},"androidApplicationId":{"type":"string"},"baseUrl":{"type":"string"},"name":{"type":"string"}},"required":["baseUrl","name"],"type":"object","description":"Configure the wallet that should be used for this profile.\nIf not configured, the Paradym Wallet will be used by default.\n\nThis influences the content that is displayed on the invitation page.\n\nNot available on the free tier."},"openId4VcVersion":{"$ref":"#/components/schemas/WalletOpenId4VcVersion","description":"The version of the OpenID for Verifiable Credentials specification suite to be used.\nUpgrading from 'legacy' to 'v1' is a one-way operation and cannot be reverted.\n\nSee [wallet documentation](#tag/wallets/POST/v1/wallets.body.openId4VcVersion) for more details."},"defaultLocale":{"$ref":"#/components/schemas/Bcp47SupportedLocale","description":"The default locale for metadata published in this wallet. This locale will be used\nfor the primary name and description in templates, attributes, and the profile display name.\n\nIf not defined, the default names and descriptions will be included without language identifier.\n\nThe value must be a supported BCP47 language tag (e.g., \"nl-NL\", \"de-DE\"),"},"localization":{"$ref":"#/components/schemas/NameLocalizationArray","description":"Localization for the profile display name.\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"nl-NL\", \"de-DE\")\nand the translated `name`. Locales must be unique."}},"required":["displayName"],"type":"object","additionalProperties":false},"WalletMember":{"properties":{"id":{"type":"string"},"isOwner":{"type":"boolean"},"user":{"properties":{"email":{"type":"string"}},"required":["email"],"type":"object"},"wallet":{"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","isOwner","user","wallet","createdAt","updatedAt"],"type":"object","additionalProperties":false},"JsonApiResponse_WalletMember-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WalletMember"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"AddRemoveWalletMember":{"properties":{"email":{"type":"string"}},"required":["email"],"type":"object","additionalProperties":false},"TrustedEntityEntryType":{"type":"string","enum":["issuer","wallet"]},"TrustedEntityDid":{"properties":{"did":{"type":"string"},"type":{"$ref":"#/components/schemas/TrustedEntityEntryType"},"name":{"type":"string"}},"required":["did"],"type":"object"},"TrustedEntityCertificate":{"properties":{"certificate":{"type":"string"},"type":{"$ref":"#/components/schemas/TrustedEntityEntryType"},"name":{"type":"string"}},"required":["certificate"],"type":"object"},"Partial_Record_CredentialFormat.EtsiLoteCredentialTypeMatcher-Array__":{"properties":{"anoncreds":{"items":{"anyOf":[{"type":"string"},{"properties":{"value":{"type":"string"},"type":{"type":"string","enum":["startsWith"],"nullable":false}},"required":["value","type"],"type":"object"}]},"type":"array"},"sd-jwt-vc":{"items":{"anyOf":[{"type":"string"},{"properties":{"value":{"type":"string"},"type":{"type":"string","enum":["startsWith"],"nullable":false}},"required":["value","type"],"type":"object"}]},"type":"array"},"mdoc":{"items":{"anyOf":[{"type":"string"},{"properties":{"value":{"type":"string"},"type":{"type":"string","enum":["startsWith"],"nullable":false}},"required":["value","type"],"type":"object"}]},"type":"array"}},"type":"object","description":"Make all properties in T optional"},"TrustedEntityEtsiLote":{"properties":{"credentialTypes":{"$ref":"#/components/schemas/Partial_Record_CredentialFormat.EtsiLoteCredentialTypeMatcher-Array__"},"certificate":{"type":"string"},"url":{"type":"string"},"name":{"type":"string"},"type":{"$ref":"#/components/schemas/TrustedEntityEntryType","description":"The trusted-entity entry type (`issuer`/`wallet`). For LoTEs this is determined automatically from\nthe LoTE profile and cannot be changed. Providing a value that conflicts with the detected type is\nrejected. Optional, since it is inferred when omitted."}},"required":["certificate","url"],"type":"object"},"TrustedEtsiLoteType":{"type":"string","enum":["pidProvider","pubEaaProvider","mdlProvider","walletProvider"]},"TrustedEntityEtsiLoteWithStatus":{"allOf":[{"$ref":"#/components/schemas/TrustedEntityEtsiLote"},{"properties":{"nextUpdate":{"type":"string","format":"date-time"},"enabled":{"type":"boolean"},"errors":{"items":{"type":"string"},"type":"array"},"loteType":{"$ref":"#/components/schemas/TrustedEtsiLoteType","description":"The LoTE profile type, derived from its `LoTEType`. Determines whether credential types can be\ncustomized (see {@link trustedEtsiLoteTypeAllowsCustomCredentialTypes}). May be undefined for\nLoTEs stored before the type was tracked, until the next automatic update."}},"required":["enabled","errors"],"type":"object"}]},"TrustedEntity":{"properties":{"etsiLotes":{"items":{"$ref":"#/components/schemas/TrustedEntityEtsiLoteWithStatus"},"type":"array"},"certificates":{"items":{"$ref":"#/components/schemas/TrustedEntityCertificate"},"type":"array"},"dids":{"items":{"$ref":"#/components/schemas/TrustedEntityDid"},"type":"array"},"name":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"id":{"type":"string"}},"required":["etsiLotes","certificates","dids","name","updatedAt","createdAt","id"],"type":"object"},"CreateOrUpdateTrustedEntity":{"properties":{"name":{"type":"string","description":"Name of the trusted entity. This helps with identifying the trusted entity"},"dids":{"items":{"$ref":"#/components/schemas/TrustedEntityDid"},"type":"array","description":"Trusted Decentralized Identifiers (DIDs) from this trusted entity.\n\nAt most 20 DIDs can be added to a trusted entity. DIDs must start with\n`did:web`, `did:cheqd:testnet` or `did:cheqd:mainnet`."},"certificates":{"items":{"$ref":"#/components/schemas/TrustedEntityCertificate"},"type":"array","description":"Trusted X509 certificates from this trusted entity. This doesn't have\nto be the certificate that is used for signing, but can be a root\nor intermediate certificate.\n\nAt most 20 X509 certificates can be added to a trusted entity. The\nX509 certificate must be linked to a key of type RSA, P-256, P-384, P-521,\nEd25519, secp256k1, or X25519."},"etsiLotes":{"items":{"$ref":"#/components/schemas/TrustedEntityEtsiLote"},"type":"array","description":"Trusted EUDI Lists of Trusted Entities (ETSI LoTEs) from this trusted entity.\nAt most 20 ETSI LoTEs can be added to a trusted entity.\n\nThe `type` (`issuer`/`wallet`) of a LoTE is detected automatically from its LoTE profile and\ncannot be overridden; providing a `type` that conflicts with the detected one is rejected.\n\nNOTE: This feature is based on standards that are still in development and\nis therefore subject to change. Use with caution."}},"required":["name"],"type":"object","additionalProperties":false,"example":{"name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"name":"Club Membership PubEAA List","url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"mdoc":["com.example.ClubMembershipCard"]}}]}},"JsonApiResponse_TrustedEntity-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TrustedEntity"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"NameAndDescriptionLocalizationArray":{"items":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"locale":{"$ref":"#/components/schemas/Bcp47SupportedLocale"}},"required":["name","locale"],"type":"object"},"type":"array"},"CredentialTemplateBackground":{"properties":{"url":{"type":"string"},"color":{"type":"string"}},"type":"object"},"CredentialTemplateText":{"properties":{"color":{"type":"string"}},"type":"object"},"CredentialTemplateFutureDate":{"properties":{"days":{"type":"number","format":"double"},"months":{"type":"number","format":"double"},"years":{"type":"number","format":"double"}},"type":"object"},"SdJwtCredentialTemplateValidFrom":{"anyOf":[{"type":"string"},{"properties":{"future":{"$ref":"#/components/schemas/CredentialTemplateFutureDate"}},"required":["future"],"type":"object"}]},"SdJwtCredentialTemplateValidUntil":{"anyOf":[{"type":"string"},{"properties":{"future":{"$ref":"#/components/schemas/CredentialTemplateFutureDate"},"start":{"type":"string","enum":["issuance","validFrom"]}},"required":["future","start"],"type":"object"}]},"CredentialTemplateBaseAttribute":{"properties":{"required":{"type":"boolean","default":true},"description":{"type":"string"},"name":{"type":"string"}},"type":"object"},"CredentialTemplateAttributeWithLocalization":{"allOf":[{"$ref":"#/components/schemas/CredentialTemplateBaseAttribute"},{"properties":{"localization":{"$ref":"#/components/schemas/NameLocalizationArray","description":"Localization for the attribute.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\")\nand the translated `name`. Locales must be unique."}},"type":"object"}]},"SdJwtCredentialTemplateAttributeBase":{"allOf":[{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalization"},{"properties":{"alwaysDisclosed":{"type":"boolean"}},"type":"object"}]},"SdJwtCredentialTemplateAttributePrimitive":{"allOf":[{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttributeBase"},{"properties":{"type":{"type":"string","enum":["string","number","boolean","date","datetime"]}},"required":["type"],"type":"object"}]},"SdJwtCredentialTemplateAttribute":{"anyOf":[{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttributePrimitive"},{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttributeObject"},{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttributeArray"}]},"SdJwtCredentialTemplateAttributeObject":{"properties":{"type":{"type":"string","enum":["object"],"nullable":false},"required":{"type":"boolean","default":true},"name":{"type":"string"},"description":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameLocalizationArray","description":"Localization for the attribute.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\")\nand the translated `name`. Locales must be unique."},"alwaysDisclosed":{"type":"boolean"},"properties":{"additionalProperties":{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttribute","additionalProperties":false},"type":"object"}},"required":["type","properties"],"type":"object","additionalProperties":false},"SdJwtCredentialTemplateAttributeArray":{"properties":{"type":{"type":"string","enum":["array"],"nullable":false},"required":{"type":"boolean","default":true},"name":{"type":"string"},"description":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameLocalizationArray","description":"Localization for the attribute.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\")\nand the translated `name`. Locales must be unique."},"alwaysDisclosed":{"type":"boolean"},"items":{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttribute"}},"required":["type","items"],"type":"object","additionalProperties":false},"SdJwtCredentialTemplateAttributes":{"additionalProperties":{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttribute","additionalProperties":false},"type":"object"},"Record_string.string_":{"additionalProperties":{"type":"string","additionalProperties":false},"type":"object","description":"Construct a type with a set of properties K of type T"},"CredentialTemplateAuthorizationOAuth2":{"properties":{"additionalParameters":{"$ref":"#/components/schemas/Record_string.string_","description":"Additional parameters that will be included in the authorization request to the\nauthorization server. This can be used to send additional parameters that\nare required by your specific authorization server in order to correctly\nprocess your request."},"scopes":{"items":{"type":"string"},"type":"array","description":"The scopes that will be included in the authorization request to the\nauthorization server."},"authorizationServerId":{"type":"string","description":"The ID of the authorization server that will be used for the OAuth2\nauthorization during the credential issuance flow."},"type":{"type":"string","enum":["oauth2"],"nullable":false}},"required":["scopes","authorizationServerId","type"],"type":"object"},"CredentialTemplateAuthorization":{"$ref":"#/components/schemas/CredentialTemplateAuthorizationOAuth2"},"KeyAttestationLevel":{"type":"string","enum":["iso_18045_basic","iso_18045_enhanced-basic","iso_18045_moderate","iso_18045_high"]},"CredentialTemplateKeyAttestations":{"properties":{"userAuthentication":{"items":{"$ref":"#/components/schemas/KeyAttestationLevel"},"type":"array","description":"User authentication attestation levels required for the credential template. If present, at least one level must be specified."},"keyStorage":{"items":{"$ref":"#/components/schemas/KeyAttestationLevel"},"type":"array","description":"Key storage attestation levels required for the credential template. If present, at least one level must be specified."}},"type":"object"},"BaseSdJwtCredentialTemplate":{"properties":{"keyAttestations":{"$ref":"#/components/schemas/CredentialTemplateKeyAttestations","description":"Key attestation requirements. Presence of the object means key attestations are required.\nRequires at least one trusted wallet to be configured."},"attributeProviderId":{"type":"string","description":"The ID of the Attribute Provider that will be used to populate data for\nthis credential's attributes during issuance."},"authorization":{"$ref":"#/components/schemas/CredentialTemplateAuthorization","description":"The authorization mechanism used during the credential issuance flow."},"revocable":{"type":"boolean"},"attributes":{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttributes"},"validUntil":{"$ref":"#/components/schemas/SdJwtCredentialTemplateValidUntil"},"validFrom":{"$ref":"#/components/schemas/SdJwtCredentialTemplateValidFrom"},"text":{"$ref":"#/components/schemas/CredentialTemplateText"},"background":{"$ref":"#/components/schemas/CredentialTemplateBackground"},"type":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameAndDescriptionLocalizationArray","description":"Localization for the credential template name and description.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\"),\nthe translated `name`, and optionally the `description`. Locales must be unique."},"description":{"type":"string"},"name":{"type":"string"}},"required":["revocable","attributes","type","name"],"type":"object"},"SupportedCertificateKeyType":{"type":"string","enum":["P-256","Ed25519"]},"SupportedDidKeyType":{"type":"string","enum":["P-256","Ed25519"]},"SdJwtCredentialTemplateIssuer":{"anyOf":[{"type":"string"},{"properties":{"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType"},"signer":{"type":"string","enum":["certificate"],"nullable":false}},"required":["keyType","signer"],"type":"object"},{"properties":{"keyType":{"$ref":"#/components/schemas/SupportedDidKeyType"},"signer":{"type":"string"}},"required":["keyType","signer"],"type":"object"}]},"SdJwtCredentialTemplate":{"allOf":[{"$ref":"#/components/schemas/BaseSdJwtCredentialTemplate"},{"properties":{"trustedWallets":{"items":{"$ref":"#/components/schemas/TrustedEntity"},"type":"array","description":"Trusted entities whose wallet-typed entries are allowed to receive this credential.\nOnly returned when requesting `?include=trustedWallets`."},"archivedAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"issuer":{"$ref":"#/components/schemas/SdJwtCredentialTemplateIssuer"},"format":{"type":"string","enum":["sd-jwt-vc"],"nullable":false},"id":{"type":"string"}},"required":["archivedAt","updatedAt","createdAt","issuer","format","id"],"type":"object"}]},"JsonApiResponse_SdJwtCredentialTemplate-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SdJwtCredentialTemplate"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"SupportedDidNetwork":{"type":"string","enum":["did:web","did:webvh","did:cheqd:mainnet","did:cheqd:testnet"]},"DidSignerInput":{"anyOf":[{"$ref":"#/components/schemas/SupportedDidNetwork"},{"properties":{"keyType":{"$ref":"#/components/schemas/SupportedDidKeyType"},"signer":{"$ref":"#/components/schemas/SupportedDidNetwork"}},"required":["signer"],"type":"object"}]},"CertificateSignerInput":{"properties":{"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType"},"signer":{"type":"string","enum":["certificate"],"nullable":false}},"required":["signer"],"type":"object"},"SignerInput":{"anyOf":[{"$ref":"#/components/schemas/DidSignerInput"},{"$ref":"#/components/schemas/CertificateSignerInput"}]},"CreateSdJwtCredentialTemplate":{"properties":{"type":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameAndDescriptionLocalizationArray","description":"Localization for the credential template name and description.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\"),\nthe translated `name`, and optionally the `description`. Locales must be unique."},"background":{"$ref":"#/components/schemas/CredentialTemplateBackground"},"text":{"$ref":"#/components/schemas/CredentialTemplateText"},"validFrom":{"$ref":"#/components/schemas/SdJwtCredentialTemplateValidFrom"},"validUntil":{"$ref":"#/components/schemas/SdJwtCredentialTemplateValidUntil"},"attributes":{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttributes"},"authorization":{"$ref":"#/components/schemas/CredentialTemplateAuthorizationOAuth2","description":"The authorization mechanism used during the credential issuance flow."},"attributeProviderId":{"type":"string","description":"The ID of the Attribute Provider that will be used to populate data for\nthis credential's attributes during issuance."},"keyAttestations":{"$ref":"#/components/schemas/CredentialTemplateKeyAttestations","description":"Key attestation requirements. Presence of the object means key attestations are required.\nRequires at least one trusted wallet to be configured."},"issuer":{"$ref":"#/components/schemas/SignerInput"},"revocable":{"type":"boolean","default":false},"trustedWallets":{"items":{"type":"string"},"type":"array","description":"Trusted entity ids whose wallet-typed entries are allowed to receive this credential."}},"required":["type","name","attributes"],"type":"object","additionalProperties":false,"example":{"name":"My SD-JWT VC template","description":"This is a description","issuer":"did:web","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validFrom":"2024-04-11","validUntil":{"start":"validFrom","future":{"months":6}},"type":"UniversityCard","revocable":false,"attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is a attribute","required":true,"alwaysDisclosed":false}},"trustedWallets":["clu6p64z80001a5muhvp2uvpy"]}},"UpdateSdJwtCredentialTemplate":{"properties":{"name":{"type":"string"},"description":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameAndDescriptionLocalizationArray","description":"Localization for the credential template name and description.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\"),\nthe translated `name`, and optionally the `description`. Locales must be unique."},"background":{"$ref":"#/components/schemas/CredentialTemplateBackground"},"text":{"$ref":"#/components/schemas/CredentialTemplateText"},"validFrom":{"$ref":"#/components/schemas/SdJwtCredentialTemplateValidFrom"},"validUntil":{"$ref":"#/components/schemas/SdJwtCredentialTemplateValidUntil"},"attributes":{"$ref":"#/components/schemas/SdJwtCredentialTemplateAttributes"},"authorization":{"$ref":"#/components/schemas/CredentialTemplateAuthorizationOAuth2","description":"The authorization mechanism used during the credential issuance flow."},"attributeProviderId":{"type":"string","description":"The ID of the Attribute Provider that will be used to populate data for\nthis credential's attributes during issuance."},"keyAttestations":{"$ref":"#/components/schemas/CredentialTemplateKeyAttestations","description":"Key attestation requirements. Presence of the object means key attestations are required.\nRequires at least one trusted wallet to be configured."},"trustedWallets":{"items":{"type":"string"},"type":"array","description":"Trusted entity ids whose wallet-typed entries are allowed to receive this credential."}},"required":["name","attributes"],"type":"object","additionalProperties":false,"example":{"name":"My SD-JWT VC template","description":"This is a description","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"start":"validFrom","future":{"months":6}},"attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is a attribute","required":true,"alwaysDisclosed":false}},"trustedWallets":["clu6p64z80001a5muhvp2uvpy"]}},"CredentialTemplatePrimitiveAttributeJsonSchema":{"properties":{"description":{"type":"string"},"title":{"type":"string"},"contentEncoding":{"type":"string"},"pattern":{"type":"string"},"format":{"type":"string"},"type":{"type":"string","enum":["string","number","boolean"]}},"required":["type"],"type":"object"},"CredentialTemplateAttributeJsonSchema":{"anyOf":[{"$ref":"#/components/schemas/CredentialTemplatePrimitiveAttributeJsonSchema"},{"$ref":"#/components/schemas/CredentialTemplateObjectAttributeJsonSchema"},{"$ref":"#/components/schemas/CredentialTemplateArrayAttributeJsonSchema"}]},"CredentialTemplateObjectAttributeJsonSchema":{"properties":{"additionalProperties":{"type":"boolean","enum":[false],"nullable":false},"required":{"items":{"type":"string"},"type":"array"},"properties":{"additionalProperties":{"$ref":"#/components/schemas/CredentialTemplateAttributeJsonSchema","additionalProperties":false},"type":"object"},"description":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["object"],"nullable":false}},"required":["additionalProperties","required","properties","type"],"type":"object"},"CredentialTemplateArrayAttributeJsonSchema":{"properties":{"items":{"$ref":"#/components/schemas/CredentialTemplateAttributeJsonSchema"},"description":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["array"],"nullable":false}},"required":["items","type"],"type":"object"},"CredentialTemplateJsonSchema":{"properties":{"additionalProperties":{"type":"boolean","enum":[false],"nullable":false},"required":{"items":{"type":"string"},"type":"array"},"properties":{"additionalProperties":{"$ref":"#/components/schemas/CredentialTemplateAttributeJsonSchema","additionalProperties":false},"type":"object"},"type":{"type":"string","enum":["object"],"nullable":false},"description":{"type":"string"},"title":{"type":"string"},"$id":{"type":"string"},"$schema":{"type":"string","enum":["https://json-schema.org/draft-07/schema#"],"nullable":false}},"required":["additionalProperties","required","properties","type","title","$id","$schema"],"type":"object"},"SdJwtVcTypeMetadataLocation":{"type":"string","enum":["managed","manual"],"description":"Indicates who is responsible for hosting the Type Metadata document:\n- `\"managed\"` — Paradym automatically publishes it at the `vct` URI.\n- `\"manual\"` — The user provided a custom `vct` URI and must host the document themselves."},"SdJwtVcTypeMetadataLogo":{"properties":{"alt_text":{"type":"string"},"uri#integrity":{"type":"string"},"uri":{"type":"string"}},"required":["uri"],"type":"object","description":"SD-JWT VC Type Metadata.\n\nBased on the SD-JWT VC specification (April 2026 draft):\nhttps://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-08.html#name-sd-jwt-vc-type-metadata\n\nThis is the document that is hosted at the `vct` URI of an SD-JWT VC so that\nwallets and verifiers can resolve the metadata (display, claims and schema)\nof a credential type."},"SdJwtVcTypeMetadataBackgroundImage":{"properties":{"uri#integrity":{"type":"string"},"uri":{"type":"string"}},"required":["uri"],"type":"object"},"SdJwtVcTypeMetadataSimpleRendering":{"properties":{"text_color":{"type":"string"},"background_color":{"type":"string"},"background_image":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataBackgroundImage"},"logo":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataLogo"}},"type":"object"},"SdJwtVcTypeMetadataSvgTemplateProperties":{"properties":{"contrast":{"type":"string","enum":["normal","high"]},"color_scheme":{"type":"string","enum":["light","dark"]},"orientation":{"type":"string","enum":["portrait","landscape"]}},"type":"object"},"SdJwtVcTypeMetadataSvgTemplate":{"properties":{"properties":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataSvgTemplateProperties"},"uri#integrity":{"type":"string"},"uri":{"type":"string"}},"required":["uri"],"type":"object"},"SdJwtVcTypeMetadataDisplay":{"properties":{"rendering":{"properties":{"svg_templates":{"items":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataSvgTemplate"},"type":"array"},"simple":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataSimpleRendering"}},"type":"object"},"description":{"type":"string"},"name":{"type":"string"},"locale":{"type":"string","description":"A language tag as defined in RFC5646 (BCP47), e.g. `en-US`."}},"required":["name","locale"],"type":"object"},"SdJwtVcTypeMetadataClaimDisplay":{"properties":{"description":{"type":"string"},"label":{"type":"string"},"locale":{"type":"string","description":"A language tag as defined in RFC5646 (BCP47), e.g. `en-US`."}},"required":["label","locale"],"type":"object"},"SdJwtVcTypeMetadataClaimSelectiveDisclosure":{"type":"string","enum":["always","allowed","never"],"description":"Indicates whether the claim is selectively disclosable.\n- `always` - the claim is always selectively disclosable.\n- `allowed` - the claim may be selectively disclosable.\n- `never` - the claim is never selectively disclosable."},"SdJwtVcTypeMetadataClaim":{"properties":{"svg_id":{"type":"string"},"sd":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataClaimSelectiveDisclosure"},"mandatory":{"type":"boolean"},"display":{"items":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataClaimDisplay"},"type":"array"},"path":{"items":{"anyOf":[{"type":"string"},{"type":"number","format":"double"}],"nullable":true},"type":"array","description":"The path to the claim within the credential. Strings select object keys,\nnumbers select array indices and `null` selects all items of an array."}},"required":["path"],"type":"object"},"SdJwtVcTypeMetadata":{"properties":{"claims":{"items":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataClaim"},"type":"array"},"display":{"items":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataDisplay"},"type":"array"},"extends#integrity":{"type":"string"},"extends":{"type":"string","description":"A URI of another type that this type extends."},"description":{"type":"string"},"name":{"type":"string"},"vct":{"type":"string","description":"The VCT (verifiable credential type) URI this metadata describes."}},"required":["vct"],"type":"object"},"SdJwtVcTypeMetadataResponse":{"properties":{"typeMetadata":{"$ref":"#/components/schemas/SdJwtVcTypeMetadata"},"typeMetadataLocation":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataLocation"}},"required":["typeMetadata","typeMetadataLocation"],"type":"object","description":"Response type for the type-metadata endpoint.\n\n`typeMetadata` is kept as a nested object so it exactly matches the document that\nshould be hosted at the `vct` URI, without polluting it with `typeMetadataLocation`."},"BatchRevokeResponse":{"properties":{"revokedCredentials":{"items":{"properties":{"notifiedWallet":{"type":"boolean","description":"Whether the wallet was notified of the revocation."},"id":{"type":"string","description":"The IssuedCredential id."}},"required":["notifiedWallet","id"],"type":"object"},"type":"array"}},"required":["revokedCredentials"],"type":"object"},"BatchRevoke":{"properties":{"notifyWallet":{"type":"boolean","description":"Whether to notify the wallet that a credential has been revoked. When multiple\ncredentials are revoked within a batch for the same wallet, the wallet will receive\na separate notification for each revoked credential.\n\nNOTE: this is only supported for Anoncreds credentials issued over Didcomm\nthat have a DidcommConnection linked to it (so not for connectionless issuance).\nThis option will be ignored for unsupported formats, or if no DidcommConnection is\nlinked to the issued credential.\n\nThe wallet is notified based on the [Didcomm Revocation Notification V2 protocol](https://identity.foundation/aries-rfcs/latest/features/0721-revocation-notification-v2/).","default":false},"issuedCredentialIds":{"items":{"type":"string"},"type":"array"}},"required":["issuedCredentialIds"],"type":"object","example":{"issuedCredentialIds":["clu921ps300047eghxvhz33m4"],"notifyWallet":true}},"PresentationTemplateVerifier":{"anyOf":[{"type":"string"},{"properties":{"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType"},"signer":{"type":"string","enum":["certificate"],"nullable":false}},"required":["keyType","signer"],"type":"object"},{"properties":{"keyType":{"$ref":"#/components/schemas/SupportedDidKeyType"},"signer":{"type":"string"}},"required":["keyType","signer"],"type":"object"}]},"PresentationTemplateStringAttribute":{"properties":{"value":{"type":"string"},"type":{"type":"string","enum":["string"],"nullable":false}},"required":["type"],"type":"object"},"PresentationTemplateNumberAttribute":{"properties":{"maximum":{"type":"number","format":"double"},"minimum":{"type":"number","format":"double"},"value":{"type":"number","format":"double"},"type":{"type":"string","enum":["number"],"nullable":false}},"required":["type"],"type":"object"},"PresentationTemplateBooleanAttribute":{"properties":{"value":{"type":"boolean"},"type":{"type":"string","enum":["boolean"],"nullable":false}},"required":["type"],"type":"object"},"PresentationTemplateDateAttribute":{"properties":{"value":{"type":"string"},"type":{"type":"string","enum":["date"],"nullable":false}},"required":["type"],"type":"object"},"PresentationTemplateSdJwtAttributes":{"additionalProperties":{"$ref":"#/components/schemas/PresentationTemplateSdJwtAttribute","additionalProperties":false},"type":"object"},"PresentationTemplateSdJwtAttribute":{"anyOf":[{"$ref":"#/components/schemas/PresentationTemplateStringAttribute"},{"$ref":"#/components/schemas/PresentationTemplateNumberAttribute"},{"$ref":"#/components/schemas/PresentationTemplateBooleanAttribute"},{"$ref":"#/components/schemas/PresentationTemplateDateAttribute"},{"properties":{"properties":{"$ref":"#/components/schemas/PresentationTemplateSdJwtAttributes"},"type":{"type":"string","enum":["object"],"nullable":false}},"required":["properties","type"],"type":"object"},{"properties":{"items":{"$ref":"#/components/schemas/PresentationTemplateSdJwtAttribute"},"type":{"type":"string","enum":["array"],"nullable":false}},"required":["items","type"],"type":"object"},{"$ref":"#/components/schemas/PresentationTemplateEmptyAttribute"}]},"Record_string.never_":{"properties":{},"type":"object","description":"Construct a type with a set of properties K of type T"},"PresentationTemplateEmptyAttribute":{"$ref":"#/components/schemas/Record_string.never_"},"PresentationTemplateSdJwtCredential":{"properties":{"attributes":{"$ref":"#/components/schemas/PresentationTemplateSdJwtAttributes"},"trustedIssuers":{"items":{"$ref":"#/components/schemas/TrustedEntity"},"type":"array","description":"You can include query `?include=credentials.trustedIssuers` to request associated trusted entities"},"issuers":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"format":{"type":"string","enum":["sd-jwt-vc"],"nullable":false},"description":{"type":"string"},"name":{"type":"string"}},"required":["attributes","type","format"],"type":"object"},"PresentationTemplateAnoncredAttribute":{"anyOf":[{"$ref":"#/components/schemas/PresentationTemplateStringAttribute"},{"$ref":"#/components/schemas/PresentationTemplateNumberAttribute"},{"$ref":"#/components/schemas/PresentationTemplateEmptyAttribute"}]},"PresentationTemplateAnoncredAttributes":{"additionalProperties":{"$ref":"#/components/schemas/PresentationTemplateAnoncredAttribute","additionalProperties":false},"type":"object"},"PresentationTemplateAnoncredCredential":{"properties":{"attributes":{"$ref":"#/components/schemas/PresentationTemplateAnoncredAttributes"},"trustedIssuers":{"items":{"$ref":"#/components/schemas/TrustedEntity"},"type":"array","description":"You can include query `?include=credentials.trustedIssuers` to request associated trusted entities"},"issuers":{"items":{"type":"string"},"type":"array"},"schema":{"type":"string"},"format":{"type":"string","enum":["anoncreds"],"nullable":false},"description":{"type":"string"},"name":{"type":"string"}},"required":["attributes","schema","format"],"type":"object"},"PresentationTemplateMdocAttribute":{"properties":{"intentToRetain":{"type":"boolean","description":"Indicate to the wallet whether the attribute will be retained after verification.\n\nThis does not affect any processing in Paradym, and is merely an indication to the wallet.\nIf you store the verified value, set this to `true`.","default":false}},"type":"object"},"PresentationTemplateMdocAttributes":{"additionalProperties":{"properties":{"properties":{"properties":{},"additionalProperties":{"$ref":"#/components/schemas/PresentationTemplateMdocAttribute"},"type":"object"}},"required":["properties"],"type":"object","additionalProperties":false},"type":"object"},"PresentationTemplateMdocCredential":{"properties":{"attributes":{"$ref":"#/components/schemas/PresentationTemplateMdocAttributes"},"trustedIssuers":{"items":{"$ref":"#/components/schemas/TrustedEntity"},"type":"array","description":"You can include query `?include=credentials.trustedIssuers` to request associated trusted entities"},"type":{"type":"string"},"format":{"type":"string","enum":["mdoc"],"nullable":false},"description":{"type":"string"},"name":{"type":"string"}},"required":["attributes","type","format"],"type":"object"},"PresentationTemplateCredential":{"anyOf":[{"$ref":"#/components/schemas/PresentationTemplateSdJwtCredential"},{"$ref":"#/components/schemas/PresentationTemplateAnoncredCredential"},{"$ref":"#/components/schemas/PresentationTemplateMdocCredential"}]},"PresentationTemplate":{"properties":{"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"credentials":{"items":{"$ref":"#/components/schemas/PresentationTemplateCredential"},"type":"array"},"verifier":{"$ref":"#/components/schemas/PresentationTemplateVerifier"},"description":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"}},"required":["updatedAt","createdAt","credentials","description","name","id"],"type":"object"},"JsonApiResponse_PresentationTemplate-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PresentationTemplate"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"CreateOrUpdatePresentationTemplateSdJwtCredential":{"properties":{"type":{"type":"string"},"name":{"type":"string"},"format":{"type":"string","enum":["sd-jwt-vc"],"nullable":false},"description":{"type":"string"},"attributes":{"$ref":"#/components/schemas/PresentationTemplateSdJwtAttributes"},"issuers":{"items":{"type":"string"},"type":"array"},"trustedIssuers":{"items":{"type":"string"},"type":"array"}},"required":["type","format","attributes"],"type":"object","additionalProperties":false},"CreateOrUpdatePresentationTemplateMdocCredential":{"properties":{"type":{"type":"string"},"name":{"type":"string"},"format":{"type":"string","enum":["mdoc"],"nullable":false},"description":{"type":"string"},"attributes":{"$ref":"#/components/schemas/PresentationTemplateMdocAttributes"},"trustedIssuers":{"items":{"type":"string"},"type":"array"}},"required":["type","format","attributes"],"type":"object","additionalProperties":false},"CreateOrUpdatePresentationTemplateAnoncredCredential":{"properties":{"name":{"type":"string"},"format":{"type":"string","enum":["anoncreds"],"nullable":false},"description":{"type":"string"},"attributes":{"$ref":"#/components/schemas/PresentationTemplateAnoncredAttributes"},"issuers":{"items":{"type":"string"},"type":"array"},"schema":{"type":"string"},"trustedIssuers":{"items":{"type":"string"},"type":"array"}},"required":["format","attributes","schema"],"type":"object","additionalProperties":false},"CreateOrUpdatePresentationTemplateCredential":{"anyOf":[{"$ref":"#/components/schemas/CreateOrUpdatePresentationTemplateSdJwtCredential"},{"$ref":"#/components/schemas/CreateOrUpdatePresentationTemplateMdocCredential"},{"$ref":"#/components/schemas/CreateOrUpdatePresentationTemplateAnoncredCredential"}]},"CreateOrUpdatePresentationTemplate":{"properties":{"name":{"type":"string"},"description":{"type":"string"},"verifier":{"$ref":"#/components/schemas/SignerInput"},"credentials":{"items":{"$ref":"#/components/schemas/CreateOrUpdatePresentationTemplateCredential"},"type":"array"}},"required":["name","description","credentials"],"type":"object","additionalProperties":false,"example":{"name":"My SD-JWT VC presentation template","description":"This is a description","credentials":[{"name":"My SD-JWT VC credential","description":"This is a description","format":"sd-jwt-vc","type":"https://metadata.paradym.id/types/28dc88-UniversityCard","trustedIssuers":["clu6p64z80001a5muhvp2uvpy"],"attributes":{"myAttribute1":{"type":"string","value":"myValue"},"myAttribute2":{"type":"number","minimum":1,"maximum":10},"myAttribute3":{"type":"boolean","value":true},"myAttribute4":{"type":"object","properties":{"myNestedAttribute1":{"type":"string","value":"Nested"}}}}},{"name":"My Mdoc credential","description":"This is a description","format":"mdoc","type":"org.iso.18013.5.1.mDL","trustedIssuers":[],"attributes":{"org.iso.18013.5.1":{"properties":{"given_name":{"intentToRetain":false},"family_name":{"intentToRetain":false}}}}}]}},"OpenId4VcVerificationStatus":{"type":"string","enum":["requested","requestRetrieved","verified","failed","expired"]},"OpenId4VcVerifiedCredentialWithoutData":{"properties":{"format":{"type":"string","enum":["anoncreds","sd-jwt-vc","mdoc"]},"exchange":{"type":"string","enum":["openid4vc"],"nullable":false},"isValid":{"type":"boolean"}},"required":["format","exchange","isValid"],"type":"object","additionalProperties":false},"OpenId4VcExchangeProtocol":{"type":"string","enum":["openid4vc"],"nullable":false},"VerifiedCredentialIssuer":{"anyOf":[{"type":"string"},{"properties":{"commonName":{"type":"string","description":"The commonName of the subject in the X.509 certificate"},"certificate":{"type":"string","description":"The X.509 certificate used to sign the credential in PEM format."}},"required":["certificate"],"type":"object"}]},"Record_string.unknown_":{"additionalProperties":{"additionalProperties":false},"type":"object","description":"Construct a type with a set of properties K of type T"},"PresentedAttributes":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"properties":{"maximum":{"type":"number","format":"double"},"minimum":{"type":"number","format":"double"}},"type":"object"},{"$ref":"#/components/schemas/Record_string.unknown_"},{}],"additionalProperties":false}},"OpenId4VcVerifiedCredential":{"properties":{"issuer":{"$ref":"#/components/schemas/VerifiedCredentialIssuer","description":"The issuer of the verified credential.\n\nWhen the credential is issued based on an X.509 certificate it will be an object containing the `certificate` property,\nand optionally the `commonName` extracted from the certificate.\n\nWhen the credential is issued based on a DID, it will be a string containing the did.\n\nNOTE: this parameter can be undefined if presentation data is not stored, or after the retention\nperiod has expired."},"format":{"type":"string","enum":["anoncreds","sd-jwt-vc","mdoc"]},"raw":{"type":"string","description":"The raw representation of the verified credential.\n- For SD JWT VC this is the compact SD-JWT VC (including a KB-JWT)\n- For mDoc it is a base64url encoded DeviceResponse\n- For Anoncreds no raw field is included.\n\nNOTE: this parameter can be undefined if presentation data is not stored, or after the retention\nperiod has expired."},"presentedAttributes":{"$ref":"#/components/schemas/PresentedAttributes","description":"The presented attributes.\n\nNOTE: this parameter can be undefined if presentation data is not stored, or after the retention\nperiod has expired."},"isValid":{"type":"boolean"},"exchange":{"$ref":"#/components/schemas/OpenId4VcExchangeProtocol"},"holder":{"type":"string"}},"required":["format","isValid","exchange","holder"],"type":"object","additionalProperties":false},"BaseError":{"properties":{"details":{"items":{},"type":"array"},"message":{"type":"string"},"code":{"type":"number","format":"double"}},"required":["details","message","code"],"type":"object"},"OpenId4VcVerification":{"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/OpenId4VcVerificationStatus"},"credentials":{"anyOf":[{"items":{"$ref":"#/components/schemas/OpenId4VcVerifiedCredentialWithoutData"},"type":"array"},{"items":{"$ref":"#/components/schemas/OpenId4VcVerifiedCredential"},"type":"array"}]},"error":{"allOf":[{"$ref":"#/components/schemas/BaseError"}],"nullable":true},"presentationTemplateId":{"type":"string"},"authorizationRequestUri":{"type":"string"},"authorizationRequestQrUri":{"type":"string"},"authorizationRequestDeeplinkUri":{"type":"string","description":"Direct deeplink URI using the `openid4vp://` scheme.\n\nUnlike `authorizationRequestUri` (which points to a Paradym or custom wallet universal link),\nthis deeplinks straight into a wallet without a trampoline page."},"authorizationRequestDeeplinkQrUri":{"type":"string","description":"QR image URI whose rendered QR encodes the `authorizationRequestDeeplinkUri` (the `openid4vp://`\ndeeplink) instead of the universal link. You can render this on your website or application directly."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}},"required":["id","status","credentials","error","presentationTemplateId","authorizationRequestUri","authorizationRequestQrUri","authorizationRequestDeeplinkUri","authorizationRequestDeeplinkQrUri","createdAt","updatedAt","expiresAt"],"type":"object","additionalProperties":false},"JsonApiResponse_OpenId4VcVerification-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/OpenId4VcVerification"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"ParadymErrorCode":{"enum":[2000,2001,2002,2003,2005,2006,2007,2008,2009,2010],"type":"number"},"Detail":{"properties":{"message":{"type":"string"}},"additionalProperties":{},"required":["message"],"type":"object"},"ParadymError":{"properties":{"details":{"items":{"$ref":"#/components/schemas/Detail"},"type":"array"},"message":{"type":"string"},"code":{"anyOf":[{"$ref":"#/components/schemas/ParadymErrorCode"},{"type":"number","format":"double"}]}},"required":["details","message","code"],"type":"object","description":"Code is used as the error name. This name is mapped to an error title to the user.\nMessage is used as the error description.\nDetails contains a list of error details. These are rendered as a bullet list to the user."},"CreateOpenId4VcVerification":{"properties":{"presentationTemplateId":{"type":"string"},"requireResponseEncryption":{"type":"boolean","description":"Whether to require the presentation response from the wallet to be encrypted. If enabled, the `response_mode`\nin the request will be set to `direct_post.jwt`. If not enabled, the `response_mode` in the request will\nbe set to `direct_post`. It is recommended to always use response encryption.\n\nWhen requesting mDoc credentials with the **legacy** OpenID4VC version, response encryption is required according\nto ISO 18013-7, and thus `requireResponseEncryption` MUST be enabled. This is the default when requesting any mDoc\ncredentials.\n\nDefaults to `true` when OpenID4VC V1 is used, and when a presentation contains mDOCs with the legacy OpenID4VC version."},"expirationInMinutes":{"type":"number","format":"double","description":"The number of minutes after which the verification session should expire.\nIf not provided, the default expiration time will be used (15 minutes).\n\nMinimum allowed expiration time is 1 minute, and maximum allowed expiration\ntime is 7 days (10080 minutes).","default":15}},"required":["presentationTemplateId"],"type":"object","additionalProperties":false},"OpenId4VcIssuanceStatus":{"type":"string","enum":["offered","offerRetrieved","partiallyIssued","completed","failed","expired"]},"OpenId4VcCredentialFormat":{"type":"string","enum":["sd-jwt-vc","mdoc"]},"IssuedCredentialStatus":{"type":"string","enum":["offered","deferred","issued","failed","revoked","expired"]},"OpenId4VcIssuanceIssuedCredential":{"properties":{"id":{"type":"string"},"revocable":{"type":"boolean","description":"Whether the credential is revocable. `true` if the credential is issued with revocation. The current\nstate (so whether it can be revoked at the moment) has no impact on this."},"credentialTemplateId":{"type":"string"},"status":{"$ref":"#/components/schemas/IssuedCredentialStatus"},"format":{"$ref":"#/components/schemas/OpenId4VcCredentialFormat"},"exchange":{"$ref":"#/components/schemas/OpenId4VcExchangeProtocol"}},"required":["id","revocable","credentialTemplateId","status","format","exchange"],"type":"object","additionalProperties":false},"OpenId4VcIssuance":{"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/OpenId4VcIssuanceStatus"},"credentials":{"items":{"$ref":"#/components/schemas/OpenId4VcIssuanceIssuedCredential"},"type":"array"},"error":{"allOf":[{"$ref":"#/components/schemas/BaseError"}],"nullable":true},"offerUri":{"type":"string"},"offerQrUri":{"type":"string"},"offerDeeplinkUri":{"type":"string","description":"Direct deeplink URI using the `openid-credential-offer://` scheme.\n\nUnlike `offerUri` (which points to a Paradym or custom wallet universal link), this deeplinks\nstraight into a wallet without a trampoline page."},"offerDeeplinkQrUri":{"type":"string","description":"QR image URI whose rendered QR encodes the `offerDeeplinkUri` (the `openid-credential-offer://`\ndeeplink) instead of the universal link. You can render this on your website or application directly."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}},"required":["id","status","credentials","error","offerUri","offerQrUri","offerDeeplinkUri","offerDeeplinkQrUri","createdAt","updatedAt","expiresAt"],"type":"object","additionalProperties":false},"JsonApiResponse_OpenId4VcIssuance-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/OpenId4VcIssuance"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"Record_string.any_":{"additionalProperties":{"additionalProperties":false},"type":"object","description":"Construct a type with a set of properties K of type T"},"CreateOpenId4VcIssuanceOfferSdJwtVcCredential":{"properties":{"credentialTemplateId":{"type":"string"},"attributes":{"$ref":"#/components/schemas/Record_string.any_","description":"The data to be included in the credential. Can be omitted if the template\nis configured to use an attribute provider."}},"required":["credentialTemplateId"],"type":"object","additionalProperties":false},"Record_string.Record_string.any__":{"additionalProperties":{"$ref":"#/components/schemas/Record_string.any_","additionalProperties":false},"type":"object","description":"Construct a type with a set of properties K of type T"},"CreateOpenId4VcIssuanceOfferMdocCredential":{"properties":{"credentialTemplateId":{"type":"string"},"attributes":{"$ref":"#/components/schemas/Record_string.Record_string.any__","description":"The data to be included in the credential. Can be omitted if the template\nis configured to use an attribute provider."}},"required":["credentialTemplateId"],"type":"object","additionalProperties":false},"CreateOpenId4VcIssuanceOfferCredential":{"anyOf":[{"$ref":"#/components/schemas/CreateOpenId4VcIssuanceOfferSdJwtVcCredential"},{"$ref":"#/components/schemas/CreateOpenId4VcIssuanceOfferMdocCredential"}]},"CreateOpenId4VcIssuanceOffer":{"properties":{"credentials":{"items":{"$ref":"#/components/schemas/CreateOpenId4VcIssuanceOfferCredential"},"type":"array","description":"The credentials to be issued in this issuance offer."},"expirationInMinutes":{"type":"number","format":"double","description":"The number of minutes after which the offer should expire. If not provided,\nthe default expiration time will be used (15 minutes).\n\nMinimum allowed expiration time is 1 minute, and maximum allowed\nexpiration time is 7 days (10080 minutes).","default":15}},"required":["credentials"],"type":"object","additionalProperties":false},"MdocCredentialTemplateValidUntil":{"properties":{"future":{"$ref":"#/components/schemas/CredentialTemplateFutureDate"},"start":{"type":"string","enum":["issuance"],"nullable":false}},"required":["future"],"type":"object"},"CredentialTemplatePrimitiveAttributeType":{"type":"string","enum":["string","number","boolean","date","datetime","binary"]},"CredentialTemplateAttributeWithLocalizationPrimitive":{"allOf":[{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalization"},{"properties":{"type":{"$ref":"#/components/schemas/CredentialTemplatePrimitiveAttributeType"}},"type":"object"}]},"CredentialTemplateAttributeWithLocalizationFull":{"anyOf":[{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalizationPrimitive"},{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalizationObject"},{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalizationArray"}]},"Record_string.CredentialTemplateAttributeWithLocalizationFull_":{"additionalProperties":{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalizationFull","additionalProperties":false},"type":"object","description":"Construct a type with a set of properties K of type T"},"CredentialTemplateAttributeWithLocalizationObject":{"allOf":[{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalization"},{"properties":{"properties":{"$ref":"#/components/schemas/Record_string.CredentialTemplateAttributeWithLocalizationFull_"},"type":{"type":"string","enum":["object"],"nullable":false}},"required":["properties","type"],"type":"object"}]},"CredentialTemplateAttributeWithLocalizationArray":{"allOf":[{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalization"},{"properties":{"items":{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalizationFull"},"type":{"type":"string","enum":["array"],"nullable":false}},"required":["items","type"],"type":"object"}]},"MdocCredentialTemplateAttribute":{"$ref":"#/components/schemas/CredentialTemplateAttributeWithLocalizationFull"},"MdocCredentialTemplateAttributes":{"additionalProperties":{"properties":{"properties":{"properties":{},"additionalProperties":{"$ref":"#/components/schemas/MdocCredentialTemplateAttribute"},"type":"object"},"type":{"type":"string","enum":["object"],"nullable":false}},"required":["properties"],"type":"object","additionalProperties":false},"type":"object"},"BaseMdocCredentialTemplate":{"properties":{"keyAttestations":{"$ref":"#/components/schemas/CredentialTemplateKeyAttestations","description":"Key attestation requirements. Presence of the object means key attestations are required.\nRequires at least one trusted wallet to be configured."},"attributeProviderId":{"type":"string","description":"The ID of the Attribute Provider that will be used to populate data for\nthis credential's attributes during issuance."},"authorization":{"$ref":"#/components/schemas/CredentialTemplateAuthorization","description":"The authorization mechanism used during the credential issuance flow."},"revocable":{"type":"boolean"},"attributes":{"$ref":"#/components/schemas/MdocCredentialTemplateAttributes"},"validUntil":{"$ref":"#/components/schemas/MdocCredentialTemplateValidUntil"},"text":{"$ref":"#/components/schemas/CredentialTemplateText"},"background":{"$ref":"#/components/schemas/CredentialTemplateBackground"},"type":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameAndDescriptionLocalizationArray","description":"Localization for the credential template name and description.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\"),\nthe translated `name`, and optionally the `description`. Locales must be unique."},"description":{"type":"string"},"name":{"type":"string"}},"required":["revocable","attributes","validUntil","type","name"],"type":"object"},"CertificateSigner":{"properties":{"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType"},"signer":{"type":"string","enum":["certificate"],"nullable":false}},"required":["keyType","signer"],"type":"object"},"MdocCredentialTemplate":{"allOf":[{"$ref":"#/components/schemas/BaseMdocCredentialTemplate"},{"properties":{"trustedWallets":{"items":{"$ref":"#/components/schemas/TrustedEntity"},"type":"array","description":"Trusted entities whose wallet-typed entries are allowed to receive this credential.\nOnly returned when requesting `?include=trustedWallets`."},"archivedAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"issuer":{"$ref":"#/components/schemas/CertificateSigner"},"format":{"type":"string","enum":["mdoc"],"nullable":false},"id":{"type":"string"}},"required":["archivedAt","updatedAt","createdAt","issuer","format","id"],"type":"object"}]},"JsonApiResponse_MdocCredentialTemplate-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/MdocCredentialTemplate"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"CreateMdocCredentialTemplate":{"properties":{"type":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameAndDescriptionLocalizationArray","description":"Localization for the credential template name and description.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\"),\nthe translated `name`, and optionally the `description`. Locales must be unique."},"background":{"$ref":"#/components/schemas/CredentialTemplateBackground"},"text":{"$ref":"#/components/schemas/CredentialTemplateText"},"validUntil":{"$ref":"#/components/schemas/MdocCredentialTemplateValidUntil"},"attributes":{"$ref":"#/components/schemas/MdocCredentialTemplateAttributes"},"authorization":{"$ref":"#/components/schemas/CredentialTemplateAuthorizationOAuth2","description":"The authorization mechanism used during the credential issuance flow."},"attributeProviderId":{"type":"string","description":"The ID of the Attribute Provider that will be used to populate data for\nthis credential's attributes during issuance."},"keyAttestations":{"$ref":"#/components/schemas/CredentialTemplateKeyAttestations","description":"Key attestation requirements. Presence of the object means key attestations are required.\nRequires at least one trusted wallet to be configured."},"issuer":{"$ref":"#/components/schemas/CertificateSignerInput"},"revocable":{"type":"boolean","default":false},"trustedWallets":{"items":{"type":"string"},"type":"array","description":"Trusted entity ids whose wallet-typed entries are allowed to receive this credential."}},"required":["type","name","validUntil","attributes","issuer"],"type":"object","additionalProperties":false,"example":{"name":"My mDoc template","description":"This is a description","issuer":{"signer":"certificate","keyType":"P-256"},"revocable":false,"type":"org.example.ClubMembershipCard","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"future":{"months":6}},"attributes":{"org.example.ClubMembershipCard":{"properties":{"number":{"type":"number","name":"Membership number","description":"This is your membership number","required":true}}}},"trustedWallets":["clu6p64z80001a5muhvp2uvpy"]}},"UpdateMdocCredentialTemplate":{"properties":{"name":{"type":"string"},"description":{"type":"string"},"localization":{"$ref":"#/components/schemas/NameAndDescriptionLocalizationArray","description":"Localization for the credential template name and description.\n\nAn array of objects, each with a `locale` BCP47 language tag (e.g., \"en\", \"nl-NL\", \"de-DE\"),\nthe translated `name`, and optionally the `description`. Locales must be unique."},"background":{"$ref":"#/components/schemas/CredentialTemplateBackground"},"text":{"$ref":"#/components/schemas/CredentialTemplateText"},"validUntil":{"$ref":"#/components/schemas/MdocCredentialTemplateValidUntil"},"attributes":{"$ref":"#/components/schemas/MdocCredentialTemplateAttributes"},"authorization":{"$ref":"#/components/schemas/CredentialTemplateAuthorizationOAuth2","description":"The authorization mechanism used during the credential issuance flow."},"attributeProviderId":{"type":"string","description":"The ID of the Attribute Provider that will be used to populate data for\nthis credential's attributes during issuance."},"keyAttestations":{"$ref":"#/components/schemas/CredentialTemplateKeyAttestations","description":"Key attestation requirements. Presence of the object means key attestations are required.\nRequires at least one trusted wallet to be configured."},"trustedWallets":{"items":{"type":"string"},"type":"array","description":"Trusted entity ids whose wallet-typed entries are allowed to receive this credential."}},"required":["name","validUntil","attributes"],"type":"object","additionalProperties":false,"example":{"name":"My mDoc template","description":"This is a description","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"future":{"months":6}},"attributes":{"org.example.ClubMembershipCard":{"properties":{"number":{"type":"number","name":"Membership number","description":"This is your membership number","required":true}}}},"trustedWallets":["clu6p64z80001a5muhvp2uvpy"]}},"ManagedKeyStatus":{"type":"string","enum":["active","pendingDeletion","deleted"],"description":"Where a key is in its lifecycle."},"SupportedKeyBackend":{"type":"string","enum":["software","gcpKms","openbao"]},"AvailableKeyBackend":{"description":"A key backend a wallet can select, and what it can do.","properties":{"id":{"type":"string","description":"Pass this as `keyBackend` when creating a certificate or signing request. For a globally-enabled\nbackend this equals its `type`."},"type":{"$ref":"#/components/schemas/SupportedKeyBackend","description":"The backend `type` this entry is for."},"name":{"type":"string","description":"Human-readable label for the backend, used to display the option in the dashboard."},"keyTypes":{"items":{"$ref":"#/components/schemas/SupportedCertificateKeyType"},"type":"array","description":"The certificate key types this backend can create."}},"required":["id","type","name","keyTypes"],"type":"object","additionalProperties":false},"CertificateType":{"type":"string","enum":["verifierRoot","verifierSignRequest","verifierIntermediate","issuerRoot","issuerSignCredential","issuerIntermediate"]},"CertificateStatus":{"type":"string","enum":["pendingActivation","active","inactive","pendingRevocation","revoked","expired"]},"CertificateCapabilities":{"description":"Indicates the supported capabilities for a certificate,\nfor example the `signMdl` capability needed to sign mDL credentials.","properties":{"signMdl":{"type":"boolean","description":"The signMdl capability enables signing ISO 18013-5 mDLs, and ensures the `mdlDS` extended key usage\nis present in the certificate. When this capability is enabled, the certificate adheres to\nDocument Signer Certificate requirements as defined in ISO 18013-5 Table B.3.\n\nNOTE: This capability only covers signing of mDLs. Without this capability on the certificate,\nyou cannot issue mDLs. ISO 23220-4 is a **pending** standard that defines generic mDoc signing capabilities,\nand introduces a new `mdocDS` extended key usage. In the future an additional capability will be added\nfor this, which will impact non-mDL signing.\n\nThis capability can only be enabled for `issuerSignCredential` certificates, for which it is enabled by default."}},"type":"object","additionalProperties":false},"Certificate":{"properties":{"id":{"type":"string"},"certificate":{"type":"string"},"type":{"$ref":"#/components/schemas/CertificateType"},"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType"},"subjectKeyIdentifier":{"type":"string"},"status":{"$ref":"#/components/schemas/CertificateStatus"},"isExternallySigned":{"type":"boolean"},"parentCertificateId":{"type":"string","description":"The id of the parent certificate.\n\nNot set for externally signed certificates. Use `isExternallySigned` to\ndetermine whether the certificate was signed by an external CA."},"capabilities":{"$ref":"#/components/schemas/CertificateCapabilities"},"keyId":{"type":"string","description":"The key this certificate signs with, as the id of the key resource, so it can be looked up or\ndeleted directly.\n\nAbsent only for a certificate created before the key id was recorded alongside it, which is\nalways software-backed. The `backfill-managed-keys` job fills these in where it is run; without\nit they stay absent."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}},"required":["id","certificate","type","keyType","subjectKeyIdentifier","status","isExternallySigned","createdAt","updatedAt","expiresAt"],"type":"object","additionalProperties":false},"CertificateSigningRequestType":{"type":"string","enum":["verifierSignRequest","issuerSignCredential"]},"CertificateSigningRequestStatus":{"type":"string","enum":["active","imported","expired"]},"CertificateSigningRequest":{"properties":{"id":{"type":"string"},"certificateSigningRequest":{"type":"string"},"subjectKeyIdentifier":{"type":"string"},"type":{"$ref":"#/components/schemas/CertificateSigningRequestType"},"status":{"$ref":"#/components/schemas/CertificateSigningRequestStatus"},"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType"},"certificateId":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","certificateSigningRequest","subjectKeyIdentifier","type","status","keyType","createdAt","updatedAt"],"type":"object","additionalProperties":false},"ManagedKey":{"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/ManagedKeyStatus"},"keyBackend":{"$ref":"#/components/schemas/AvailableKeyBackend","description":"The backend this key lives on, in the same shape `GET /key-backends` returns. Only returned when you\nrequest `?include=keyBackend`."},"backendKeyId":{"type":"string","description":"The key's identifier in its backend. Not unique across backends, so use `id` to address a key.\nOnly returned on on-premise deployments."},"certificate":{"$ref":"#/components/schemas/Certificate","description":"The certificate this key signs for. Only returned when you request `?include=certificate`."},"certificateSigningRequest":{"$ref":"#/components/schemas/CertificateSigningRequest","description":"The certificate signing request this key was created for. Only returned when you request\n`?include=certificateSigningRequest`."},"scheduledDeletionAt":{"type":"string","format":"date-time","description":"When the key material is expected to be destroyed."},"deletedAt":{"type":"string","format":"date-time","description":"When the key material was destroyed."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","status","createdAt","updatedAt"],"type":"object","additionalProperties":false},"JsonApiResponse_ManagedKey-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ManagedKey"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"AvailableKeyBackends":{"description":"The key backends enabled and configured for the deployment.","properties":{"keyBackends":{"items":{"$ref":"#/components/schemas/AvailableKeyBackend"},"type":"array"}},"required":["keyBackends"],"type":"object","additionalProperties":false},"ExchangeProtocol":{"type":"string","enum":["openid4vc","didcomm"]},"CredentialFormat":{"type":"string","enum":["anoncreds","sd-jwt-vc","mdoc"]},"IssuedCredential":{"properties":{"id":{"type":"string"},"credentialTemplateId":{"type":"string"},"status":{"$ref":"#/components/schemas/IssuedCredentialStatus"},"exchange":{"$ref":"#/components/schemas/ExchangeProtocol"},"format":{"$ref":"#/components/schemas/CredentialFormat"},"revocable":{"type":"boolean","description":"Whether the credential is revocable. `true` if the credential is issued with revocation. The current\nstate (so whether it can be revoked at the moment) has no impact on this."}},"required":["id","credentialTemplateId","status","format","revocable"],"type":"object","additionalProperties":false},"JsonApiResponse_IssuedCredential-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/IssuedCredential"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"SdJwtVcCredentialFormat":{"type":"string","enum":["sd-jwt-vc"],"nullable":false},"IssuedCredentialStatusIssued":{"type":"string","enum":["issued"],"nullable":false},"SdJwtDirectIssuanceIssuedCredential":{"properties":{"id":{"type":"string"},"revocable":{"type":"boolean","description":"Whether the credential is revocable. `true` if the credential is issued with revocation. The current\nstate (so whether it can be revoked at the moment) has no impact on this."},"credentialTemplateId":{"type":"string"},"format":{"$ref":"#/components/schemas/SdJwtVcCredentialFormat"},"status":{"$ref":"#/components/schemas/IssuedCredentialStatusIssued"}},"required":["id","revocable","credentialTemplateId","format","status"],"type":"object","additionalProperties":false},"DirectlyIssueSdJwtVcResponse":{"properties":{"sdJwtVc":{"properties":{"decoded":{"$ref":"#/components/schemas/Record_string.unknown_"},"encoded":{"type":"string"}},"required":["decoded","encoded"],"type":"object"},"credential":{"$ref":"#/components/schemas/SdJwtDirectIssuanceIssuedCredential"}},"required":["sdJwtVc","credential"],"type":"object"},"DirectlyIssueSdJwtVcCredentialAttributes":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"number","format":"double"},{"$ref":"#/components/schemas/DirectlyIssueSdJwtVcCredentialAttributes"}],"additionalProperties":false}},"DirectlyIssueSdJwtVcCredential":{"properties":{"attributes":{"$ref":"#/components/schemas/DirectlyIssueSdJwtVcCredentialAttributes"},"credentialTemplateId":{"type":"string"}},"required":["attributes","credentialTemplateId"],"type":"object"},"DirectlyIssueSdJwtVc":{"properties":{"credential":{"$ref":"#/components/schemas/DirectlyIssueSdJwtVcCredential"}},"required":["credential"],"type":"object","example":{"credential":{"credentialTemplateId":"clu921ps300047eghxvhz33m4","attributes":{"name":"John Doe"}}}},"SupportedDidMethod":{"type":"string","enum":["web","webvh","cheqd"]},"Did":{"properties":{"id":{"type":"string"},"did":{"type":"string"},"network":{"$ref":"#/components/schemas/SupportedDidNetwork"},"method":{"$ref":"#/components/schemas/SupportedDidMethod"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","did","network","method","createdAt","updatedAt"],"type":"object","additionalProperties":false},"JsonApiResponse_Did-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Did"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"DidcommConnection":{"properties":{"id":{"type":"string"},"displayName":{"type":"string","nullable":true},"logoUrl":{"type":"string","nullable":true},"ourDid":{"type":"string"},"theirDid":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","displayName","logoUrl","ourDid","theirDid","createdAt","updatedAt"],"type":"object","additionalProperties":false},"JsonApiResponse_DidcommConnection-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DidcommConnection"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"UpdateDidcommConnection":{"properties":{"displayName":{"type":"string","description":"Display name of the connection. If not provided the current value will be used."}},"type":"object","additionalProperties":false,"example":{"displayName":"My connection name"}},"DidcommInvitationStatus":{"type":"string","enum":["active","completed","expired"]},"SupportedDidcommNetwork":{"type":"string","enum":["did:web"],"nullable":false},"DidcommInvitation":{"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/DidcommInvitationStatus"},"reusable":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"did":{"$ref":"#/components/schemas/SupportedDidcommNetwork","description":"The public DID used for the didcomm invitation, if any. Will start with `did:web:`.\n\nOnly available if the invitation was created with the `did` parameter provided."},"invitationUri":{"type":"string"},"invitationQrUri":{"type":"string"},"invitationDeeplinkUri":{"type":"string","description":"Direct deeplink URI using the `didcomm://` scheme.\n\nUnlike `invitationUri` (which points to a Paradym or custom wallet universal link), this deeplinks\nstraight into a wallet without a trampoline page."},"invitationDeeplinkQrUri":{"type":"string","description":"QR image URI whose rendered QR encodes the `invitationDeeplinkUri` (the `didcomm://` deeplink)\ninstead of the universal link. You can render this on your website or application directly."}},"required":["id","status","reusable","createdAt","updatedAt","expiresAt","invitationUri","invitationQrUri","invitationDeeplinkUri","invitationDeeplinkQrUri"],"type":"object","additionalProperties":false,"example":{"id":"clu129ps200043eghxvhz22m1","status":"completed","did":"did:web","invitationUri":"https://paradym.id/invitation/732ae5d3-fc25-49d9-ad72-89a8294b1707","invitationQrUri":"https://paradym.id/invitation/732ae5d3-fc25-49d9-ad72-89a8294b1707?qr=true","invitationDeeplinkUri":"didcomm://?oobUrl=https%3A%2F%2Fparadym.id%2Finvitation%2F732ae5d3-fc25-49d9-ad72-89a8294b1707%3Fraw%3Dtrue","invitationDeeplinkQrUri":"https://paradym.id/invitation/732ae5d3-fc25-49d9-ad72-89a8294b1707?qr=true&deeplink=true","reusable":false,"createdAt":"2024-05-30T00:00:00.000Z","updatedAt":"2024-05-30T00:00:00.000Z","expiresAt":"2024-06-30T00:00:00.000Z"}},"JsonApiResponse_DidcommInvitation-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DidcommInvitation"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"OutOfBandInvitation":{"properties":{"@type":{"type":"string"},"@id":{"type":"string"}},"required":["@type","@id"],"type":"object","additionalProperties":{}},"ReceiveDidcommInvitation":{"properties":{"didcommInvitation":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/OutOfBandInvitation"}],"description":"The DIDComm invitation to receive. Can be either an invitation URL or the JSON payload of the invitation."},"displayName":{"type":"string","description":"Display name of the connection, if not provided the displayName as provided by the other party in the invitation will be used."}},"required":["didcommInvitation"],"type":"object","additionalProperties":false,"example":{"didcommInvitation":"https://paradym.id/invitation/469feee5-5363-4a1b-b8a5-e2ad3fc8ae4f"}},"CreateDidcommConnectionInvitation":{"properties":{"reusable":{"type":"boolean","description":"Whether the invitation is reusable (can be used multiple times).","default":false},"did":{"$ref":"#/components/schemas/SupportedDidcommNetwork","description":"did to use for the DIDComm invitation. Only the did method and network\nhas to provided (e.g. `did:web`).\n\nIf no did is provided a new `did:peer` did will be used that\nis also used for the connection.\n\nIf a did is provided the did will be used in the invitation and allows\nwallet to reuse connections and recognize the inviter based on the provided did.\n\nThe created connection will always use a new `did:peer` did, so the did is only\nused for the invitation."},"goal":{"properties":{"description":{"type":"string","description":"Human readable string that describes the goal for creating the connection."},"code":{"type":"string","description":"Machine readable string that describes the goal for creating the connection.\nCommonly used values for goalCode are `issue-vc`, `request-proof`, `create-account`, or `p2p-messaging`."}},"required":["description"],"type":"object"}},"type":"object","additionalProperties":false,"example":{"reusable":false,"goal":{"description":"I would like to create a connection for chatting","code":"p2p-messaging"}}},"DidcommExchangeProtocol":{"type":"string","enum":["didcomm"],"nullable":false},"DidcommVerifiedCredential":{"properties":{"issuer":{"$ref":"#/components/schemas/VerifiedCredentialIssuer","description":"The issuer of the verified credential.\n\nWhen the credential is issued based on an X.509 certificate it will be an object containing the `certificate` property,\nand optionally the `commonName` extracted from the certificate.\n\nWhen the credential is issued based on a DID, it will be a string containing the did.\n\nNOTE: this parameter can be undefined if presentation data is not stored, or after the retention\nperiod has expired."},"format":{"type":"string","enum":["anoncreds","sd-jwt-vc","mdoc"]},"holder":{"type":"string","description":"The holder of the credential.\n- When the credential is bound to a did, this will be the did of the holder\n- When the credential is bound to a JWK or public key, this will be a JWK thumbprint uri\n- For AnonCreds credentials no holder is returned\n\nNOTE: this parameter can be undefined if presentation data is not stored, or after the retention\nperiod has expired."},"raw":{"type":"string","description":"The raw representation of the verified credential.\n- For SD JWT VC this is the compact SD-JWT VC (including a KB-JWT)\n- For mDoc it is a base64url encoded DeviceResponse\n- For Anoncreds no raw field is included.\n\nNOTE: this parameter can be undefined if presentation data is not stored, or after the retention\nperiod has expired."},"presentedAttributes":{"$ref":"#/components/schemas/PresentedAttributes","description":"The presented attributes.\n\nNOTE: this parameter can be undefined if presentation data is not stored, or after the retention\nperiod has expired."},"isValid":{"type":"boolean"},"exchange":{"$ref":"#/components/schemas/DidcommExchangeProtocol"}},"required":["format","isValid","exchange"],"type":"object","additionalProperties":false},"DidcommVerifiedCredentialWithoutData":{"properties":{"format":{"type":"string","enum":["anoncreds","sd-jwt-vc","mdoc"]},"exchange":{"type":"string","enum":["didcomm"],"nullable":false},"isValid":{"type":"boolean"}},"required":["format","exchange","isValid"],"type":"object","additionalProperties":false},"DidcommVerificationStatus":{"type":"string","enum":["requested","verified","failed","expired"]},"DidcommVerification":{"properties":{"id":{"type":"string"},"credentials":{"anyOf":[{"items":{"$ref":"#/components/schemas/DidcommVerifiedCredential"},"type":"array"},{"items":{"$ref":"#/components/schemas/DidcommVerifiedCredentialWithoutData"},"type":"array"}]},"status":{"$ref":"#/components/schemas/DidcommVerificationStatus"},"error":{"$ref":"#/components/schemas/BaseError"},"didcommConnectionId":{"type":"string"},"didcommInvitationId":{"type":"string"},"presentationTemplateId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}},"required":["id","credentials","status","presentationTemplateId","createdAt","updatedAt","expiresAt"],"type":"object","additionalProperties":false,"example":{"id":"clu129ps200043eghxvhz22m1","status":"verified","presentationTemplateId":"clu129ps200043eghxvhz22m1","didcommConnectionId":"clu129ps200043eghxvhz22m1","didcommInvitationId":"clu129ps200043eghxvhz22m1","credentials":[{"presentedAttributes":{"name":"John Doe","age":{"minimum":18}},"exchange":"didcomm","format":"anoncreds","issuer":"did:cheqd:mainnet:d1479ee0-41f8-4ad6-9575-fc103f75859a","isValid":true}],"createdAt":"2024-05-30T00:00:00.000Z","updatedAt":"2024-05-30T00:00:00.000Z","expiresAt":"2024-06-30T00:00:00.000Z"}},"JsonApiResponse_DidcommVerification-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DidcommVerification"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"RequestDidcommVerificationResponse":{"properties":{"didcommVerification":{"$ref":"#/components/schemas/DidcommVerification"},"didcommInvitation":{"$ref":"#/components/schemas/DidcommInvitation"}},"required":["didcommVerification"],"type":"object"},"RequestDidcommVerification":{"allOf":[{"properties":{"presentationTemplateId":{"type":"string"},"goal":{"properties":{"description":{"type":"string"},"code":{"type":"string"}},"required":["description","code"],"type":"object"}},"required":["presentationTemplateId"],"type":"object"},{"anyOf":[{"properties":{"didcommInvitation":{"properties":{"did":{"type":"string"},"createConnection":{"type":"boolean"}},"type":"object"}},"type":"object"},{"properties":{"didcommConnectionId":{"type":"string"}},"type":"object"}]}],"example":{"didcommInvitation":{"createConnection":true},"goal":{"code":"someCode","description":"someDescription"},"presentationTemplateId":"clw6b9rwv000108l2628uae9z"}},"SendDidcommBasicMessageResponse":{"properties":{"didcommConnectionId":{"type":"string"},"message":{"type":"string"},"messageId":{"type":"string"},"replyMessageId":{"type":"string"},"sentTime":{"type":"string","format":"date-time"}},"required":["didcommConnectionId","message","messageId","sentTime"],"type":"object","additionalProperties":false},"SendDidcommBasicMessage":{"properties":{"didcommConnectionId":{"type":"string"},"message":{"type":"string"},"replyMessageId":{"type":"string","description":"Optional, the message id to which this message is a reply (parentThreadId)."}},"required":["didcommConnectionId","message"],"type":"object","additionalProperties":false,"example":{"didcommConnectionId":"<connection-id>","message":"Hello, world!","replyMessageId":"3599326d-e70f-4603-af9c-534b613f1f6c"}},"SendDidcommCustomMessageResponse":{"properties":{"didcommConnectionId":{"type":"string"},"message":{"properties":{"@type":{"type":"string"},"@id":{"type":"string"}},"additionalProperties":{},"required":["@type","@id"],"type":"object"}},"required":["didcommConnectionId","message"],"type":"object","additionalProperties":false,"example":{"didcommConnectionId":"<connection-id>","message":{"@id":"6bc346bc-4ac0-4e6d-937d-539425b26389","@type":"https://example.org/say-hello/1.0/hello-request","<message-field>":"<message-field-value>"}}},"SendDidcommCustomMessage":{"properties":{"didcommConnectionId":{"type":"string"},"message":{"properties":{"@type":{"type":"string"},"@id":{"type":"string"}},"additionalProperties":{},"required":["@type","@id"],"type":"object"}},"required":["didcommConnectionId","message"],"type":"object","additionalProperties":false,"example":{"didcommConnectionId":"<connection-id>","message":{"@id":"6bc346bc-4ac0-4e6d-937d-539425b26389","@type":"https://example.org/say-hello/1.0/hello-request","<message-field>":"<message-field-value>"}}},"DidcommMediator":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","region","createdAt","updatedAt"],"type":"object","additionalProperties":false},"JsonApiResponse_DidcommMediator-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DidcommMediator"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"JsonApiParameterErrorFormat":{"properties":{"source":{"properties":{"parameter":{"type":"string"}},"required":["parameter"],"type":"object"},"detail":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"}},"required":["source","detail","title","status"],"type":"object"},"JsonApiErrorJson":{"properties":{"errors":{"items":{"$ref":"#/components/schemas/JsonApiParameterErrorFormat"},"type":"array"}},"required":["errors"],"type":"object","additionalProperties":false},"DidcommMediatorConnectionStatus":{"type":"string","enum":["pending","active"]},"DidcommMediatorConnection":{"properties":{"id":{"type":"string"},"didcommMediatorId":{"type":"string"},"initialPublicKeyBase58":{"type":"string"},"status":{"$ref":"#/components/schemas/DidcommMediatorConnectionStatus"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","didcommMediatorId","initialPublicKeyBase58","status","createdAt","updatedAt"],"type":"object","additionalProperties":false},"JsonApiResponse_DidcommMediatorConnection-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DidcommMediatorConnection"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"DidcommIssuanceStatus":{"type":"string","enum":["offered","completed","failed","expired"]},"AnoncredsCredentialFormat":{"type":"string","enum":["anoncreds"],"nullable":false},"DidcommIssuanceIssuedCredential":{"properties":{"id":{"type":"string"},"revocable":{"type":"boolean","description":"Whether the credential is revocable. `true` if the credential is issued with revocation. The current\nstate (so whether it can be revoked at the moment) has no impact on this."},"credentialTemplateId":{"type":"string"},"status":{"$ref":"#/components/schemas/IssuedCredentialStatus"},"format":{"$ref":"#/components/schemas/AnoncredsCredentialFormat"},"exchange":{"$ref":"#/components/schemas/DidcommExchangeProtocol"}},"required":["id","revocable","credentialTemplateId","status","format","exchange"],"type":"object","additionalProperties":false},"DidcommIssuance":{"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/DidcommIssuanceStatus"},"credential":{"$ref":"#/components/schemas/DidcommIssuanceIssuedCredential"},"error":{"allOf":[{"$ref":"#/components/schemas/BaseError"}],"nullable":true},"didcommInvitationId":{"type":"string"},"didcommConnectionId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}},"required":["id","status","credential","error","createdAt","updatedAt","expiresAt"],"type":"object","additionalProperties":false},"JsonApiResponse_DidcommIssuance-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DidcommIssuance"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"CreateDidcommIssuanceOfferResponse":{"properties":{"didcommInvitation":{"$ref":"#/components/schemas/DidcommInvitation"},"didcommIssuance":{"$ref":"#/components/schemas/DidcommIssuance"}},"required":["didcommIssuance"],"type":"object"},"CreateDidcommIssuanceOffer":{"properties":{"credential":{"properties":{"attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number","format":"double"}],"additionalProperties":false},"type":"object"},"credentialTemplateId":{"type":"string"}},"required":["attributes","credentialTemplateId"],"type":"object"},"goal":{"properties":{"description":{"type":"string","description":"Human readable string that describes the goal for offering the credential."},"code":{"type":"string","description":"Machine readable string that describes the goal for offering the credential.\nCommonly used values for goalCode are `issue-vc`, `request-proof`, `create-account`, or `p2p-messaging`."}},"required":["description"],"type":"object","description":"The goal will be included in the both the invitation and the offer."},"didcommInvitation":{"properties":{"did":{"$ref":"#/components/schemas/SupportedDidcommNetwork","description":"did to use for the DIDComm invitation. Only the did method and network\nhas to provided (e.g. `did:web`).\n\nIf a did is provided the did will be used in the invitation and allows\nwallet to reuse existing connections and recognize the inviter based on the provided.\n\nIf a connection is created, it will always use a new `did:peer` did, so the did is only\nused for the invitation."},"createConnection":{"type":"boolean","description":"Whether to create a connection as part of the invitation","default":false}},"type":"object","description":"properties about the didcomm invitation containing the offer. Will be ignored if `didcommConnectionId`\nis provided"},"didcommConnectionId":{"type":"string"}},"required":["credential"],"type":"object","example":{"didcommInvitation":{"createConnection":true,"did":"did:web"},"goal":{"code":"someCode","description":"someDescription"},"credential":{"credentialTemplateId":"clw8u83q7000009l7886p0qm3","attributes":{"name":"John","age":25}}}},"JsonApiResponse_CertificateSigningRequest-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CertificateSigningRequest"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"CreateCertificateSigningRequestType":{"type":"string","enum":["issuerSignCredential","verifierSignRequest"]},"Iso31661Alpha2CountryCode":{"type":"string","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","CV","KH","CM","CA","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"]},"CreateCertificateSigningRequest":{"properties":{"type":{"$ref":"#/components/schemas/CreateCertificateSigningRequestType","description":"The type of certificate that will be created with the certificate signing request.\n\nIf you want to create the certificate yourself, you can create a root certificate through\nthe Certificates API"},"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType","description":"Key type of the certificate"},"keyBackend":{"$ref":"#/components/schemas/SupportedKeyBackend","description":"The Key Management Service (KMS) backend used to generate and store the private key material for\nthis certificate signing request. Defaults to the `software` backend. Hardware-backed backends\n(e.g. `gcpKms`) must be enabled and configured for the deployment before they can be used."},"countryName":{"$ref":"#/components/schemas/Iso31661Alpha2CountryCode","description":"ISO 3166-1 Alpha-2 country code"},"commonName":{"type":"string","description":"Common name to be used in the certificate, if not provided the\nwallet name will be used"},"capabilities":{"properties":{"signMdl":{"type":"boolean","description":"The signMdl capability enables signing ISO 18013-5 mDLs, and ensures the `mdlDS` extended key usage\nis present in the certificate signing request and imported certificate. When this capability is enabled,\nthe imported certificate must adhere to Document Signer Certificate requirements as defined in ISO 18013-5 Table B.3.\n\nNOTE: This capability only covers signing mDLs. Without this capability on the certificate,\nyou cannot issue mDLs. ISO 23220-4 is a **pending** standard that defines generic mDoc signing capabilities,\nand introduces a new `mdocDS` extended key usage. In the future an additional capability will be added\nfor this, which will impact non-mDL signing.\n\nThis capability can only be enabled for `issuerSignCredential` certificates, for which it is enabled by default."}},"type":"object","description":"Capabilities configuration."}},"required":["type","keyType","countryName"],"type":"object","additionalProperties":false,"example":{"countryName":"NL","commonName":"Utopia Government","keyType":"P-256","type":"issuerSignCredential","capabilities":{"signMdl":true}}},"ImportCertificateForCertificateSigningRequest":{"properties":{"certificate":{"type":"string","description":"The PEM-encoded certificate to import"},"parentCertificates":{"items":{"type":"string"},"type":"array","description":"Optional list of PEM-encoded intermediate certificates that form the chain and\nshould be included when using this certificate. If the root certificate is included,\nthis will be ignored.\n\nThe certificates should be ordered from leaf-adjacent to root-adjacent. You can provide up\nto three intermediate certificates.\n\nMust not be set when the CSR has the `signMdl` capability due to pathLen constraint requirements\nfrom ISO 18013-5."}},"required":["certificate"],"type":"object","additionalProperties":false,"example":{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBVTCB/AIBADAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0oC0wKwYJKoZIhvcN\nAQkOMR4wHDAaBgNVHREEEzARgg9leGFtcGxlLmNvbTAKBggqhkjOPQQDAgNIADBF\nAiEAw9qPTJqFqFQ8NM7qXxJqY0L3pNJcaKqhV0w9JYp0RYACIE3jFJq3l0hfR9uZ\nG9Cx7YmDqV3kQ7hY5j0rZ0qM0qHy\n-----END CERTIFICATE-----"}},"JsonApiResponse_Certificate-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Certificate"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"CreateCertificateType":{"type":"string","enum":["verifierRoot","issuerRoot"]},"CreateCertificate":{"properties":{"type":{"$ref":"#/components/schemas/CreateCertificateType","description":"The type of the certificate.\n\nOnly root certificates can be manually created. You can import externally\nsigned `issuerSignCredential` and `issuerSignCredential` using the Certificate\nSigning Requests API."},"keyType":{"$ref":"#/components/schemas/SupportedCertificateKeyType","description":"Key type of the certificate"},"keyBackend":{"$ref":"#/components/schemas/SupportedKeyBackend","description":"The Key Management Service (KMS) backend used to generate and store the private\nkey material backing the certificate. Defaults to the `software` backend.\n\nWhich backends are available depends on the deployment; fetch them from\n`GET /v1/wallets/{walletId}/key-backends` rather than assuming."},"countryName":{"$ref":"#/components/schemas/Iso31661Alpha2CountryCode","description":"ISO 3166-1 Alpha-2 country code"},"commonName":{"type":"string","description":"Common name to be used in the certificate, if not provided the\nwallet name will be used"},"issuerAlternativeNameUrl":{"type":"string","description":"The issuer alternative name URL for the certificate."}},"required":["type","keyType","countryName","issuerAlternativeNameUrl"],"type":"object","additionalProperties":false,"example":{"type":"verifierRoot","keyType":"Ed25519","countryName":"NL","commonName":"Utopia CA","issuerAlternativeNameUrl":"https://example.com"}},"AuthorizationServer":{"properties":{"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"redirectUris":{"items":{"type":"string"},"type":"array"},"clientId":{"type":"string"},"url":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"}},"required":["updatedAt","createdAt","redirectUris","clientId","url","name","id"],"type":"object"},"JsonApiResponse_AuthorizationServer-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AuthorizationServer"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"AuthorizationServerAuthentication":{"properties":{"clientSecret":{"type":"string","description":"The client secret issued to the client during the registration process."},"clientId":{"type":"string","description":"The client identifier issued to the client during the registration process."}},"required":["clientSecret","clientId"],"type":"object"},"CreateAuthorizationServer":{"properties":{"name":{"type":"string","description":"The name of the authorization server."},"url":{"type":"string","description":"The HTTPS URL of the authorization server. It must not contain query parameters."},"redirectUris":{"items":{"type":"string"},"type":"array","description":"The list of allowed Redirect URIs for this authorization server.\n\nAn empty array indicates that there are no restrictions. We recommend\nspecifying the allowed Redirect URIs to enhance security, allowing you\nto restrict issuance to only trusted wallets.\n\nNote: if a credential in the offer is restricted to trusted wallets, the\nwallet authenticates using a wallet attestation and is therefore already\ntrusted. In that case these Redirect URIs are not enforced for that issuance."},"authentication":{"$ref":"#/components/schemas/AuthorizationServerAuthentication","description":"The client authentication configuration."}},"required":["name","url","redirectUris","authentication"],"type":"object","additionalProperties":false,"example":{"name":"Example Authorization Server","url":"https://auth.example.com","redirectUris":["https://example.com/wallet-redirect"],"authentication":{"clientId":"my-client-id","clientSecret":"my-client-secret"}}},"UpdateAuthorizationServer":{"properties":{"name":{"type":"string","description":"The name of the authorization server."},"redirectUris":{"items":{"type":"string"},"type":"array","description":"The list of allowed Redirect URIs for this authorization server.\n\nAn empty array indicates that there are no restrictions. We recommend\nspecifying the allowed Redirect URIs to enhance security, allowing you\nto restrict issuance to only trusted wallets.\n\nNote: if a credential in the offer is restricted to trusted wallets, the\nwallet authenticates using a wallet attestation and is therefore already\ntrusted. In that case these Redirect URIs are not enforced for that issuance."},"authentication":{"$ref":"#/components/schemas/AuthorizationServerAuthentication","description":"The client authentication configuration. Only updated if provided."}},"required":["name","redirectUris"],"type":"object","additionalProperties":false},"AttributeProviderAuthentication":{"properties":{"type":{"type":"string","enum":["apiKey"],"nullable":false}},"required":["type"],"type":"object","additionalProperties":false},"AttributeProvider":{"properties":{"name":{"type":"string","description":"The name of the attribute provider."},"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string","description":"The HTTPS URL of the endpoint where the attributes will be requested."},"authentication":{"$ref":"#/components/schemas/AttributeProviderAuthentication","description":"The authentication method used to authenticate with the attribute provider."}},"required":["name","id","createdAt","updatedAt","url","authentication"],"type":"object","additionalProperties":false},"JsonApiResponse_AttributeProvider-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AttributeProvider"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"AttributeProviderApiKeyAuthentication":{"properties":{"apiKey":{"type":"string","description":"The API key used to authenticate with the attribute provider.\nThis key will be sent in the `X-Api-Key` header of each request."},"type":{"type":"string","enum":["apiKey"],"nullable":false}},"required":["apiKey","type"],"type":"object"},"CreateAttributeProvider":{"properties":{"name":{"type":"string","description":"The name of the attribute provider."},"authentication":{"$ref":"#/components/schemas/AttributeProviderApiKeyAuthentication","description":"The authentication method used to authenticate with the attribute provider."},"url":{"type":"string","description":"The HTTPS URL of the endpoint where the attributes will be requested."}},"required":["name","authentication","url"],"type":"object","additionalProperties":false,"example":{"name":"Example Attribute Provider","url":"https://attributes.example.com","authentication":{"type":"apiKey","apiKey":"my-attribute-provider-api-key"}}},"AttributeProviderAuthenticationWithSecret":{"$ref":"#/components/schemas/AttributeProviderApiKeyAuthentication"},"UpdateAttributeProvider":{"properties":{"name":{"type":"string","description":"The name of the attribute provider."},"url":{"type":"string","description":"The HTTPS URL of the endpoint where the attributes will be requested."},"authentication":{"$ref":"#/components/schemas/AttributeProviderAuthenticationWithSecret","description":"The authentication method used to authenticate with the attribute provider.\nOnly updated if provided."}},"required":["name","url"],"type":"object","additionalProperties":false,"example":{"name":"New Attribute Provider Name","url":"https://attributes.example.com"}},"AnoncredsCredentialTemplateAttribute":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["string","number"]}},"required":["type"],"type":"object"},"AnoncredsCredentialTemplateAttributes":{"additionalProperties":{"$ref":"#/components/schemas/AnoncredsCredentialTemplateAttribute","additionalProperties":false},"type":"object"},"AnoncredsCredentialTemplate":{"properties":{"archivedAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/AnoncredsCredentialTemplateAttributes"},"definition":{"type":"string"},"schema":{"type":"string"},"name":{"type":"string"},"issuer":{"type":"string"},"description":{"type":"string"},"revocable":{"type":"boolean"},"format":{"type":"string","enum":["anoncreds"],"nullable":false},"id":{"type":"string"}},"required":["archivedAt","updatedAt","createdAt","attributes","definition","schema","name","issuer","revocable","format","id"],"type":"object"},"JsonApiResponse_AnoncredsCredentialTemplate-Array_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AnoncredsCredentialTemplate"},"type":"array"},"meta":{"$ref":"#/components/schemas/MetaJsonApiResponse"}},"required":["data","meta"],"type":"object"},"CreateAnoncredsCredentialTemplate":{"properties":{"name":{"type":"string"},"description":{"type":"string"},"attributes":{"$ref":"#/components/schemas/AnoncredsCredentialTemplateAttributes"},"schema":{"type":"string"},"issuer":{"$ref":"#/components/schemas/DidSignerInput","description":"Default of \"did:web\" will be used if no schema is provided. Otherwise\nthe network from the schema will be used."},"revocable":{"type":"boolean","default":false}},"required":["name","attributes"],"type":"object","additionalProperties":false,"example":{"name":"My Anoncreds template","description":"This is a description","schema":"did:cheqd:testnet:1234/resources/1234","issuer":"did:cheqd:testnet","revocable":true,"attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is my attribute"},"myAttribute2":{"type":"number","name":"My attribute 2"},"myAttribute3":{"type":"string"}}}}},"securitySchemes":{"apiKey":{"type":"apiKey","name":"x-access-token","in":"header"}}},"info":{"title":"Paradym API Documentation","version":"0.1","description":"<!-- NOTE: this will be added to the generated OpenAPI file -->\n\nThe Paradym API allows you to programmatically interact with the Paradym platform to create templates, issue credentials, and verify presentations. You can read more information on Paradym in the [documentation](https://docs.paradym.id/api-and-dashboard). For usage documentation of the API endpoints, you can check out the endpoint specific documentation in this document.\n\nProjects in Paradym are now called **wallets**, and the canonical API endpoints live under `/v1/wallets/**`. The `/v1/projects/**` endpoints are **deprecated and frozen**: they keep working for existing integrations and keep their `project`-named request and response fields, but they will not receive new features — migrate to `/v1/wallets/**`. Looking for the deprecated Projects API? See the [Paradym API (Deprecated) reference](/reference?doc=deprecated#deprecated/description/introduction).\n\n## Authorization\n\nAuthorization to the Paradym API is done using an API key, which needs to be provided in the `x-access-token` header field. To create an API key, go to the [Settings tab](https://paradym.id/app/settings/api-keys) for API keys.\n\nWhen making request directly from the API documentation, you don't need to provide the API key when you're signed in. The API is automatically injected into the request for you."},"paths":{"/v1/wallets/{walletId}/webhooks":{"get":{"operationId":"WebhooksGetWebhooks","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_WalletWebhookSubscription-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"6421a8905c17830c188e2e2f","walletId":"6421a8905c17830c188e2e2f","name":"Example webhook","url":"https://example.com","eventTypes":["*"],"createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/6421a8905c17830c188e2e2f/webhooks?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets/6421a8905c17830c188e2e2f/webhooks?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}}},"description":"Retrieve all webhooks associated associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all webhooks where the name includes \"Example\" and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/webhooks?search[name]=Example&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`\n- search: `name`, 'url'\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve webhooks","tags":["Webhooks"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[url]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"WebhooksCreateWebhook","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletWebhookSubscriptionWithSecret"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","walletId":"6421a8905c17830c188e2e2f","name":"Example webhook","url":"https://example.com","eventTypes":["*"],"createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z","signatureSecret":"whsec_3BPqO7WQ9K1n6vXsD2mYt5uZ8cLrE4gH"}}}}}}},"description":"Create a new webhook for the given wallet.\n\nThe webhook will be used to send notifications to the given URL. The URL must be reachable from the internet.\nWe will send a request to the given URL to verify that it's reachable. When it's created you will get a signatureSecret.\nThis secret is used to sign the request body. You can use this secret to verify that the request is coming from us.\n\nFor more information take a look at the [webhook documentation](https://docs.paradym.id/api-and-dashboard/using-webhooks).","summary":"Create new webhook","tags":["Webhooks"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"type":"string"},"url":{"type":"string"},"eventTypes":{"items":{"$ref":"#/components/schemas/WebhookEventType"},"type":"array","default":["*"]}},"required":["name","url"],"type":"object"}}}}}},"/v1/wallets/{walletId}/webhooks/{webhookId}":{"get":{"operationId":"WebhooksGetWebhook","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletWebhookSubscription"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","walletId":"6421a8905c17830c188e2e2f","name":"Example webhook","url":"https://example.com","eventTypes":["*"],"createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z"}}}}}},"404":{"description":"Not found error"}},"description":"Retrieve a single webhook by its ID.\n\nThe signature secret is only returned when the webhook is created, so it is not included here.","summary":"Retrieve webhook","tags":["Webhooks"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"webhookId","required":true,"schema":{"type":"string"}}]},"patch":{"operationId":"WebhooksUpdateWebhook","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletWebhookSubscription"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","walletId":"6421a8905c17830c188e2e2f","name":"Example webhook","url":"https://example.com","eventTypes":["*"],"createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z"}}}}}},"404":{"description":"Not found error"}},"description":"Update an existing webhook by ID.\n\nOnly the `name` and `eventTypes` can be changed. The URL is immutable. Provide at least one of\n`name` or `eventTypes`. The signature secret is unchanged.","summary":"Update webhook","tags":["Webhooks"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"webhookId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhook"}}}}},"put":{"operationId":"WebhooksReplaceWebhook","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletWebhookSubscription"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","walletId":"6421a8905c17830c188e2e2f","name":"Example webhook","url":"https://example.com","eventTypes":["*"],"createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z"}}}}}},"404":{"description":"Not found error"}},"description":"Replace an existing webhook by ID.\n\nBoth `name` and `eventTypes` must be provided; they fully replace the current values. The URL\nis immutable and the signature secret is unchanged. Use `PATCH` to change only some fields.","summary":"Replace webhook","tags":["Webhooks"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"webhookId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceWebhook"}}}}},"delete":{"operationId":"WebhooksDeleteWebhook","responses":{"204":{"description":"Deleted"},"404":{"description":"Not found error"}},"description":"Delete a webhook by ID.","summary":"Delete webhook","tags":["Webhooks"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"webhookId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets":{"get":{"operationId":"WalletsGetAllWallets","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_Wallet-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"6421a8905c17830c188e2e2f","ownerId":"6421a8905c17830c188e2e2f","verificationDataAccess":"webhook","name":"My wallet","updatedAt":"2023-01-02T00:00:00.000Z","createdAt":"2023-01-02T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}}},"description":"Retrieve all wallets for the user associated with the API key being used for the request.\n\n## Example\nAn example query that searches for all wallets where the name includes \"Example\" and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets?search[name]=Example&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `name`\n- search: `name`\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve wallets","tags":["Wallets"],"security":[{"apiKey":["user"]}],"parameters":[{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["-id","id","-createdAt","createdAt","-updatedAt","updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"WalletsCreateWallet","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","ownerId":"6421a8905c17830c188e2e2f","verificationDataAccess":"webhook","name":"My wallet","updatedAt":"2023-01-02T00:00:00.000Z","createdAt":"2023-01-02T00:00:00.000Z"}}}}}}},"description":"Creates a new wallet under the user which is associated with the API key being used for the request.\nThe user will be the owner of the wallet.\n\nCreating multiple wallets is not available in the Free tier.\n\nNote that the wallet cannot be deleted yet so be careful with creating wallets.","summary":"Create new wallet","tags":["Wallets"],"security":[{"apiKey":["user"]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWallet"}}}}}},"/v1/wallets/{walletId}":{"post":{"operationId":"WalletsUpdateWallet","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}},"description":"Use the PUT endpoint instead.","summary":"Updates a wallet (deprecated)","tags":["Wallets"],"deprecated":true,"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWallet"}}}}},"put":{"operationId":"WalletsPut","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}},"description":"Updates a wallet by fully replacing the current settings.","summary":"Updates a wallet","tags":["Wallets"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWallet"}}}}},"patch":{"operationId":"WalletsPatch","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}},"description":"Updates a wallet by only replacing the provided settings.","summary":"Updates a wallet","tags":["Wallets"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartialUpdateWallet"}}}}}},"/v1/wallets/{walletId}/profiles/default":{"get":{"operationId":"WalletProfileGetProfile","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletProfile"},"examples":{"Example 1":{"value":{"displayName":"Wallet name","id":"clu159ps100013evfbvhz22m1","logo":{"url":"https://example.com/logo.png","altText":"Logo alt text"},"wallet":{"name":"My Wallet","baseUrl":"https://example.com/invitation","androidApplicationId":"id.example.wallet","appleApplicationId":"1234567890"},"openId4VcVersion":"v1"}}}}}}},"description":"Retrieves the default profile of the wallet.\n\nThe wallet profile contains which version of the OpenID for Verifiable\nCredentials specification suite to use, and the public information about\nthe wallet for display purposes.\n\nIf there is no profile, a new one will automatically be created with the\nwallet's name as display name.","summary":"Retrieve default profile","tags":["Wallet Profile"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]},"put":{"operationId":"WalletProfileUpdateProfile","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletProfile"},"examples":{"Example 1":{"value":{"displayName":"Wallet name","id":"clu159ps100013evfbvhz22m1","logo":{"url":"https://example.com/logo.png","altText":"Logo alt text"},"wallet":{"name":"My Wallet","baseUrl":"https://example.com/invitation","androidApplicationId":"id.example.wallet","appleApplicationId":"1234567890"},"openId4VcVersion":"v1"}}}}}}},"description":"Updates the default profile of the profile.\n\nUpgrading from the OpenID4VC version from 'legacy' to 'v1' is a one-way operation,\nand cannot be reverted. In order to comply with the standards defined for each version,\nthe metadata of your OpenID4VC issuer, as well as any Token Status Lists associated\nwith active X509 certificates, will be regenerated.\n\nAlternatively, you may consider creating a new wallet. In the future, all\nlegacy wallets will be migrated to version 1.\n\n## Premium features\n- `localization`: Available on the Builder tier and up.\n- `wallet`: Available on the Builder tier and up.","summary":"Update default profile","tags":["Wallet Profile"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfile"}}}}}},"/v1/wallets/{walletId}/members":{"get":{"operationId":"WalletsGetAllWalletMembers","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_WalletMember-Array_"},"examples":{"Example 1":{"value":{"meta":{"page":{}},"data":[{"id":"clus88ks800028i4nrbm618vl","isOwner":true,"user":{"email":"john@animo.id"},"wallet":{"name":"Animo"},"createdAt":"2026-10-23T12:31:59.176Z","updatedAt":"2026-10-23T12:31:59.176Z"}]}}}}}}},"description":"Retrieve all members associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all members where in wallet, limiting the page size to 10\n```\n/v1/wallets/{walletId}/members?page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`\n- search: -\n- sort: `id` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve wallet members","tags":["Wallets"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/members/add":{"post":{"operationId":"WalletsAddWalletMember","responses":{"204":{"description":"No content"}},"description":"Add a member to the provided wallet by email.\n\nBeware that the user will not be added until they have accepted the invitation. If an invitation\nis already active, you cannot add them again until the invitation has expired.\n\nAn invitation is valid for 7 days, after which the user needs to be invited again to be able to join the wallet.\n\n**Note:** Only the owner of the wallet is able to add members to the wallet.","summary":"Add member to wallet","tags":["Wallets"],"security":[{"apiKey":["project","project_members:write"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRemoveWalletMember"}}}}}},"/v1/wallets/{walletId}/members/remove":{"post":{"operationId":"WalletsRemoveWalletMember","responses":{"204":{"description":"No content"}},"description":"Remove a member from the provided wallet by email.\n\nIf the user is not part of the wallet yet, but an invitation has already been sent, the\ninvitation will be revoked, and the user won't be able to accept the invitation anymore.\n\n**Note:** Only the owner of the wallet is able to remove members from the wallet.","summary":"Remove member from wallet","tags":["Wallets"],"security":[{"apiKey":["project","project_members:write"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRemoveWalletMember"}}}}}},"/v1/wallets/{walletId}/trusted-entities":{"post":{"operationId":"TrustedEntitiesCreateTrustedEntity","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedEntity"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"name":"Club Membership PubEAA List","url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"mdoc":["com.example.ClubMembershipCard"]},"enabled":true,"errors":[],"nextUpdate":"2025-01-02T00:00:00.000Z"}]}}}}}}},"description":"Create a trusted entity.\n\nAt least one DID or certificate MUST be provided. For both `dids` and `certificates`, at most 20 entries\ncan be provided.","summary":"Create trusted entity","tags":["Trusted Entities"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrUpdateTrustedEntity"}}}}},"get":{"operationId":"TrustedEntitiesGetAllTrustedEntities","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_TrustedEntity-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"name":"Club Membership PubEAA List","url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"mdoc":["com.example.ClubMembershipCard"]},"enabled":true,"errors":[],"nextUpdate":"2025-01-02T00:00:00.000Z"}]}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/trusted-entities?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/trusted-entities?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all trusted entities associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all trusted entities where name includes 'EUDI' and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/trusted-entities?search[name]=EUDI&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `name`, `id`\n- search: `name`\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve trusted entities","tags":["Trusted Entities"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["createdAt","-createdAt","updatedAt","-updatedAt","-id","id"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/trusted-entities/{trustedEntityId}":{"put":{"operationId":"TrustedEntitiesUpdateTrustedEntity","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedEntity"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"name":"Club Membership PubEAA List","url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"mdoc":["com.example.ClubMembershipCard"]},"enabled":true,"errors":[],"nextUpdate":"2025-01-02T00:00:00.000Z"}]}}}}}}},"description":"Update a trusted entity. The same rules as creating a trusted entity apply.\n\nThis will replace the entire trusted entity (including DIDs and certificates) with a new one.","summary":"Update trusted entity","tags":["Trusted Entities"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"trustedEntityId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrUpdateTrustedEntity"}}}}},"get":{"operationId":"TrustedEntitiesGetTrustedEntity","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedEntity"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"name":"Club Membership PubEAA List","url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"mdoc":["com.example.ClubMembershipCard"]},"enabled":true,"errors":[],"nextUpdate":"2025-01-02T00:00:00.000Z"}]}}}}}}},"description":"Retrieve a specific trusted entity by its id.","summary":"Retrieve trusted entity","tags":["Trusted Entities"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"trustedEntityId","required":true,"schema":{"type":"string"}}]},"delete":{"operationId":"TrustedEntitiesDeleteTrustedEntity","responses":{"204":{"description":"Deleted"},"404":{"description":"Not found error"}},"description":"Delete a trusted entity by its id.\n\nNOTE: If the trusted entity is referenced in any presentation template it is not possible to remove the entity.\nFirst, remove the trusted entity from all presentation templates that reference this trusted entity.","summary":"Delete a trusted entity","tags":["Trusted Entities"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"trustedEntityId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/sd-jwt-vc":{"get":{"operationId":"SdJwtVcCredentialTemplatesGetAllCredentialTemplates","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_SdJwtCredentialTemplate-Array_"},"examples":{"Example 1":{"value":{"data":[{"name":"My SD-JWT VC template","description":"This is a description","issuer":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"start":"validFrom","future":{"months":6}},"attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is a attribute","required":true,"alwaysDisclosed":false}},"revocable":false,"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"format":"sd-jwt-vc","id":"6421a8905c17830c188e2e2f","type":"https://metadata.paradym.id/types/asdf93-UniversityCard","trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}],"meta":{"page":{},"prev":"/v1/wallets/6421a8905c17830c188e2e2f/templates/credentials/sd-jwt-vc?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets/6421a8905c17830c188e2e2f/templates/credentials/sd-jwt-vc?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}}},"description":"Retrieve all `sd-jwt-vc` credential templates associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all SD-JWT VC credential templates where the name includes \"My Template\" and are not revocable,\nordering them by the date they were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/templates/credentials/sd-jwt-vc?filter[revocable]=false&search[name]=My Template&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n- `include` - Include a relation model in the response.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `type`, `revocable`, `archived`\n- search: `name`\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n- include:\n - `trustedWallets` - load the Trusted Entities that are allowed to receive this credential.\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve sd-jwt-vc credential templates","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[type]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[revocable]","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"filter[archived]","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}},{"in":"query","name":"include","required":false,"schema":{"type":"string","enum":["trustedWallets"]}}]},"post":{"operationId":"SdJwtVcCredentialTemplatesCreateCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdJwtCredentialTemplate"},"examples":{"Example 1":{"value":{"name":"My SD-JWT VC template","description":"This is a description","issuer":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"start":"validFrom","future":{"months":6}},"attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is a attribute","required":true,"alwaysDisclosed":false}},"revocable":false,"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"format":"sd-jwt-vc","id":"6421a8905c17830c188e2e2f","type":"https://metadata.paradym.id/types/asdf93-UniversityCard","trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}}}}}}},"description":"Create a new `sd-jwt-vc` credential template.\n\nWhen issuing with a certificate, some limitations apply:\n- The `validFrom` field is not allowed to be set. The credential will always\n  be valid from the moment it is issued.\n- The `validUntil` field must be set as a duration from the moment the\n  credential is issued, and it must not exceed 365 days.\n\n## Premium features\n- `localization` (template and attributes): Available on the Builder tier and up.\n- `trustedWallets`: Available on the Builder tier and up.\n- `authorization`: Available on the Pro tier and up.\n- `attributeProviderId`: Available on the Pro tier and up.","summary":"Create sd-jwt-vc credential template","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSdJwtCredentialTemplate"}}}}}},"/v1/wallets/{walletId}/templates/credentials/sd-jwt-vc/{credentialTemplateId}":{"put":{"operationId":"SdJwtVcCredentialTemplatesUpdateCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdJwtCredentialTemplate"},"examples":{"Example 1":{"value":{"name":"My SD-JWT VC template","description":"This is a description","issuer":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"start":"validFrom","future":{"months":6}},"attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is a attribute","required":true,"alwaysDisclosed":false}},"revocable":false,"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"format":"sd-jwt-vc","id":"6421a8905c17830c188e2e2f","type":"https://metadata.paradym.id/types/asdf93-UniversityCard","trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}}}}}}},"description":"Update a specific `sd-jwt-vc` credential template by its id.\n\nThis will replace the entire template with the new one, except for the `type` and `issuer` fields (these can't be updated)\n\n## Type Metadata\nUpdating a template also updates the [SD-JWT VC Type Metadata](https://docs.paradym.id/api-and-dashboard/credential-metadata#sd-jwt-vc-type-metadata)\ndocument that wallets and verifiers may download on demand from the VCT (`type`) URI.\nFor Paradym-hosted VCT URLs this document is automatically re-hosted on every update.\nFor custom VCT URLs the document is **not** automatically updated — retrieve it from the\ntype-metadata endpoint and re-publish it to your VCT URL yourself after updating.\n\nIf you are making breaking changes such as removing required claims or narrowing\nselective-disclosure rules, previously issued credentials may no longer pass\ntype-metadata validation. In that case, it is recommended to create a new credential\ntemplate instead.\n\n## Premium features\n- `localization` (template and attributes): Available on the Builder tier and up.\n- `trustedWallets`: Available on the Builder tier and up.\n- `authorization`: Available on the Pro tier and up.\n- `attributeProviderId`: Available on the Pro tier and up.","summary":"Update sd-jwt-vc credential template","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSdJwtCredentialTemplate"}}}}},"get":{"operationId":"SdJwtVcCredentialTemplatesGetCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdJwtCredentialTemplate"},"examples":{"Example 1":{"value":{"name":"My SD-JWT VC template","description":"This is a description","issuer":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"start":"validFrom","future":{"months":6}},"attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is a attribute","required":true,"alwaysDisclosed":false}},"revocable":false,"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"format":"sd-jwt-vc","id":"6421a8905c17830c188e2e2f","type":"https://metadata.paradym.id/types/asdf93-UniversityCard","trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}}}}}}},"description":"Retrieve a specific `sd-jwt-vc` credential template by its id.\n\nThis endpoint supports the following query parameters:\n- `include` - Include a relation model in the response.\n\nThe following parameters are supported for this endpoint:\n- include:\n - `trustedWallets` - load the Trusted Entities that are allowed to receive this credential.","summary":"Retrieve sd-jwt-vc credential template","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}},{"in":"query","name":"include","required":false,"schema":{"type":"string","enum":["trustedWallets"]}}]},"delete":{"operationId":"SdJwtVcCredentialTemplatesArchiveTemplate","responses":{"204":{"description":"Archived"},"404":{"description":"Not found error"},"409":{"description":"Credential template is already archived"}},"description":"Archive a specific `sd-jwt-vc` credential template by its id.","summary":"Archive sd-jwt-vc credential template","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/sd-jwt-vc/{credentialTemplateId}/json-schema":{"get":{"operationId":"SdJwtVcCredentialTemplatesGetCredentialTemplateJsonSchema","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateJsonSchema"},"examples":{"Example 1":{"value":{"$schema":"https://json-schema.org/draft-07/schema#","$id":"templates/credential/sd-jwt-vc/6421a8905c17830c188e2e2f","title":"My SD-JWT VC template","type":"object","properties":{"myAttribute":{"type":"string","title":"My attribute","description":"This is a attribute"},"myNestedAttribute":{"title":"Nested Object","description":"This is a nested object","type":"object","properties":{"nestedAttribute":{"title":"Nested attribute","description":"This is a nested attribute","type":"string"}},"required":["nestedAttribute"],"additionalProperties":false}},"required":["myAttribute"],"additionalProperties":false}}}}}}},"description":"Get the JSON schema for an `sd-jwt-vc` credential template.\n\nYou could use this for to generate forms or validate the input.","summary":"Retrieve JSON schema for sd-jwt-vc credential template","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/sd-jwt-vc/{credentialTemplateId}/type-metadata":{"get":{"operationId":"SdJwtVcCredentialTemplatesGetCredentialTemplateTypeMetadata","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SdJwtVcTypeMetadataResponse"},"examples":{"Example 1":{"value":{"typeMetadataLocation":"managed","typeMetadata":{"vct":"https://metadata.paradym.id/types/asdf93-UniversityCard","name":"My SD-JWT VC template","description":"This is a description","display":[{"locale":"en","name":"My SD-JWT VC template","description":"This is a description","rendering":{"simple":{"background_color":"#FFFFFF","text_color":"#000000"}}}],"claims":[{"path":["myAttribute"],"sd":"always","display":[{"locale":"en","label":"My attribute"}]}]}}}}}}}},"description":"Get the SD-JWT VC type metadata for an `sd-jwt-vc` credential template.\n\nThe `typeMetadata` object is the document described by the\n[SD-JWT VC Type Metadata documentation](https://docs.paradym.id/api-and-dashboard/credential-metadata#sd-jwt-vc-type-metadata).\n\nThe `typeMetadataLocation` field indicates who hosts the document:\n- `managed` — the template uses a Paradym-generated VCT (`type`) URI, and Paradym\n  automatically (re)hosts the document at that URI whenever the template is updated.\n- `manual` — the template uses a custom VCT URI. Paradym does **not** host the\n  document and it is **not** automatically updated; you must publish the returned\n  `typeMetadata` document at the VCT URI yourself (and re-publish after each update).","summary":"Retrieve SD-JWT VC type metadata for sd-jwt-vc credential template","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/sd-jwt-vc/{credentialTemplateId}/unarchive":{"post":{"operationId":"SdJwtVcCredentialTemplatesUnarchiveTemplate","responses":{"204":{"description":"Unarchived"},"404":{"description":"Not found error"},"409":{"description":"Credential template is not archived"}},"description":"Unarchive a specific `sd-jwt-vc` credential template by its id.","summary":"Unarchive sd-jwt-vc credential template","tags":["SD-JWT VC Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/revocation/batch":{"post":{"operationId":"RevocationBatchRevoke","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRevokeResponse"},"examples":{"Example 1":{"value":{"revokedCredentials":[{"id":"clu921ps300047eghxvhz33m4","notifiedWallet":true}]}}}}}}},"description":"Revoke a batch of credentials based on the issued credential id. Only credentials issued based on a template where `revocable` is `true` can be revoked.\nCredentials that have already been revoked cannot be revoked again.\n\nThe issued credential id is the `id` field in the `IssuedCredential` model, which is returned in the [Issuance](#tag/direct-issuance), [OpenID4VC Issuance](#tag/openid4vc-issuance),\nand [DIDComm Issuance](#tag/didcomm-issuance) API endpoints.\n\nYou can revoke credentials from different templates and formats at the same time, with a limit of 100 credentials.\n\nFor each credential, one transaction is used.\n\nWhen revoking AnonCreds credentials, it will be processed in a background job. This means that it may take up to 2 minutes before the credentials are revoked.","summary":"Batch revoke credentials","tags":["Revocation"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRevoke"}}}}}},"/v1/wallets/{walletId}/templates/presentations":{"get":{"operationId":"PresentationTemplatesGetAllPresentationTemplates","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_PresentationTemplate-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"6421a8905c17830c188e2e2f","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z","name":"My SD-JWT VC presentation template","description":"This is a description","verifier":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","credentials":[{"name":"My SD-JWT VC credential","description":"This is a description","format":"sd-jwt-vc","type":"https://metadata.paradym.id/types/28dc88-UniversityCard","trustedIssuers":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"sd-jwt-vc":["https://metadata.paradym.id/types/28dc88-UniversityCard"]},"enabled":true,"errors":[]}]}],"attributes":{"myAttribute1":{"type":"string","value":"myValue"},"myAttribute2":{"type":"number","minimum":1,"maximum":10},"myAttribute3":{"type":"boolean","value":true}}},{"name":"My Mdoc credential","description":"This is a description","format":"mdoc","type":"org.iso.18013.5.1.mDL","trustedIssuers":[],"attributes":{"org.iso.18013.5.1":{"properties":{"given_name":{"intentToRetain":false},"family_name":{"intentToRetain":false}}}}}]}],"meta":{"page":{},"prev":"/v1/wallets/6421a8905c17830c188e2e2f/templates/presentations?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets/6421a8905c17830c188e2e2f/templates/presentations?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}}},"description":"Retrieve all presentation templates associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all presentation templates where the name includes \"My Template\",\nordering them by the date they were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/templates/presentations?search[name]=My Template&sort[-createdAt]&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n- `include` - Include a relation model in the response.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`\n- search: `name`\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n- include:\n - `credentials.trustedIssuers` - load the TrustedEntitites associated with a requested credential.\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve presentation templates","tags":["Presentation Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}},{"in":"query","name":"include","required":false,"schema":{"type":"string","enum":["credentials.trustedIssuers"]}}]},"post":{"operationId":"PresentationTemplatesCreatePresentationTemplate","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z","name":"My SD-JWT VC presentation template","description":"This is a description","verifier":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","credentials":[{"name":"My SD-JWT VC credential","description":"This is a description","format":"sd-jwt-vc","type":"https://metadata.paradym.id/types/28dc88-UniversityCard","trustedIssuers":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"sd-jwt-vc":["https://metadata.paradym.id/types/28dc88-UniversityCard"]},"enabled":true,"errors":[]}]}],"attributes":{"myAttribute1":{"type":"string","value":"myValue"},"myAttribute2":{"type":"number","minimum":1,"maximum":10},"myAttribute3":{"type":"boolean","value":true}}},{"name":"My Mdoc credential","description":"This is a description","format":"mdoc","type":"org.iso.18013.5.1.mDL","trustedIssuers":[],"attributes":{"org.iso.18013.5.1":{"properties":{"given_name":{"intentToRetain":false},"family_name":{"intentToRetain":false}}}}}]}}}}}}},"description":"Create a new presentation template.\n\nA presentation template can either request:\n- AnonCreds credentials, to be used with [DIDComm Verification](/reference#tag/didcomm-verification).\n- Mdoc and SD JWT VC credentials, to be used with [OpenID4VC Verification](/reference#tag/openid4vc-verification)","summary":"Create presentation template","tags":["Presentation Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrUpdatePresentationTemplate"}}}}}},"/v1/wallets/{walletId}/templates/presentations/{presentationTemplateId}":{"get":{"operationId":"PresentationTemplatesGetPresentationTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z","name":"My SD-JWT VC presentation template","description":"This is a description","verifier":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","credentials":[{"name":"My SD-JWT VC credential","description":"This is a description","format":"sd-jwt-vc","type":"https://metadata.paradym.id/types/28dc88-UniversityCard","trustedIssuers":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"sd-jwt-vc":["https://metadata.paradym.id/types/28dc88-UniversityCard"]},"enabled":true,"errors":[]}]}],"attributes":{"myAttribute1":{"type":"string","value":"myValue"},"myAttribute2":{"type":"number","minimum":1,"maximum":10},"myAttribute3":{"type":"boolean","value":true}}},{"name":"My Mdoc credential","description":"This is a description","format":"mdoc","type":"org.iso.18013.5.1.mDL","trustedIssuers":[],"attributes":{"org.iso.18013.5.1":{"properties":{"given_name":{"intentToRetain":false},"family_name":{"intentToRetain":false}}}}}]}}}}}}},"description":"Retrieve a specific presentation template by its id.\n\nThis endpoint supports the following query parameters:\n- `include` - Include a relation model in the response.\n\nThe following parameters are supported for this endpoint:\n- include:\n - `credentials.trustedIssuers` - load the TrustedEntitites associated with a requested credential.","summary":"Retrieve presentation template","tags":["Presentation Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"presentationTemplateId","required":true,"schema":{"type":"string"}},{"in":"query","name":"include","required":false,"schema":{"type":"string","enum":["credentials.trustedIssuers"]}}]},"put":{"operationId":"PresentationTemplatesUpdatePresentationTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z","name":"My SD-JWT VC presentation template","description":"This is a description","verifier":"did:web:metadata.paradym.id:035637a5-3785-4511-9ebd-f56166d63f57","credentials":[{"name":"My SD-JWT VC credential","description":"This is a description","format":"sd-jwt-vc","type":"https://metadata.paradym.id/types/28dc88-UniversityCard","trustedIssuers":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"Trustland Government","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Root certificate"}],"dids":[{"name":"Main DID","did":"did:web:metadata:paradym.id:423fa790-dad5-46e3-99a7-07c340e10b60"}],"etsiLotes":[{"url":"https://example.com/lote.jwt","certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","credentialTypes":{"sd-jwt-vc":["https://metadata.paradym.id/types/28dc88-UniversityCard"]},"enabled":true,"errors":[]}]}],"attributes":{"myAttribute1":{"type":"string","value":"myValue"},"myAttribute2":{"type":"number","minimum":1,"maximum":10},"myAttribute3":{"type":"boolean","value":true}}},{"name":"My Mdoc credential","description":"This is a description","format":"mdoc","type":"org.iso.18013.5.1.mDL","trustedIssuers":[],"attributes":{"org.iso.18013.5.1":{"properties":{"given_name":{"intentToRetain":false},"family_name":{"intentToRetain":false}}}}}]}}}}}}},"description":"Update a specific presentation template.\n\nThis will replace the entire template with the new one.","summary":"Update presentation template","tags":["Presentation Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"presentationTemplateId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrUpdatePresentationTemplate"}}}}},"delete":{"operationId":"PresentationTemplatesArchivePresentationTemplate","responses":{"204":{"description":"Deleted"},"404":{"description":"Not found error"}},"description":"Archive a specific presentation template by its id.","summary":"Archive presentation template","tags":["Presentation Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"presentationTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/openid4vc/verification":{"get":{"operationId":"Openid4vcVerificationGetAllVerificationSessions","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_OpenId4VcVerification-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001c7xudvp2uvts","authorizationRequestUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d","authorizationRequestQrUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&qr=true","authorizationRequestDeeplinkUri":"openid4vp://?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&client_id=x509_san_dns%3Averifier.example.com","authorizationRequestDeeplinkQrUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&qr=true&deeplink=true","status":"requested","presentationTemplateId":"clu129ps200043eghxvhz22m1","credentials":[],"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/openid4vc/verification?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/openid4vc/verification?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all OpenID4VC verification sessions associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all verification sessions where the status is \"requested\" and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/openid4vc/verification?filter[status]=requested&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `createdAt`, `updatedAt`, `status`, `presentationTemplateId`\n- search: -\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve OpenID4VC verification sessions","tags":["OpenID4VC Verification"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"description":"Filter for records where the `createdAt` value exactly matches the provided date-time.","in":"query","name":"filter[createdAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or after the provided date-time.","in":"query","name":"filter[createdAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is after the provided date-time.","in":"query","name":"filter[createdAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or before the provided date-time.","in":"query","name":"filter[createdAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is before the provided date-time.","in":"query","name":"filter[createdAt][lt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value exactly matches the provided date-time.","in":"query","name":"filter[updatedAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or after the provided date-time.","in":"query","name":"filter[updatedAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is after the provided date-time.","in":"query","name":"filter[updatedAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or before the provided date-time.","in":"query","name":"filter[updatedAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is before the provided date-time.","in":"query","name":"filter[updatedAt][lt]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[status]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[presentationTemplateId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/openid4vc/verification/{openId4VcVerificationId}":{"get":{"operationId":"Openid4vcVerificationGetVerificationSession","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenId4VcVerification"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001c7xudvp2uvts","authorizationRequestUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d","authorizationRequestQrUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&qr=true","authorizationRequestDeeplinkUri":"openid4vp://?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&client_id=x509_san_dns%3Averifier.example.com","authorizationRequestDeeplinkQrUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&qr=true&deeplink=true","status":"requested","presentationTemplateId":"clu129ps200043eghxvhz22m1","credentials":[],"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}}}}}},"404":{"description":"OpenId4Vc Verification not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Retrieve a specific OpenID4VC verification session by its id.","summary":"Retrieve OpenID4VC verification session","tags":["OpenID4VC Verification"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"openId4VcVerificationId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/openid4vc/verification/request":{"post":{"operationId":"Openid4vcVerificationCreateRequest","responses":{"200":{"description":"OpenID4VC verification request created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenId4VcVerification"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001c7xudvp2uvts","authorizationRequestUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d","authorizationRequestQrUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&qr=true","authorizationRequestDeeplinkUri":"openid4vp://?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&client_id=x509_san_dns%3Averifier.example.com","authorizationRequestDeeplinkQrUri":"https://paradym.id/invitation?request_uri=https%3A%2F%2Fparadym.id%2Foid4vp%2Fa744eefb-f7e6-444d-8a38-24c0136e893e%2Fauthorization-requests%2F215d6f1a-14fd-47bc-86c8-2b707124718d&qr=true&deeplink=true","status":"requested","presentationTemplateId":"clu129ps200043eghxvhz22m1","credentials":[],"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}}}}}},"404":{"description":"Presentation Template not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}},"409":{"description":"The certificate that would sign the request has a key scheduled for deletion, so it can no longer sign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Create an OpenID4VC verification request for the selected presentation template.\n\nSee the API execution part of the [Verify Credentials](https://docs.paradym.id/api-and-dashboard/verify-credentials) guide for more information.\n\nThe verification session will automatically expire 5 minutes after it was created, after which\nthe URL is not accessible anymore and a presentation will not be accepted anymore.","summary":"Create OpenID4VC verification request","tags":["OpenID4VC Verification"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOpenId4VcVerification"},"example":{"presentationTemplateId":"clu129ps200043eghxvhz22m1"}}}}}},"/v1/wallets/{walletId}/openid4vc/issuance":{"get":{"operationId":"Openid4vcIssuanceGetAllIssuanceSessions","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_OpenId4VcIssuance-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","status":"offered","offerUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9","offerQrUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9&qr=true","offerDeeplinkUri":"openid-credential-offer://?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9","offerDeeplinkQrUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9&qr=true&deeplink=true","credentials":[{"id":"clwd3qyh0000108jz7tt69yny","credentialTemplateId":"clu921ps300047eghxvhz33m4","status":"offered","exchange":"openid4vc","format":"sd-jwt-vc","revocable":true}],"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/openid4vc/issuance?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/openid4vc/issuance?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all OpenID4VC issuance sessions associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all issuance sessions where the status is \"offered\" and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/openid4vc/issuance?filter[status]=offered&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `createdAt`, `updatedAt`, `status`\n- search: -\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve OpenID4VC issuance sessions","tags":["OpenID4VC Issuance"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"description":"Filter for records where the `createdAt` value exactly matches the provided date-time.","in":"query","name":"filter[createdAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or after the provided date-time.","in":"query","name":"filter[createdAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is after the provided date-time.","in":"query","name":"filter[createdAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or before the provided date-time.","in":"query","name":"filter[createdAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is before the provided date-time.","in":"query","name":"filter[createdAt][lt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value exactly matches the provided date-time.","in":"query","name":"filter[updatedAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or after the provided date-time.","in":"query","name":"filter[updatedAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is after the provided date-time.","in":"query","name":"filter[updatedAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or before the provided date-time.","in":"query","name":"filter[updatedAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is before the provided date-time.","in":"query","name":"filter[updatedAt][lt]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[status]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/openid4vc/issuance/{openId4VcIssuanceId}":{"get":{"operationId":"Openid4vcIssuanceGetIssuanceSession","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenId4VcIssuance"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","status":"offered","offerUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9","offerQrUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9&qr=true","offerDeeplinkUri":"openid-credential-offer://?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9","offerDeeplinkQrUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9&qr=true&deeplink=true","credentials":[{"id":"clwd3qyh0000108jz7tt69yny","credentialTemplateId":"clu921ps300047eghxvhz33m4","status":"offered","exchange":"openid4vc","format":"sd-jwt-vc","revocable":true}],"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}}}}}},"404":{"description":"OpenId4Vc Issuance Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Retrieve a specific OpenID4VC issuance session by its id.","summary":"Retrieve OpenID4VC issuance session","tags":["OpenID4VC Issuance"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"openId4VcIssuanceId","required":true,"schema":{"type":"string"}},{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]}},"/v1/wallets/{walletId}/openid4vc/issuance/offer":{"post":{"operationId":"Openid4vcIssuanceCreateOffer","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenId4VcIssuance"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","status":"offered","offerUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9","offerQrUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9&qr=true","offerDeeplinkUri":"openid-credential-offer://?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9","offerDeeplinkQrUri":"https://paradym.id/invitation?credential_offer_uri=https%3A%2F%2Fparadym.id%2Foid4vci%2F67cb8b38-78e1-4069-9db9-79933e399e43%2Foffers%2Ff135ce2f-ebba-47b3-a16e-83cf678827e9&qr=true&deeplink=true","credentials":[{"id":"clwd3qyh0000108jz7tt69yny","credentialTemplateId":"clu921ps300047eghxvhz33m4","status":"offered","exchange":"openid4vc","format":"sd-jwt-vc","revocable":true}],"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}}}}}},"404":{"description":"Credential Template(s) not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}},"409":{"description":"The certificate that would sign the credential has a key scheduled for deletion, so it can no longer sign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Create a OpenID4VC issuance offer for the selected credentials\n\nSee the API execution part of the [Issue Credential](https://docs.paradym.id/api-and-dashboard/issue-credentials) guide for more information.\n\nThe issuance session will automatically expire 7 minutes after it was created. The offer URL will expire\n5 minutes after it was created, after which the offer URL cannot be accessed anymore, and an authorization\nrequest will not be accepted anymore. The extra 2 minutes are for retrieving the credentials, which can be done\nafter the offer URL has expired.","summary":"Create OpenID4VC credential offer","tags":["OpenID4VC Issuance"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOpenId4VcIssuanceOffer"},"example":{"credentials":[{"credentialTemplateId":"clu921ps300047eghxvhz33m4","attributes":{"name":"John Doe"}}]}}}}}},"/v1/wallets/{walletId}/templates/credentials/mdoc":{"get":{"operationId":"MdocCredentialTemplatesGetAllCredentialTemplates","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_MdocCredentialTemplate-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"6421a8905c17830c188e2e2f","name":"My mDoc template","revocable":false,"description":"This is a description","format":"mdoc","issuer":{"signer":"certificate","keyType":"P-256"},"type":"org.example.ClubMembershipCard","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"future":{"months":6}},"attributes":{"org.example.ClubMembershipCard":{"properties":{"number":{"type":"number","name":"Membership number","description":"This is your membership number","required":true}}}},"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}],"meta":{"page":{},"prev":"/v1/wallets/6421a8905c17830c188e2e2f/templates/credentials/mdoc?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets/6421a8905c17830c188e2e2f/templates/credentials/mdoc?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}}},"description":"Retrieve all `mdoc` credential templates associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all mDoc VC credential templates where the name includes \"My Template\",\nordering them by the date they were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/templates/credentials/mdoc?filter?search[name]=My Template&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n- `include` - Include a relation model in the response.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `type`, `archived`\n- search: `name`\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n- include:\n - `trustedWallets` - load the Trusted Entities that are allowed to receive this credential.\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve mdoc credential templates","tags":["mDoc Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[type]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[archived]","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}},{"in":"query","name":"include","required":false,"schema":{"type":"string","enum":["trustedWallets"]}}]},"post":{"operationId":"MdocCredentialTemplatesCreateCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdocCredentialTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","name":"My mDoc template","revocable":false,"description":"This is a description","format":"mdoc","issuer":{"signer":"certificate","keyType":"P-256"},"type":"org.example.ClubMembershipCard","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"future":{"months":6}},"attributes":{"org.example.ClubMembershipCard":{"properties":{"number":{"type":"number","name":"Membership number","description":"This is your membership number","required":true}}}},"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}}}}}}},"description":"Create a new `mdoc` credential template.\n\nThe `validUntil` field must be set as a duration from the moment the\ncredential is issued, and it must not exceed 365 days.\n\n## Premium features\n- `localization` (template and attributes): Available on the Builder tier and up.\n- `trustedWallets`: Available on the Builder tier and up.\n- `authorization`: Available on the Pro tier and up.\n- `attributeProviderId`: Available on the Pro tier and up.","summary":"Create mdoc credential template","tags":["mDoc Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMdocCredentialTemplate"}}}}}},"/v1/wallets/{walletId}/templates/credentials/mdoc/{credentialTemplateId}":{"put":{"operationId":"MdocCredentialTemplatesUpdateCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdocCredentialTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","name":"My mDoc template","revocable":false,"description":"This is a description","format":"mdoc","issuer":{"signer":"certificate","keyType":"P-256"},"type":"org.example.ClubMembershipCard","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"future":{"months":6}},"attributes":{"org.example.ClubMembershipCard":{"properties":{"number":{"type":"number","name":"Membership number","description":"This is your membership number","required":true}}}},"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}}}}}}},"description":"Update a specific `mdoc` credential template by its id.\n\nThis will replace the entire template with the new one, except for the `type` and `issuer` fields (these can't be updated)\n\n## Premium features\n- `localization` (template and attributes): Available on the Builder tier and up.\n- `trustedWallets`: Available on the Builder tier and up.\n- `authorization`: Available on the Pro tier and up.\n- `attributeProviderId`: Available on the Pro tier and up.","summary":"Update mdoc credential template","tags":["mDoc Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMdocCredentialTemplate"}}}}},"get":{"operationId":"MdocCredentialTemplatesGetCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MdocCredentialTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","name":"My mDoc template","revocable":false,"description":"This is a description","format":"mdoc","issuer":{"signer":"certificate","keyType":"P-256"},"type":"org.example.ClubMembershipCard","background":{"color":"#FFFFFF","url":"https://example.com/image.png"},"text":{"color":"#000000"},"validUntil":{"future":{"months":6}},"attributes":{"org.example.ClubMembershipCard":{"properties":{"number":{"type":"number","name":"Membership number","description":"This is your membership number","required":true}}}},"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null,"trustedWallets":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","name":"My Wallet Provider","certificates":[{"certificate":"-----BEGIN CERTIFICATE-----\nMIIBnjCCAUSgAwIBAgIQN/SO2htOoQyFZubYJVKcujAKBggqhkjOPQQDAjAdMQsw\nCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wHhcNNzAwMTAxMDAwMDAwWhcNMjUx\nMTIyMDgyMjEyWjAdMQswCQYDVQQGEwJOTDEOMAwGA1UEAxMFQW5pbW8wOTATBgcq\nhkjOPQIBBggqhkjOPQMBBwMiAALcD1XzKepFxWMAOqV+ln1fybBt7DRO5CV0f9A6\nmRp2xaOBhTCBgjAqBgNVHQ4EIwQhAtwPVfMp6kXFYwA6pX6WfV/JsG3sNE7kJXR/\n0DqZGnbFMAsGA1UdDwQEAwIChDAsBgNVHSMEJTAjgCEC3A9V8ynqRcVjADqlfpZ9\nX8mwbew0TuQldH/QOpkadsUwGQYDVR0RBBIwEIIOZnVua2UuYW5pbW8uaWQwCgYI\nKoZIzj0EAwIDSAAwRQIgPdbgy3gL/8BFFkMCoeDGLYt5BAMKZhqg19krQgmbBDAC\nIQCPJ08ouPoTyUsQ0hYGemoC2nrvOj1N//WYvj5TRoC5Dw==\n-----END CERTIFICATE-----","name":"Wallet provider root certificate","type":"wallet"}],"dids":[],"etsiLotes":[]}]}}}}}}},"description":"Retrieve a specific `mdoc` credential template by its id.\n\nThis endpoint supports the following query parameters:\n- `include` - Include a relation model in the response.\n\nThe following parameters are supported for this endpoint:\n- include:\n - `trustedWallets` - load the Trusted Entities that are allowed to receive this credential.","summary":"Retrieve mdoc credential template","tags":["mDoc Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}},{"in":"query","name":"include","required":false,"schema":{"type":"string","enum":["trustedWallets"]}}]},"delete":{"operationId":"MdocCredentialTemplatesArchiveTemplate","responses":{"204":{"description":"Archived"},"404":{"description":"Not found error"},"409":{"description":"Credential template is already archived"}},"description":"Archive a specific `mdoc` credential template by its id.","summary":"Archive mdoc credential template","tags":["mDoc Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/mdoc/{credentialTemplateId}/json-schema":{"get":{"operationId":"MdocCredentialTemplatesGetCredentialTemplateJsonSchema","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateJsonSchema"},"examples":{"Example 1":{"value":{"$schema":"https://json-schema.org/draft-07/schema#","$id":"templates/credential/mdoc/6421a8905c17830c188e2e2f","title":"My mDoc VC template","type":"object","properties":{"myNamespace":{"type":"object","required":["myAttribute"],"additionalProperties":false,"properties":{"myAttribute":{"type":"string","title":"My attribute","description":"This is a attribute"}}}},"required":[],"additionalProperties":false}}}}}}},"description":"Get the JSON schema for an `mdoc` credential template.\n\nYou could use this for to generate forms or validate the input.","summary":"Retrieve JSON schema for mdoc credential template","tags":["mDoc Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/mdoc/{credentialTemplateId}/unarchive":{"post":{"operationId":"MdocCredentialTemplatesUnarchiveTemplate","responses":{"204":{"description":"Unarchived"},"404":{"description":"Not found error"},"409":{"description":"Credential template is not archived"}},"description":"Unarchive a specific `mdoc` credential template by its id.","summary":"Unarchive mdoc credential template","tags":["mDoc Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/keys":{"get":{"operationId":"KeysGetAllKeys","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_ManagedKey-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","status":"active","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}],"meta":{"page":{}}}}}}}}},"description":"Retrieve the keys associated with the provided `walletId`, and, when a key's deletion has been\narranged, when its material is expected to be gone. Destroyed keys are listed too, so a key does\nnot silently vanish once it is gone.\n\nThe backend a key is on and the certificate it signs for are not returned by default; request them\nwith `?include=keyBackend` and `?include=certificate`.\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\n- `include` - Include a relation model in the response. Several can be requested at once, comma separated.\n\nThe following parameters are supported for this endpoint:\n- filter:\n - `status` - one of `active`, `pendingDeletion`, `deleted`.\n - `keyBackend.type` - the kind of backend the key is on, one of `software`, `gcpKms`, `openbao`.\n- sort: `createdAt`, `updatedAt` (default: `sort=-id`)\n- include:\n - `keyBackend` - load the backend the key is on, as `GET /key-backends` lists it.\n - `certificate` - load the certificate this key signs for.\n - `certificateSigningRequest` - load the signing request this key was created for. It stays listed after its signed certificate is imported.","summary":"Retrieve keys","tags":["Keys"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[status]","required":false,"schema":{"$ref":"#/components/schemas/ManagedKeyStatus"}},{"in":"query","name":"filter[keyBackend.type]","required":false,"schema":{"type":"string","enum":["software","gcpKms","openbao"]}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["createdAt","-createdAt","updatedAt","-updatedAt","-id","id"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}},{"in":"query","name":"include","required":false,"schema":{}}]}},"/v1/wallets/{walletId}/keys/{keyId}":{"delete":{"operationId":"KeysDeleteKey","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedKey"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","status":"pendingDeletion","scheduledDeletionAt":"2023-02-02T00:00:00.000Z","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}},"404":{"description":"Key not found"},"409":{"description":"The key is already scheduled for deletion, or a certificate or signing request still needs it"}},"description":"Delete a key ahead of the automatic clean-up.\n\nKeys are reclaimed on their own once the certificate they back is revoked or expired, so you\nrarely need this. An **imported** certificate never gets there, since only the issuing CA can\nrevoke it, so its key would be held, and billed, until the certificate expired. This releases it.\n\nThe key stops working immediately and its material is destroyed after the deployment's grace\nperiod. Until then, `POST /keys/{keyId}/cancel-deletion` undoes it.\n\n**Once the material is destroyed this cannot be undone, and it can cost you the ability to\nrevoke.** A deactivated certificate can still revoke what it issued, and that needs this key to\nsign the status list update. Only delete a key when you are sure nothing issued under its\ncertificate will need revoking.\n\nRejected while anything still needs the key, naming every blocking record:\n- a certificate that is `active`, `pendingActivation` or `pendingRevocation`;\n- an `active` certificate signing request, whose signed certificate could still be imported.","summary":"Delete a key","tags":["Keys"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"keyId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/keys/{keyId}/cancel-deletion":{"post":{"operationId":"KeysCancelKeyDeletion","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedKey"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","status":"active","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}},"404":{"description":"Key not found"},"409":{"description":"The key has no scheduled deletion, its material is already destroyed, or nothing is left for it to do"}},"description":"Cancel a scheduled deletion, putting the key back to work.\n\nPossible for the whole grace period, on every backend: where the backend has already been asked\nto destroy the key, Paradym restores it first, so success always means the key can sign again.\n\n**Only where cancelling gives you back something usable.** Rejected when the certificate the\nkey signs for is revoked or expired, since such a key can no longer sign, have its status lists\nrefreshed, or therefore revoke. That is also what Paradym reclaims keys on, so a deletion you did\nnot ask for cannot be cancelled; create a new certificate instead.\n\nIt is worth doing after deleting a key by hand, where a deactivated certificate or a pending\nsigning request still needs it.","summary":"Cancel key deletion","tags":["Keys"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"keyId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/key-backends":{"get":{"operationId":"KeyBackendsGetAvailableKeyBackends","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableKeyBackends"},"examples":{"Example 1":{"value":{"keyBackends":[{"id":"software","type":"software","name":"Software","keyTypes":["P-256","Ed25519"]},{"id":"gcpKms","type":"gcpKms","name":"Google Cloud KMS","keyTypes":["P-256"]}]}}}}}}},"description":"Retrieve the key backends that are available (enabled and configured) for this deployment.\n\nThe `software` backend is always available. Externally-managed backends (e.g. Google Cloud KMS)\nare only returned when they are enabled and configured for the deployment. Use this to know\nwhich backends can be selected when creating a certificate.\n\nEach backend holds:\n- `id` - pass this as `keyBackend` when creating a certificate or signing request. For a\n  globally-enabled backend this equals its `type`.\n- `type` - the backend type this entry is for.\n- `name` - a human-readable label for the backend, used to display the option in the dashboard.\n- `keyTypes` - the certificate key types it can create. Not every backend can create every type,\n  so check this before pairing a `keyBackend` with a `keyType`.","summary":"Retrieve available key backends","tags":["Key backends"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]}},"/v1/wallets/{walletId}/issuance":{"get":{"operationId":"IssuedCredentialsGetAllIssuedCredentials","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_IssuedCredential-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clwd3q1j8000008jzcworgqon","credentialTemplateId":"clu921ps300047eghxvhz33m4","format":"sd-jwt-vc","status":"issued","revocable":true}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/issuance?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/issuance?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all issued credentials associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all issued credentials where the format is `sd-jwt-vc`, there is no exchange and limiting the page size to 10\n```\n/v1/wallets/{walletId}/issuance?filter[format]=sd-jwt-vc&filter[exchange]=null&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `format`, `status`, `credentialTemplateId`, `exchange` (pass 'null' for looking for issued credentials without exchange)\n- search: -\n- sort: `id` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve Issued Credentials","tags":["Issued Credentials"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[format]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[status]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[credentialTemplateId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[exchange]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/issuance/sd-jwt-vc":{"post":{"operationId":"DirectIssuanceIssueSdJwtVc","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectlyIssueSdJwtVcResponse"},"examples":{"Example 1":{"value":{"credential":{"id":"clwd3q1j8000008jzcworgqon","credentialTemplateId":"clu921ps300047eghxvhz33m4","format":"sd-jwt-vc","status":"issued","revocable":true},"sdJwtVc":{"encoded":"ey...","decoded":{"vct":"https://metadata.paradym.id/types/134123-example","iss":"did:web:metadata.paradym.id:a532849a-9790-4faa-a75b-b3d59d3094cc"}}}}}}}},"404":{"description":"Credential Template not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}},"409":{"description":"The certificate that would sign the credential has a key scheduled for deletion, so it can no longer sign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Directly issue an `sd-jwt-vc` based on a [SD-JWT VC Credential Template](#tags/sd-jwt-vc-credential-templates).\n\nBinding a directly issued credential to a holder DID is not supported yet when directly issuing, you can use [OpenID4VC Issuance](#tags/openid4vc-issuance) to\nbind an issued `sd-jwt-vc` to a holder DID.\n\nNote that credential branding you have configured on the template is only sent to the holder when using OpenID4VC for issuance\nand thus won't be available to the holder of the credential.","summary":"Directly issue sd-jwt-vc","tags":["Direct Issuance"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectlyIssueSdJwtVc"}}}}}},"/v1/wallets/{walletId}/dids":{"get":{"operationId":"DidsGetAllDids","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_Did-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","did":"did:web:metadata.paradym.id:387731b8-8dcf-4155-90ec-28ef3ec36b79","method":"web","network":"did:web"}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/dids?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/dids?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all DIDs associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all dids where method is `cheqd` and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/dids?filter[method]=cheqd&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `did`, `method`, `network`\n- search: `did`\n- sort: `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve DIDs","tags":["DIDs"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[did]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[method]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[network]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[did]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["createdAt","-createdAt","updatedAt","-updatedAt","-id","id"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/connections":{"get":{"operationId":"DidcommConnectionsGetAllConnections","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_DidcommConnection-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","displayName":"Paradym Wallet","logoUrl":"https://example.com/image.png","ourDid":"did:peer:1zQmYazVPg5HxF5iCTZocFi9vYSrEy92ZotymDyADzr8rp27","theirDid":"did:peer:1zQmRAxfDpKh8sdGcS7bUbWYebpQHKWe4RfYfYQpz7nnJFNg","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/connections?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/connections?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all DIDComm connections associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all didcomm connections where displayName includes \"Wallet\" and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/didcomm/connections?search[displayName]=Wallet&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `displayName`, `didcommInvitationId`\n- search: `displayName`\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve DIDComm connections","tags":["DIDComm Connections"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[displayName]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[didcommInvitationId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[displayName]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/connections/{didcommConnectionId}":{"get":{"operationId":"DidcommConnectionsGetConnection","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommConnection"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","displayName":"Paradym Wallet","logoUrl":"https://example.com/image.png","ourDid":"did:peer:1zQmYazVPg5HxF5iCTZocFi9vYSrEy92ZotymDyADzr8rp27","theirDid":"did:peer:1zQmRAxfDpKh8sdGcS7bUbWYebpQHKWe4RfYfYQpz7nnJFNg","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}},"404":{"description":"DIDComm connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Retrieve a specific DIDComm connection by its id.","summary":"Retrieve DIDComm connection","tags":["DIDComm Connections"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"didcommConnectionId","required":true,"schema":{"type":"string"}},{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]},"delete":{"operationId":"DidcommConnectionsDeleteConnection","responses":{"204":{"description":"Deleted"},"404":{"description":"DIDComm connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Delete a specific DIDComm connection by its id.","summary":"Delete DIDComm connection","tags":["DIDComm Connections"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"didcommConnectionId","required":true,"schema":{"type":"string"}},{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]},"post":{"operationId":"DidcommConnectionsUpdateConnection","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommConnection"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","displayName":"Paradym Wallet","logoUrl":"https://example.com/image.png","ourDid":"did:peer:1zQmYazVPg5HxF5iCTZocFi9vYSrEy92ZotymDyADzr8rp27","theirDid":"did:peer:1zQmRAxfDpKh8sdGcS7bUbWYebpQHKWe4RfYfYQpz7nnJFNg","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}},"404":{"description":"DIDComm connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Update a specific DIDComm connection by its id.\n\nYou can only update the `displayName`.","summary":"Update DIDComm connection","tags":["DIDComm Connections"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"didcommConnectionId","required":true,"schema":{"type":"string"}},{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDidcommConnection"}}}}}},"/v1/wallets/{walletId}/didcomm/invitations":{"get":{"operationId":"DidcommInvitationsGetAllInvitations","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_DidcommInvitation-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","invitationUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4","invitationQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true","invitationDeeplinkUri":"didcomm://?oobUrl=https%3A%2F%2Fparadym.id%2Finvitation%2F62975988-14b7-4ce3-a1d2-61154993e6b4%3Fraw%3Dtrue","invitationDeeplinkQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true&deeplink=true","status":"completed","did":"did:web","reusable":false,"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/invitations?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/invitations?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all DIDComm invitations associated with the provided `walletId`.\n\n## Example\nAn example query that searchs for all didcomm invitations where reusable is set to `false` and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/didcomm/invitations?filter[reusable]=false&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `reusable`\n- search: -\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve DIDComm invitations","tags":["DIDComm Invitations"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[reusable]","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/invitations/{didcommInvitationId}":{"get":{"operationId":"DidcommInvitationsGetInvitation","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommInvitation"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","invitationUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4","invitationQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true","invitationDeeplinkUri":"didcomm://?oobUrl=https%3A%2F%2Fparadym.id%2Finvitation%2F62975988-14b7-4ce3-a1d2-61154993e6b4%3Fraw%3Dtrue","invitationDeeplinkQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true&deeplink=true","status":"completed","did":"did:web","reusable":false,"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z"}}}}}},"404":{"description":"DIDComm invitation not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Retrieve a specific DIDComm invitation by its id.","summary":"Retrieve DIDComm invitation","tags":["DIDComm Invitations"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"didcommInvitationId","required":true,"schema":{"type":"string"}},{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]},"delete":{"operationId":"DidcommInvitationsDeleteInvitation","responses":{"204":{"description":"Deleted"},"404":{"description":"DIDComm invitation not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Delete a specific DIDComm invitation by its id.","summary":"Delete DIDComm invitation","tags":["DIDComm Invitations"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"didcommInvitationId","required":true,"schema":{"type":"string"}},{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]}},"/v1/wallets/{walletId}/didcomm/invitations/receive":{"post":{"operationId":"DidcommInvitationsReceiveInvitation","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"properties":{"didcommConnection":{"$ref":"#/components/schemas/DidcommConnection"}},"required":["didcommConnection"],"type":"object"},"examples":{"Example 1":{"value":{"connection":{"id":"clu6p64z80001a5muhvp2uvpy","displayName":"Paradym Wallet","logoUrl":"https://example.com/image.png","ourDid":"did:peer:1zQmYazVPg5HxF5iCTZocFi9vYSrEy92ZotymDyADzr8rp27","theirDid":"did:peer:1zQmRAxfDpKh8sdGcS7bUbWYebpQHKWe4RfYfYQpz7nnJFNg","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}}}},"description":"Receive a DIDComm invitation.\n\nOnly `https://didcomm.org/out-of-band` invitations using `handshake_protocols` including `https://didcomm.org/didexchange/1.x` (where `x` may be any version)\nare supported. Invitations including attached messages, using no `handshake_protocols`, or using a handshake protocol different than DID Exchange will\nresult in an error.","summary":"Receive DIDComm invitation","tags":["DIDComm Invitations"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiveDidcommInvitation"}}}}}},"/v1/wallets/{walletId}/didcomm/invitations/create-connection":{"post":{"operationId":"DidcommInvitationsCreateConnectionInvitation","responses":{"201":{"description":"Created didcomm invitation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommInvitation"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","invitationUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4","invitationQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true","invitationDeeplinkUri":"didcomm://?oobUrl=https%3A%2F%2Fparadym.id%2Finvitation%2F62975988-14b7-4ce3-a1d2-61154993e6b4%3Fraw%3Dtrue","invitationDeeplinkQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true&deeplink=true","status":"completed","did":"did:web","reusable":false,"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z"}}}}}}},"description":"Create a DIDComm connection invitation.\n\nThe invitation will be a `https://didcomm.org/out-of-band` invitation,\nleveraging `https://didcomm.org/didexchange/1.x` (where `x` may be any version) as the\nvalue for `handshake_protocols`.\n\nThe invitation will automatically expire 30 days after it was created.","summary":"Create DIDComm connection invitation","tags":["DIDComm Invitations"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDidcommConnectionInvitation"}}}}}},"/v1/wallets/{walletId}/didcomm/verification":{"get":{"operationId":"DidcommVerificationGetAllVerificationSessions","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_DidcommVerification-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","status":"verified","credentials":[{"format":"anoncreds","holder":"did:example:holder","issuer":"did:example:issuer","isValid":true,"exchange":"didcomm","presentedAttributes":{"name":"Alice","age":{"minimum":"18"}}}],"didcommConnectionId":"clu6p64z80001a5muhvp2uvpy","didcommInvitationId":"clu6p64z80001a5muhvp2uvpy","presentationTemplateId":"clu6p64z80001a5muhvp2uvpy","createdAt":"2024-05-22T00:00:00.000Z","updatedAt":"2024-05-22T00:00:00.000Z","expiresAt":"2024-06-22T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/verification?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/verification?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all DIDComm verification sessions associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all verification sessions where the status is \"offered\" and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/didcomm/verification?filter[status]=offered&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `createdAt`, `updatedAt`, `status`, `presentationTemplateId`\n- search: -\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve DIDComm verification sessions","tags":["DIDComm Verification"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"description":"Filter for records where the `createdAt` value exactly matches the provided date-time.","in":"query","name":"filter[createdAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or after the provided date-time.","in":"query","name":"filter[createdAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is after the provided date-time.","in":"query","name":"filter[createdAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or before the provided date-time.","in":"query","name":"filter[createdAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is before the provided date-time.","in":"query","name":"filter[createdAt][lt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value exactly matches the provided date-time.","in":"query","name":"filter[updatedAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or after the provided date-time.","in":"query","name":"filter[updatedAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is after the provided date-time.","in":"query","name":"filter[updatedAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or before the provided date-time.","in":"query","name":"filter[updatedAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is before the provided date-time.","in":"query","name":"filter[updatedAt][lt]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[status]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[presentationTemplateId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[didcommConnectionId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[didcommInvitationId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/verification/{didcommVerificationId}":{"get":{"operationId":"DidcommVerificationGetVerificationSession","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommVerification"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","status":"verified","credentials":[{"format":"anoncreds","holder":"did:example:holder","issuer":"did:example:issuer","isValid":true,"exchange":"didcomm","presentedAttributes":{"name":"Alice","age":{"minimum":"18"}}}],"didcommConnectionId":"clu6p64z80001a5muhvp2uvpy","didcommInvitationId":"clu6p64z80001a5muhvp2uvpy","presentationTemplateId":"clu6p64z80001a5muhvp2uvpy","createdAt":"2024-05-22T00:00:00.000Z","updatedAt":"2024-05-22T00:00:00.000Z","expiresAt":"2024-06-22T00:00:00.000Z"}}}}}},"404":{"description":"Verification not found"}},"description":"Retrieve a DIDComm verification session by its ID.","summary":"Retrieve a DIDComm verification session by its ID.","tags":["DIDComm Verification"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"didcommVerificationId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/verification/request":{"post":{"operationId":"DidcommVerificationCreateRequest","responses":{"200":{"description":"Verification request sent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestDidcommVerificationResponse"},"examples":{"Example 1":{"value":{"didcommVerification":{"id":"clu6p64z80001a5muhvp2uvpy","status":"verified","credentials":[{"format":"anoncreds","holder":"did:example:holder","issuer":"did:example:issuer","isValid":true,"exchange":"didcomm","presentedAttributes":{"name":"Alice","age":{"minimum":"18"}}}],"didcommConnectionId":"clu6p64z80001a5muhvp2uvpy","didcommInvitationId":"clu6p64z80001a5muhvp2uvpy","presentationTemplateId":"clu6p64z80001a5muhvp2uvpy","createdAt":"2024-05-22T00:00:00.000Z","updatedAt":"2024-05-22T00:00:00.000Z","expiresAt":"2024-06-22T00:00:00.000Z"},"didcommInvitation":{"id":"clu6p64z80001a5muhvp2uvpy","invitationUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4","invitationQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true","invitationDeeplinkUri":"didcomm://?oobUrl=https%3A%2F%2Fparadym.id%2Finvitation%2F62975988-14b7-4ce3-a1d2-61154993e6b4%3Fraw%3Dtrue","invitationDeeplinkQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true&deeplink=true","status":"completed","did":"did:web","reusable":false,"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z"}}}}}}},"404":{"description":"Presentation Template not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Create an DIDComm verification request for the selected presentation template.\n\nThe request and invitation will automatically expire 30 days after it was created.","summary":"Create DIDComm verification request","tags":["DIDComm Verification"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestDidcommVerification"}}}}}},"/v1/wallets/{walletId}/didcomm/messaging/basic/send":{"post":{"operationId":"DidcommMessagingSendBasicMessage","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendDidcommBasicMessageResponse"},"examples":{"Example 1":{"value":{"didcommConnectionId":"<connection-id>","messageId":"bfc0c509-f271-4ea9-b03f-009a588c9869","replyMessageId":"3599326d-e70f-4603-af9c-534b613f1f6c","sentTime":"2024-05-02T00:00:00.000Z","message":"Hello, world!"}}}}}}},"description":"Send a basic message to an existing connection","summary":"Send a basic message","tags":["DIDComm Messaging"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendDidcommBasicMessage"}}}}}},"/v1/wallets/{walletId}/didcomm/messaging/custom/send":{"post":{"operationId":"DidcommMessagingSendCustomMessage","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendDidcommCustomMessageResponse"}}}}},"description":"Send a custom message to an existing connection.\n\nThe following protocols are not allowed as `@type`, as they are natively supported by Paradym:\n- `https://didcomm.org/connections`\n- `https://didcomm.org/didexchange`\n- `https://didcomm.org/issue-credential`\n- `https://didcomm.org/present-proof`\n- `https://didcomm.org/basicmessage`\n- `https://didcomm.org/out-of-band`\n\nIn addition the `did:sov:BzCbsNYhMrjHiqZDTUASHg;spec` is not allowed to be used as the message prefix in the `@type` of a custom message.","summary":"Send a custom message","tags":["DIDComm Messaging"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendDidcommCustomMessage"}}}}}},"/v1/wallets/{walletId}/didcomm/mediators":{"get":{"operationId":"DidcommMediatorsGetAllMediators","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_DidcommMediator-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"6421a8905c17830c188e2e2f","name":"Example mediator","region":"gcp-eu-west-1","createdAt":"2023-01-01T00:00:00.000Z","updatedAt":"2023-01-25T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/6421a8905c17830c188e2e2f/didcomm/mediators?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets/6421a8905c17830c188e2e2f/didcomm/mediators?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}},"400":{"description":"Error parsing request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiErrorJson"}}}}},"description":"Get all the mediators for the current user. All of these you can use to allow certain public keys to connect to the mediator.\n\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `sort` - Sort the results by the given property. The default is `sort=-id`.\n\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve mediators","tags":["DIDComm Mediators"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/mediators/{didcommMediatorId}":{"get":{"operationId":"DidcommMediatorsGetMediatorById","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommMediator"}}}}},"description":"Get a specific DIDcomm mediator by its id.","summary":"Retrieve mediator","tags":["DIDComm Mediators"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"didcommMediatorId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/mediators/{didcommMediatorId}/connections":{"get":{"operationId":"DidcommMediatorsGetMediatorConnectionsPaginated","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_DidcommMediatorConnection-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"6421a8905c17830c188e2e2f","didcommMediatorId":"6421a8905c17830c188e2e2f","initialPublicKeyBase58":"publicKeyBase58","status":"active","updatedAt":"2023-01-25T00:00:00.000Z","createdAt":"2023-01-01T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/6421a8905c17830c188e2e2f/didcomm/mediators/6421a8905c17830c188e2e2f/connections?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets/6421a8905c17830c188e2e2f/didcomm/mediators/6421a8905c17830c188e2e2f/connections?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}},"400":{"description":"Error parsing request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiErrorJson"}}}}},"description":"This gives the possibility to fetch mediator connections.\n\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `sort` - Sort the results by the given property.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `status`, `initialPublicKeyBase58`\n- search: -\n- sort: `id`, `createdAt`, `updatedAt`\n\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve mediator connections","tags":["DIDComm Mediators"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"didcommMediatorId","required":true,"schema":{"type":"string"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[status]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[initialPublicKeyBase58]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"DidcommMediatorsAllowMediatorConnection","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommMediatorConnection"}}}}},"description":"Allow a mediator connection to be created based on a specific public key. When the wallet tries to connect with the mediator it will be matched with the public key.\nAfter it's matched and the connection is created, the status of the mediator connection will become active.","summary":"Allow mediator connection based on public key","tags":["DIDComm Mediators"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"description":"- The didcomm mediator to create the pending connection in.","in":"path","name":"didcommMediatorId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"initialPublicKeyBase58":{"type":"string"}},"required":["initialPublicKeyBase58"],"type":"object"}}}}}},"/v1/wallets/{walletId}/didcomm/mediators/{didcommMediatorId}/connections/{didcommMediatorConnectionId}":{"get":{"operationId":"DidcommMediatorsGetMediatorConnectionById","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommMediatorConnection"}}}}},"description":"Get a specific mediator connection by its id.","summary":"Retrieve mediator connection","tags":["DIDComm Mediators"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"didcommMediatorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"didcommMediatorConnectionId","required":true,"schema":{"type":"string"}}]},"delete":{"operationId":"DidcommMediatorsDeleteMediatorConnection","responses":{"204":{"description":"Deleted"},"404":{"description":"Not found error"}},"description":"Delete a mediator connection. If the connection has not been established yet, this will revoke the allowance for a mediator connection.\nIf a connection has already been established, this will delete the conneciton and prevent the wallet from using the mediator going forward.","summary":"Delete mediator connection","tags":["DIDComm Mediators"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"didcommMediatorId","required":true,"schema":{"type":"string"}},{"in":"path","name":"didcommMediatorConnectionId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/issuance":{"get":{"operationId":"DidcommIssuanceGetAllIssuanceSessions","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_DidcommIssuance-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","status":"offered","credential":{"id":"clwd3ru0s000008l4bh7w2kit","credentialTemplateId":"clu921ps300047eghxvhz33m4","status":"offered","exchange":"didcomm","format":"anoncreds","revocable":false},"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/issuance?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/didcomm/issuance?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all DIDComm issuance sessions associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all issuance sessions where the status is \"offered\" and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/didcomm/issuance?filter[status]=offered&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `createdAt`, `updatedAt`, `status`, `didcommConnectionId`, `didcommInvitationId`\n- search: -\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve DIDComm issuance sessions","tags":["DIDComm Issuance"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"description":"Filter for records where the `createdAt` value exactly matches the provided date-time.","in":"query","name":"filter[createdAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or after the provided date-time.","in":"query","name":"filter[createdAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is after the provided date-time.","in":"query","name":"filter[createdAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is equal to or before the provided date-time.","in":"query","name":"filter[createdAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `createdAt` value is before the provided date-time.","in":"query","name":"filter[createdAt][lt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value exactly matches the provided date-time.","in":"query","name":"filter[updatedAt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or after the provided date-time.","in":"query","name":"filter[updatedAt][gte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is after the provided date-time.","in":"query","name":"filter[updatedAt][gt]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is equal to or before the provided date-time.","in":"query","name":"filter[updatedAt][lte]","required":false,"schema":{"type":"string"}},{"description":"Filter for records where the `updatedAt` value is before the provided date-time.","in":"query","name":"filter[updatedAt][lt]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[status]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[didcommConnectionId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[didcommInvitationId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/didcomm/issuance/{didcommIssuanceId}":{"get":{"operationId":"DidcommIssuanceGetIssuanceSession","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidcommIssuance"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","status":"offered","credential":{"id":"clwd3ru0s000008l4bh7w2kit","credentialTemplateId":"clu921ps300047eghxvhz33m4","status":"offered","exchange":"didcomm","format":"anoncreds","revocable":false},"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}}}}}},"404":{"description":"Didcomm Issuance Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Retrieve a specific DIDComm issuance session by its id.","summary":"Retrieve DIDComm issuance session","tags":["DIDComm Issuance"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"didcommIssuanceId","required":true,"schema":{"type":"string"}},{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}]}},"/v1/wallets/{walletId}/didcomm/issuance/offer":{"post":{"operationId":"DidcommIssuanceCreateOffer","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDidcommIssuanceOfferResponse"},"examples":{"Example 1":{"value":{"didcommInvitation":{"id":"clu6p64z80001a5muhvp2uvpy","invitationUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4","invitationQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true","invitationDeeplinkUri":"didcomm://?oobUrl=https%3A%2F%2Fparadym.id%2Finvitation%2F62975988-14b7-4ce3-a1d2-61154993e6b4%3Fraw%3Dtrue","invitationDeeplinkQrUri":"https://paradym.id/invitation/62975988-14b7-4ce3-a1d2-61154993e6b4?qr=true&deeplink=true","status":"completed","did":"did:web","reusable":false,"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z"},"didcommIssuance":{"id":"clu6p64z80001a5muhvp2uvpy","status":"offered","credential":{"id":"clwd3ru0s000008l4bh7w2kit","credentialTemplateId":"clu921ps300047eghxvhz33m4","status":"offered","exchange":"didcomm","format":"anoncreds","revocable":false},"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2023-02-03T00:00:00.000Z","error":null}}}}}}},"404":{"description":"DIDComm connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParadymError"}}}}},"description":"Create or send a DIDComm issuance offer for the provided credential. Only credential templates for the `anoncreds` format are currently supported for usage with DIDComm offers.\n\nIf a `didcommConnectionId` is provided the offer will be sent directly to the connection, if no `didcommConnectionId` is provided, an invitation will\nbe created containing the message. You can optionally provide `createConnection` to also create a connection as part of the credential issuance\nso you can use it for future exchanges with the holder.\n\nIf an invitation will be created, it will be returned as part of this method. If you need\nthe invitation in the future, you can fetch it based on the `didcommInvitationId` available in the DIDComm issuance session.\n\nThe offer and invitation will automatically expire 30 days after it was created.\n\nSee the API execution part of the [Issue Credential](https://docs.paradym.id/api-and-dashboard/issue-credentials) guide for more information.","summary":"Create DIDComm issuance offer","tags":["DIDComm Issuance"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDidcommIssuanceOffer"}}}}}},"/v1/wallets/{walletId}/certificates/csrs":{"get":{"operationId":"CertificateSigningRequestsGetAllCertificateSigningRequests","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_CertificateSigningRequest-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","expiresAt":"2025-02-01T00:00:00.000Z","certificateSigningRequest":"-----BEGIN CERTIFICATE REQUEST-----\nMIIBVTCB/AIBADAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0oC0wKwYJKoZIhvcN\nAQkOMR4wHDAaBgNVHREEEzARgg9leGFtcGxlLmNvbTAKBggqhkjOPQQDAgNIADBF\nAiEAw9qPTJqFqFQ8NM7qXxJqY0L3pNJcaKqhV0w9JYp0RYACIE3jFJq3l0hfR9uZ\nG9Cx7YmDqV3kQ7hY5j0rZ0qM0qHy\n-----END CERTIFICATE REQUEST-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"issuerSignCredential","status":"active"}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/certificates/csrs?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/certificates/csrs?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all certificate signing requests associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all certificate signing requests and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/certificates/csrs?sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `type`, `keyType`, `subjectKeyIdentifier`\n- search: -\n- sort: `createdAt`, `updatedAt`, `expiresAt`, `id`, `type`, `keyType` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve certificate signing requests","tags":["Certificate Signing Requests"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[type]","required":false,"schema":{"$ref":"#/components/schemas/CertificateSigningRequestType"}},{"in":"query","name":"filter[keyType]","required":false,"schema":{"$ref":"#/components/schemas/SupportedCertificateKeyType"}},{"in":"query","name":"filter[subjectKeyIdentifier]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["createdAt","-createdAt","updatedAt","-updatedAt","expiresAt","-expiresAt","-id","id","type","-type","keyType","-keyType"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"CertificateSigningRequestsCreateCertificateSigningRequest","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificateSigningRequest"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","expiresAt":"2025-02-01T00:00:00.000Z","certificateSigningRequest":"-----BEGIN CERTIFICATE REQUEST-----\nMIIBVTCB/AIBADAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0oC0wKwYJKoZIhvcN\nAQkOMR4wHDAaBgNVHREEEzARgg9leGFtcGxlLmNvbTAKBggqhkjOPQQDAgNIADBF\nAiEAw9qPTJqFqFQ8NM7qXxJqY0L3pNJcaKqhV0w9JYp0RYACIE3jFJq3l0hfR9uZ\nG9Cx7YmDqV3kQ7hY5j0rZ0qM0qHy\n-----END CERTIFICATE REQUEST-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"issuerSignCredential","status":"active"}}}}}}},"description":"Create a new certificate signing request based on the [PKCS #10](https://datatracker.ietf.org/doc/html/rfc2986) specification.\n\nCreating externally signed certificates is not available in the Free tier.\n\nThe returned certificate signing request is encoded as PEM.\n\nWhen creating a certificate signing request you must provide:\n- `type` - the type of the certificate signing request\n- `keyType` - the type of the key to include in the certificate signing request. Supported are P-256 and Ed25519\n- `countryName` - uppercase alpha-2 country code as defined in ISO 3166-1\n- `commonName` - name of the certificate subject, if not provided the url of the\n  issuer/verifier will be used (depending on the type of the certificate)\n\nOptionally you can provide specific `capabilities` that must be supported for this certificate.","summary":"Create certificate signing request","tags":["Certificate Signing Requests"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCertificateSigningRequest"}}}}}},"/v1/wallets/{walletId}/certificates/csrs/{certificateSigningRequestId}":{"delete":{"operationId":"CertificateSigningRequestsDeleteCertificateSigningRequest","responses":{"204":{"description":"No content"}},"description":"Delete a certificate signing request.","summary":"Delete certificate signing request","tags":["Certificate Signing Requests"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"certificateSigningRequestId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/certificates/csrs/{certificateSigningRequestId}/import":{"post":{"operationId":"CertificateSigningRequestsImportCertificateForCertificateSigningRequest","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificateSigningRequest"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","certificateId":"cmkcvtfvx00003b6lqmq5fa0p","status":"imported","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z","certificateSigningRequest":"-----BEGIN CERTIFICATE REQUEST-----\nMIIBVTCB/AIBADAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0oC0wKwYJKoZIhvcN\nAQkOMR4wHDAaBgNVHREEEzARgg9leGFtcGxlLmNvbTAKBggqhkjOPQQDAgNIADBF\nAiEAw9qPTJqFqFQ8NM7qXxJqY0L3pNJcaKqhV0w9JYp0RYACIE3jFJq3l0hfR9uZ\nG9Cx7YmDqV3kQ7hY5j0rZ0qM0qHy\n-----END CERTIFICATE REQUEST-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"issuerSignCredential"}}}}}}},"description":"Import a certificate for a certificate signing request.\n\nOnce a certificate signing request has been created, you can use this endpoint to import\nthe signed certificate. The certificate will be validated against the certificate signing\nrequest to ensure it matches the requested certificate.\n\nCreating externally signed certificates is not available in the Free tier.\n\nThe certificate must:\n- Be valid and properly formatted\n- Have a public key that matches the CSR's public key\n- Have the same subject as the CSR\n- Have the expected subject alternative names\n- Have the required key usage and extended key usage extensions\n- Have a validity period that does not exceed the maximum allowed validity period (457 days)","summary":"Import certificate from request","tags":["Certificate Signing Requests"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"certificateSigningRequestId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCertificateForCertificateSigningRequest"}}}}}},"/v1/wallets/{walletId}/certificates":{"get":{"operationId":"CertificatesGetAllCertificates","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_Certificate-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2027-01-03T00:00:00.000Z","status":"active","certificate":"-----BEGIN CERTIFICATE-----\nMIIBxDCCAWugAwIBAgIQLqpuAjTL5ILOGfzQOV1MZzAKBggqhkjOPQQDAjAdMQ4w\nDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwHhcNMjUwNTA5MjAyNzAzWhcNMzAw\nNTA5MjAyNzAzWjAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0o4GMMIGJMB0GA1Ud\nDgQWBBT9Pk7aw+I8O2rAUNQSDsYhAJEv5zAOBgNVHQ8BAf8EBAMCAQYwHgYDVR0S\nBBcwFYYTaHR0cHM6Ly9leGFtcGxlLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMCQG\nA1UdHwQdMBswGaAXoBWGE2h0dHBzOi8vZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID\nRwAwRAIgUoRUt1Tc11UjMImWCU2Ww5mJ3Ro+Lw9cwmQpZEEPiMcCIHuWJxqpze9D\np85jE2JvTmtSiNrk9IDrAHs9CzGWXHRy\n-----END CERTIFICATE-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"verifierRoot","isExternallySigned":false}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/certificates?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/certificates?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all certificates associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all certificates and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/certificates?sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `type`, `keyType`, `subjectKeyIdentifier`\n- search: -\n- sort: `createdAt`, `updatedAt`, `id`, `type`, `keyType` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve certificates","tags":["Certificates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"description":"Filter by the type of the certificate.\n\nSupported values:\n- verifierRoot\n- verifierSignRequest\n- verifierIntermediate\n- issuerRoot\n- issuerSignCredential\n- issuerIntermediate\n\nYou can provide multiple values separated by a comma (,)","in":"query","name":"filter[type]","required":false,"schema":{}},{"in":"query","name":"filter[keyType]","required":false,"schema":{"$ref":"#/components/schemas/SupportedCertificateKeyType"}},{"in":"query","name":"filter[status]","required":false,"schema":{"$ref":"#/components/schemas/CertificateStatus"}},{"in":"query","name":"filter[subjectKeyIdentifier]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[parentCertificateId]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[isExternallySigned]","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["createdAt","-createdAt","updatedAt","-updatedAt","expiresAt","-expiresAt","-id","id","type","-type","keyType","-keyType","parentCertificateId","-parentCertificateId"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"CertificatesCreateCertificate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Certificate"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2027-01-03T00:00:00.000Z","status":"active","certificate":"-----BEGIN CERTIFICATE-----\nMIIBxDCCAWugAwIBAgIQLqpuAjTL5ILOGfzQOV1MZzAKBggqhkjOPQQDAjAdMQ4w\nDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwHhcNMjUwNTA5MjAyNzAzWhcNMzAw\nNTA5MjAyNzAzWjAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0o4GMMIGJMB0GA1Ud\nDgQWBBT9Pk7aw+I8O2rAUNQSDsYhAJEv5zAOBgNVHQ8BAf8EBAMCAQYwHgYDVR0S\nBBcwFYYTaHR0cHM6Ly9leGFtcGxlLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMCQG\nA1UdHwQdMBswGaAXoBWGE2h0dHBzOi8vZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID\nRwAwRAIgUoRUt1Tc11UjMImWCU2Ww5mJ3Ro+Lw9cwmQpZEEPiMcCIHuWJxqpze9D\np85jE2JvTmtSiNrk9IDrAHs9CzGWXHRy\n-----END CERTIFICATE-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"verifierRoot","isExternallySigned":false}}}}}}},"description":"Create a new certificate of a specific type.\n\nThe following certificate types can be created:\n- `verifierRoot`\n- `issuerRoot`\n\nYou can also import an externally signed `issuerSignCredential` or `verifierSignRequest`\ncertificate using the Certificate Signing Request API.\n\nWhen creating a root certificate you must provide:\n- `keyType` - the type of the key used for signing the certificate. Supported are P-256 and Ed25519\n- `countryName` - uppercase alpha-2 country code as defined in ISO 3166-1\n- `commonName` - name of the certificate issuer/subject, if not provided the url of the of the\n  issuer/verifier will be used (depending on the type of the certificate)\n\nNote that the following certificates are automatically created by Paradym based on the created root certificate:\n- `verifierSignRequest`\n- `issuerSignCredential`\n\nAlso note that you can have at most one `active` and one `pendingActivation` certificate\nthat is manually created (either through this endpoint or the Certificate Signing Request API)\nfor each certificate category (issuer/verifier) and `keyType`, allowing for rotation.","summary":"Create certificate","tags":["Certificates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCertificate"}}}}}},"/v1/wallets/{walletId}/certificates/{certificateId}/activate":{"post":{"operationId":"CertificatesActivateCertificate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Certificate"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2027-01-03T00:00:00.000Z","certificate":"-----BEGIN CERTIFICATE-----\nMIIBxDCCAWugAwIBAgIQLqpuAjTL5ILOGfzQOV1MZzAKBggqhkjOPQQDAjAdMQ4w\nDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwHhcNMjUwNTA5MjAyNzAzWhcNMzAw\nNTA5MjAyNzAzWjAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0o4GMMIGJMB0GA1Ud\nDgQWBBT9Pk7aw+I8O2rAUNQSDsYhAJEv5zAOBgNVHQ8BAf8EBAMCAQYwHgYDVR0S\nBBcwFYYTaHR0cHM6Ly9leGFtcGxlLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMCQG\nA1UdHwQdMBswGaAXoBWGE2h0dHBzOi8vZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID\nRwAwRAIgUoRUt1Tc11UjMImWCU2Ww5mJ3Ro+Lw9cwmQpZEEPiMcCIHuWJxqpze9D\np85jE2JvTmtSiNrk9IDrAHs9CzGWXHRy\n-----END CERTIFICATE-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"verifierRoot","status":"active","isExternallySigned":false}}}}}}},"description":"Activates a certificate.\n\nThe following certificate types can be activated:\n- `verifierRoot`\n- `issuerRoot`\n- externally signed `issuerSignCredential`\n- externally signed `verifierSignRequest`\n\nNote that certificates can only be activated if they are in the `pendingActivation`\nstate. When activating a certificate, any existing certificates within the same\ncategory (issuer/verifier) and keyType will be deactivated.","summary":"Activate certificate","tags":["Certificates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"certificateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/certificates/{certificateId}/deactivate":{"post":{"operationId":"CertificatesDeactivateCertificate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Certificate"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2027-01-03T00:00:00.000Z","certificate":"-----BEGIN CERTIFICATE-----\nMIIBxDCCAWugAwIBAgIQLqpuAjTL5ILOGfzQOV1MZzAKBggqhkjOPQQDAjAdMQ4w\nDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwHhcNMjUwNTA5MjAyNzAzWhcNMzAw\nNTA5MjAyNzAzWjAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0o4GMMIGJMB0GA1Ud\nDgQWBBT9Pk7aw+I8O2rAUNQSDsYhAJEv5zAOBgNVHQ8BAf8EBAMCAQYwHgYDVR0S\nBBcwFYYTaHR0cHM6Ly9leGFtcGxlLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMCQG\nA1UdHwQdMBswGaAXoBWGE2h0dHBzOi8vZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID\nRwAwRAIgUoRUt1Tc11UjMImWCU2Ww5mJ3Ro+Lw9cwmQpZEEPiMcCIHuWJxqpze9D\np85jE2JvTmtSiNrk9IDrAHs9CzGWXHRy\n-----END CERTIFICATE-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"verifierRoot","status":"inactive","isExternallySigned":false}}}}}}},"description":"Deactivates a certificate.\n\nThe following certificate types can be deactivated:\n- `verifierRoot`\n- `issuerRoot`\n- `issuerSignCredential`\n- `verifierSignRequest`\n\nDeactivating a certificate will not invalidate any signatures created with this certificate.\nIf you want to invalidate all signatures created with this certificate, revoke the certificate instead.\n\nNote that certificates can only be deactivated if they are in the `active` or `pendingActivation` state.\nWhen deactivating a certificate and there's a `pendingActivation` certificate within the same category\n(issuer/verifier) and keyType, it will be activated.\n\nWhen revoking a root certificate, all children certificates that are not already inactive, revoked or expired\nwill be deactivated as well.","summary":"Deactivate certificate","tags":["Certificates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"certificateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/certificates/{certificateId}/revoke":{"post":{"operationId":"CertificatesRevokeCertificate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Certificate"},"examples":{"Example 1":{"value":{"id":"clu6p64z80001a5muhvp2uvpy","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z","expiresAt":"2027-01-03T00:00:00.000Z","certificate":"-----BEGIN CERTIFICATE-----\nMIIBxDCCAWugAwIBAgIQLqpuAjTL5ILOGfzQOV1MZzAKBggqhkjOPQQDAjAdMQ4w\nDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwHhcNMjUwNTA5MjAyNzAzWhcNMzAw\nNTA5MjAyNzAzWjAdMQ4wDAYDVQQDEwVUaW1vMjELMAkGA1UEBhMCTkwwWTATBgcq\nhkjOPQIBBggqhkjOPQMBBwNCAAQj5aVw/Nffm50GqM1QXj65S2JtJj5JguNXPKUH\nEb+kf0vOKlUgbFjS5eRnpPFhbjCJEwzHIINua0QyR6pe+Ty0o4GMMIGJMB0GA1Ud\nDgQWBBT9Pk7aw+I8O2rAUNQSDsYhAJEv5zAOBgNVHQ8BAf8EBAMCAQYwHgYDVR0S\nBBcwFYYTaHR0cHM6Ly9leGFtcGxlLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMCQG\nA1UdHwQdMBswGaAXoBWGE2h0dHBzOi8vZXhhbXBsZS5jb20wCgYIKoZIzj0EAwID\nRwAwRAIgUoRUt1Tc11UjMImWCU2Ww5mJ3Ro+Lw9cwmQpZEEPiMcCIHuWJxqpze9D\np85jE2JvTmtSiNrk9IDrAHs9CzGWXHRy\n-----END CERTIFICATE-----","keyType":"P-256","subjectKeyIdentifier":"fd3e4edac3e23c3b6ac050d4120ec62100912fe7","type":"verifierRoot","status":"pendingRevocation","isExternallySigned":false}}}}}}},"description":"Revokes a certificate.\n\nThe following certificate types can be revoked:\n- `verifierRoot`\n- `verifierSignRequest` - only if not externally signed\n- `issuerRoot`\n- `issuerSignCredential` - only if not externally signed\n\nRevoking a certificate will invalidate any signatures created with this certificate.\nIf you want to ensure all previous signatures created with this certificate remain valid,\ndeactivate the certificate instead.\n\nSince revocation is managed by the certificate issuer, it is not possible to revoke certificates imported\nthrough a certificate signing request. Instead, reach out to the certificate issuer.\n\nNote that certificates can only be revoked if they are in `pendingActivation`, `active`,\nor `inactive` state. When revoking a root certificate, all children certificates\nthat are not already revoked or expired will be revoked as well.","summary":"Revoke certificate","tags":["Certificates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"certificateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/authorization-servers":{"get":{"operationId":"AuthorizationServersGetAll","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_AuthorizationServer-Array_"},"examples":{"Example 1":{"value":{"data":[{"name":"Example Authorization Server","id":"clu159ps100013evfbvhz22m1","url":"https://auth.example.com","redirectUris":["https://example.com/wallet-redirect"],"clientId":"example-client-id","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/authorization-servers?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/authorization-servers?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all authorization servers associated with the provided `walletId`.\n\n## Example\n\nAn example query that searches for all authorization servers and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/authorization-servers?sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `url`, `name`\n- search: `url`, `name`\n- sort: `createdAt`, `updatedAt`, `id` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve authorization servers","tags":["Authorization Servers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[url]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[url]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["createdAt","-createdAt","updatedAt","-updatedAt","-id","id"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"AuthorizationServersCreate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationServer"},"examples":{"Example 1":{"value":{"name":"Example Authorization Server","id":"clu159ps100013evfbvhz22m1","url":"https://auth.example.com","redirectUris":["https://example.com/wallet-redirect"],"clientId":"example-client-id","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}}},"description":"Create a new authorization server.","summary":"Create a new authorization server","tags":["Authorization Servers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAuthorizationServer"}}}}}},"/v1/wallets/{walletId}/authorization-servers/{authorizationServerId}":{"get":{"operationId":"AuthorizationServersGet","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationServer"},"examples":{"Example 1":{"value":{"name":"Example Authorization Server","id":"clu159ps100013evfbvhz22m1","url":"https://auth.example.com","redirectUris":["https://example.com/wallet-redirect"],"clientId":"example-client-id","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}}},"description":"Retrieves an authorization server by its id.","summary":"Retrieve authorization server","tags":["Authorization Servers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"authorizationServerId","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"AuthorizationServersUpdate","responses":{"201":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationServer"},"examples":{"Example 1":{"value":{"name":"Example Authorization Server","id":"clu159ps100013evfbvhz22m1","url":"https://auth.example.com","redirectUris":["https://example.com/wallet-redirect"],"clientId":"example-client-id","createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}}},"description":"Updates an authorization server.","summary":"Updates an authorization server","tags":["Authorization Servers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"authorizationServerId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAuthorizationServer"}}}}},"delete":{"operationId":"AuthorizationServersDelete","responses":{"204":{"description":"Deleted"},"404":{"description":"Not found error"}},"description":"Deletes an authorization server.\n\nIt is not possible to delete an authorization server that is referenced\nby any credential template. First, disconnect the authorization server\nfrom all relevant credential templates.","summary":"Deletes an authorization server","tags":["Authorization Servers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"authorizationServerId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/attribute-providers":{"get":{"operationId":"AttributeProvidersGetAll","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_AttributeProvider-Array_"},"examples":{"Example 1":{"value":{"data":[{"name":"Example Attribute Provider","id":"clu159ps100013evfbvhz22m1","url":"https://exchange.example.com/attributes","authentication":{"type":"apiKey"},"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}],"meta":{"page":{},"prev":"/v1/wallets/cluqojdl30003z6vfcatqf3le/attribute-providers?page[size]=25&page[before]=cluqz0q84000vcwzqicjwl5gu\"","next":"/v1/wallets/cluqojdl30003z6vfcatqf3le/attribute-providers?page[size]=25&page[after]=cluqz0q84000vcwzqicjwl5gu"}}}}}}}},"description":"Retrieve all attribute providers associated with the provided `walletId`.\n\n## Example\n\nAn example query that searches for all attribute providers and order them by the date\nthey were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/attribute-providers?sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `url`, `name`\n- search: `url`, `name`\n- sort: `createdAt`, `updatedAt`, `id` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve attribute providers","tags":["Attribute Providers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[url]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[url]","required":false,"schema":{"type":"string"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["createdAt","-createdAt","updatedAt","-updatedAt","-id","id"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"AttributeProvidersCreate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeProvider"},"examples":{"Example 1":{"value":{"name":"Example Attribute Provider","id":"clu159ps100013evfbvhz22m1","url":"https://exchange.example.com/attributes","authentication":{"type":"apiKey"},"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}}},"description":"Create a new attribute provider.","summary":"Create a new attribute provider","tags":["Attribute Providers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAttributeProvider"}}}}}},"/v1/wallets/{walletId}/attribute-providers/{attributeProviderId}":{"get":{"operationId":"AttributeProvidersGet","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeProvider"},"examples":{"Example 1":{"value":{"name":"Example Attribute Provider","id":"clu159ps100013evfbvhz22m1","url":"https://exchange.example.com/attributes","authentication":{"type":"apiKey"},"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}}},"description":"Retrieves an attribute provider by its id.","summary":"Retrieve attribute provider","tags":["Attribute Providers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"attributeProviderId","required":true,"schema":{"type":"string"}}]},"put":{"operationId":"AttributeProvidersUpdate","responses":{"201":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeProvider"},"examples":{"Example 1":{"value":{"name":"Example Attribute Provider","id":"clu159ps100013evfbvhz22m1","url":"https://exchange.example.com/attributes","authentication":{"type":"apiKey"},"createdAt":"2023-01-03T00:00:00.000Z","updatedAt":"2023-01-03T00:00:00.000Z"}}}}}}},"description":"Updates an attribute provider.","summary":"Updates an attribute provider","tags":["Attribute Providers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"attributeProviderId","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAttributeProvider"}}}}},"delete":{"operationId":"AttributeProvidersDelete","responses":{"204":{"description":"Deleted"},"404":{"description":"Not found error"}},"description":"Deletes an attribute provider.\n\nIt is not possible to delete an attribute provider that is referenced\nby any credential template. First, disconnect the attribute provider\nfrom all relevant credential templates.","summary":"Deletes an attribute provider","tags":["Attribute Providers"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"attributeProviderId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/anoncreds":{"get":{"operationId":"AnoncredsCredentialTemplatesGetAllCredentialTemplates","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiResponse_AnoncredsCredentialTemplate-Array_"},"examples":{"Example 1":{"value":{"data":[{"id":"6421a8905c17830c188e2e2f","format":"anoncreds","name":"My Anoncreds template","description":"This is a description","issuer":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c","schema":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c/resources/86ab6bc6-5cc3-4825-8c93-5f8088938f67","definition":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c/resources/520d355a-33a2-4080-9823-778e0f8a96a8","attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is my attribute"},"myAttribute2":{"type":"number","name":"My attribute 2"},"myAttribute3":{"type":"string"}},"revocable":true,"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null}],"meta":{"page":{},"prev":"/v1/wallets/6421a8905c17830c188e2e2f/templates/credentials/anoncreds?page[size]=25&page[before]=6421a8905c17830c188e2e2f","next":"/v1/wallets/6421a8905c17830c188e2e2f/templates/credentials/anoncreds?page[size]=25&page[after]=6421a8905c17830c188e2e2f"}}}}}}}},"description":"Retrieve all `anoncreds` credential templates associated with the provided `walletId`.\n\n## Example\nAn example query that searches for all Anoncreds credential templates where the name includes \"My Template\" and are not revocable,\nordering them by the date they were created descending, limiting the page size to 10\n```\n/v1/wallets/{walletId}/templates/credentials/anoncreds?filter[revocable]=false&search[name]=My Template&sort=-createdAt&page[size]=10\n```\n\n## Query parameters\nWe are using the [JSON:API 1.1](https://jsonapi.org/) specification for requesting a list of entities.\nFrom this specification we support the following query parameters:\n- `filter[<property>]` - Filter the results by the given property. You can filter by multiple properties by providing multiple `filter[<property>]` query parameters. At the moment it's only possible to filter the properties in the root of the object. Also, some properties are not filterable because of performance reasons.\n- `search[<property>]` - Search the results by the given sub-value of a property case-insensitive. You can search by multiple properties by providing multiple `search[<property>]` query parameters.\n- `sort` - Sort the results by the given property. If you want to sort in descending order you can prefix the property with a `-`.\n\nThe following parameters are supported for this endpoint:\n- filter: `id`, `revocable`, `archived`\n- search: `name`\n- sort: `id`, `createdAt`, `updatedAt` (default: `sort=-id`)\n\n## Pagination\nWe also implemented the [Cursor Pagination Profile](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/) for pagination.\nThis means that you can use the `page[size]`, `page[before]` and `page[after]` query parameters to retrieve the next or previous page of results.\nThe `page[size]` parameter is used to set the number of items per page. The `page[before]` and `page[after]` parameters are used to set the cursor.\nThe cursor is the ID of the last item on the previous page, or the first item on the next page.","summary":"Retrieve anoncreds credential templates","tags":["Anoncreds Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"query","name":"filter[id]","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter[revocable]","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"filter[archived]","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"search[name]","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","enum":["id","-id","createdAt","-createdAt","updatedAt","-updatedAt"]}},{"in":"query","name":"page[size]","required":false,"schema":{"format":"double","type":"number"}},{"in":"query","name":"page[before]","required":false,"schema":{"type":"string"}},{"in":"query","name":"page[after]","required":false,"schema":{"type":"string"}}]},"post":{"operationId":"AnoncredsCredentialTemplatesCreateCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnoncredsCredentialTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","format":"anoncreds","name":"My Anoncreds template","description":"This is a description","issuer":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c","schema":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c/resources/86ab6bc6-5cc3-4825-8c93-5f8088938f67","definition":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c/resources/520d355a-33a2-4080-9823-778e0f8a96a8","attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is my attribute"},"myAttribute2":{"type":"number","name":"My attribute 2"},"myAttribute3":{"type":"string"}},"revocable":true,"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null}}}}}}},"description":"Create a new `anoncreds` credential template\n\nIf you provide an existing schema, the API will count a call to this endpoint as a single transaction. But if you don't provide an existing schema, the system will create both a schema and a credential definition, which counts as two transactions.\n\nNote: You can only have one `anoncreds` credential template per schema.","summary":"Create anoncreds credential template","tags":["Anoncreds Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAnoncredsCredentialTemplate"}}}}}},"/v1/wallets/{walletId}/templates/credentials/anoncreds/{credentialTemplateId}":{"get":{"operationId":"AnoncredsCredentialTemplatesGetCredentialTemplate","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnoncredsCredentialTemplate"},"examples":{"Example 1":{"value":{"id":"6421a8905c17830c188e2e2f","format":"anoncreds","name":"My Anoncreds template","description":"This is a description","issuer":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c","schema":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c/resources/86ab6bc6-5cc3-4825-8c93-5f8088938f67","definition":"did:cheqd:testnet:fedaf755-3ffb-4558-bc04-b5596f10236c/resources/520d355a-33a2-4080-9823-778e0f8a96a8","attributes":{"myAttribute":{"type":"string","name":"My attribute","description":"This is my attribute"},"myAttribute2":{"type":"number","name":"My attribute 2"},"myAttribute3":{"type":"string"}},"revocable":true,"createdAt":"2024-04-11T00:00:00.000Z","updatedAt":"2024-04-11T00:00:00.000Z","archivedAt":null}}}}}}},"description":"Retrieve a specific `anoncreds` credential template by its id.","summary":"Retrieve anoncreds credential template","tags":["Anoncreds Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]},"delete":{"operationId":"AnoncredsCredentialTemplatesArchiveCredentialTemplate","responses":{"204":{"description":"Archived"},"404":{"description":"CredentialTemplate not found"},"409":{"description":"Credential template is already archived"}},"description":"Archive an `anoncreds` credential template by its id.","summary":"Archive anoncreds credential template","tags":["Anoncreds Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/anoncreds/{credentialTemplateId}/json-schema":{"get":{"operationId":"AnoncredsCredentialTemplatesGetCredentialTemplateJsonSchema","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialTemplateJsonSchema"},"examples":{"Example 1":{"value":{"$schema":"https://json-schema.org/draft-07/schema#","$id":"templates/credential/anoncreds/6421a8905c17830c188e2e2f","title":"My Anoncreds template","type":"object","properties":{"myAttribute":{"type":"string"},"myAttribute2":{"type":"number"}},"required":["myAttribute"],"additionalProperties":false}}}}}}},"description":"Get the JSON schema for an `anoncreds` credential template.\n\nYou could use this for to generate forms or validate the input.","summary":"Retrieve JSON schema for anoncreds credential template","tags":["Anoncreds Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}},"/v1/wallets/{walletId}/templates/credentials/anoncreds/{credentialTemplateId}/unarchive":{"post":{"operationId":"AnoncredsCredentialTemplatesUnarchiveCredentialTemplate","responses":{"204":{"description":"Unarchived"},"404":{"description":"CredentialTemplate not found"},"409":{"description":"Credential template is not archived"}},"description":"Unarchive an `anoncreds` credential template by its id.","summary":"Unarchive anoncreds credential template","tags":["Anoncreds Credential Templates"],"security":[{"apiKey":["project"]}],"parameters":[{"in":"path","name":"walletId","required":true,"schema":{"$ref":"#/components/schemas/WalletId"}},{"in":"path","name":"credentialTemplateId","required":true,"schema":{"type":"string"}}]}}},"tags":[{"name":"Wallets","description":"Everything you can do within the Paradym API is scoped under a wallet (previously called a project). Your first wallet is automatically created when you create an account, but you can create as many wallets as you like, and invite your teammates. Each wallet is completely separated from other wallets, allowing you to separate the different use cases and teams you're working in. \n\n See [Multiple Wallets](https://docs.paradym.id/api-and-dashboard/add-wallets-and-members) documentation for more information."},{"name":"Webhooks","description":"Webhooks allow you to get notified of events within Paradym. You can easily [configure webhooks through the dashboard](https://docs.paradym.id/api-and-dashboard/using-webhooks), but you can also manage webhooks through the API."},{"name":"Wallet Profile","description":"Each wallet has a profile associated with it. The profile describes public information about your organization. This is used in various places when you interact with other members through issuance and verification. You can easily configure your profile through the dashboard."},{"name":"Authorization Servers","description":"Authorization servers allow you to authenticate users during the [OpenID4VC Issuance](#tag/openid4vc-issuance)."},{"name":"Attribute Providers","description":"Attribute providers allow to securely fetch user attributes from external sources during [OpenID4VC Issuance](#tag/openid4vc-issuance)."},{"name":"SD-JWT VC Credential Templates","description":"Credential templates define the structure of a credential that can be issued through Paradym. This section covers `sd-jwt-vc` credential templates, which can be issued using the [OpenID4VC Issuance](#tag/openid4vc-issuance) API endpoints."},{"name":"mDoc Credential Templates","description":"Credential templates define the structure of a credential that can be issued through Paradym. This section covers `mdoc` credential templates, which can be issued using the [OpenID4VC Issuance](#tag/openid4vc-issuance) API endpoints."},{"name":"Anoncreds Credential Templates","description":"Credential templates define the structure of a credential that can be issued through Paradym. This section covers `anoncreds` credential templates, which can be issued using the [DIDComm Issuance](#tag/didcomm-issuance) API endpoints."},{"name":"DIDs","description":"Decentralized Identifiers (DIDs) are cryptographically verifiable identifiers. When creating a credential template in Paradym you can configure it to use a DID for signing credentials. You can share your DID with verifiers which allow them to ensure the credential was issued by you, or your organization."},{"name":"Certificates","description":"Certificates in Paradym refer to X.509 certificates and can be used for signing OpenID4VP requests during verification flows, and signing credentials during issuance. Each certificate is associated with a public/private key pair, where the private key is securely stored and used for digital signatures, while the public key is distributed within the certificate for verification. Paradym supports management of these certificates through both the dashboard and API, allowing you to generate new certificates, view existing ones, and configure which certificates are used for specific credential templates and presentation verification flows. Certificates can be added to Trusted Entities to establish trust relationships with external organizations."},{"name":"Certificate Signing Requests","description":"Certificate Signing Requests (CSRs) allow you to generate a PKCS#10 request that can be submitted to a Certificate Authority (CA) to obtain a signed X.509 certificate. This is useful when you need certificates signed by an external CA, such as for EUDI Wallet trust chains or other regulated identity ecosystems. Paradym generates the key pair securely and produces the CSR, which you can then submit to your chosen CA. Once signed, the resulting certificate can be imported back into Paradym for use in credential issuance and verification flows."},{"name":"Keys","description":"The signing keys behind your certificates, and what is scheduled to happen to them. A key is created together with the certificate that uses it and reclaimed once every certificate it signs for is revoked or expired, so most of the time there is nothing to do here. Use these endpoints to see which keys exist and where they live, to release one early when the automatic path will not reach it (an imported certificate is never revoked by Paradym), and to undo that while the key material still exists."},{"name":"Key backends","description":"Where a certificate's private key is generated and stored. The `software` backend is always available; an externally-managed backend such as Google Cloud KMS holds the key material outside Paradym. Which backends exist depends on the deployment, so use this endpoint to discover the ones a wallet can actually select rather than assuming."},{"name":"Trusted Entities","description":"Trusted entities define trusted Decentralized Identifiers (DIDs) and X509 certificates for entities you interact with. After creating a trusted entity and configuring the trusted DIDs and certificates, you can link a trusted entity in a presentation template."},{"name":"Presentation Templates","description":"Presentation templates define the structure of a presentation that can be requested through Paradym. While credential templates are for issuance of credentials, presentation templates allow you to define what type of data you want to request from a credential holder. Currently we support presentation templates for `sd-jwt-vc` credentials, which can be verified using the [OpenID4VC Verification](#tag/openid4vc-verification) API endpoints, and `anoncreds` credentials, which can be verified using the [DIDComm Verification](#tag/didcomm-verification) API endpoints."},{"name":"Direct Issuance","description":"The Issuance endpoints allow you to issue credentials directly, without the use of an exchange protocol such as [OpenID4VC Issuance](#tag/openid4vc-issuance) or [DIDComm Issuance](#tag/didcomm-issuance). Direct issuance is not supported for `anoncreds` credentials as this requires a multi-step issuance process and can be handled using one one of the supported protocols. Subject binding is not verified when directly issuing a credential, and thus it is important to make sure the subject of the credential is verified before issuing (this is usually taken care of the by issuance protocol)."},{"name":"Issued Credentials"},{"name":"Revocation","description":"The Revocation endpoints enables you to revoke credential issued using the [Issuance](#tag/openid4vc-issuance), [OpenID4VC Issuance](#tag/openid4vc-issuance) or [DIDComm Issuance](#tag/didcomm-issuance) API."},{"name":"OpenID4VC Issuance","description":"The OpenID4VC Issuance endpoints allow you to issue credentials based on a [SD-JWT VC Credential Template](#tag/sd-jwt-vc-credential-templates) or [mDoc Credential Template](#tag/mdoc-credential-templates) using [OpenID for Verifiable Credential Issuance](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0-11.html) specification."},{"name":"OpenID4VC Verification","description":"The OpenID4VC Verification endpoints allow you to verify credentials based on a [Presentation Template](#tag/presentation-templates) using the [OpenID for Verifiable Presentations](https://openid.net/specs/openid-4-verifiable-presentations-1_0-18.html) specification. Only presentation of mDoc and SD-JWT VC credentials is supported."},{"name":"DIDComm Invitations","description":"DIDComm invitations allow you to initate an interaction with another DIDComm agent. Paradym uses `https://didcomm.org/out-of-band/1.x` (where `x` may be any version) invitations, and leverages the `https://didcomm.org/didexchange/1.x` (where `x` may be any version) protocol for connection establishment. \nRead more on:\n- [Out Of Band v1.1 Protocol](https://github.com/hyperledger/aries-rfcs/blob/50d148b812c45af3fc847c1e7033b084683dceb7/features/0434-outofband/README.md)\n- [DID Exchange v1.1 Protocol](https://github.com/hyperledger/aries-rfcs/blob/50d148b812c45af3fc847c1e7033b084683dceb7/features/0023-did-exchange/README.md)"},{"name":"DIDComm Connections","description":"DIDComm connections allow you to interact over a secure channel with other DIDComm agents you've interacted with in the past."},{"name":"DIDComm Issuance","description":"The DIDComm Issuance endpoints allow you to issue credentials based on an [Anoncreds Credential Template](#tag/anoncreds-credential-templates) using the [Issue Credential V2](https://hyperledger.github.io/aries-rfcs/latest/aip2/0453-issue-credential-v2) DIDComm protocol. Only issuance of `anoncreds` credentials is supported."},{"name":"DIDComm Verification","description":"The DIDComm Verification endpoints allow you to verify credentials based on a [Presentation Template](#tag/presentation-templates) using the [Present Proof V2](https://hyperledger.github.io/aries-rfcs/latest/aip2/0454-present-proof-v2) DIDComm protocol. Only verification using `anoncreds` credentials is supported."},{"name":"DIDComm Mediators","description":"The DIDComm Mediators endpoints allow you to manage connections for a mediator that mediates DIDComm messages for your custom wallet. A mediator can only be configured by the Paradym team. If you want to enable mediation on your Paradym account, [reach out to us](https://paradym.id/contact)."}],"servers":[{"url":"https://api.paradym.id"}],"x-tagGroups":[{"name":"Wallet","tags":["Wallets","Webhooks","Wallet Profile","Authorization Servers","Attribute Providers"]},{"name":"Templates","tags":["SD-JWT VC Credential Templates","mDoc Credential Templates","Anoncreds Credential Templates","Presentation Templates"]},{"name":"Trust","tags":["Trusted Entities","DIDs","Certificates","Certificate Signing Requests","Keys","Key backends"]},{"name":"OpenID4VC","tags":["OpenID4VC Issuance","OpenID4VC Verification"]},{"name":"DIDComm","tags":["DIDComm Invitations","DIDComm Connections","DIDComm Issuance","DIDComm Verification","DIDComm Messaging","DIDComm Mediators"]},{"name":"General","tags":["Revocation","Direct Issuance","Issued Credentials"]}]}