openapi: 3.0.1 info: description: This API is used to manipulate VerifiableCredentials for participants in an Issuer Service title: Issuer Service Credentials Admin API version: "1" paths: /v1alpha/participants/{participantContextId}/credentials/offer: post: description: Triggers a DCP CredentialOffer message being sent to the holder. operationId: sendCredentialOffer parameters: - description: Base64-Url encode Participant Context ID in: path name: participantContextId required: true schema: type: string - in: path name: participantContextId required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialOfferDto" responses: "200": description: The CredentialOfferMessage was sent to the holder successfully. "400": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "Request body was malformed, or the request could not be processed.\ \ For example when the holder DID is not resolvable, or the credential\ \ type, format, etc. is not known/invalid." "401": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "The request could not be completed, because either the authentication\ \ was missing or was not valid." "403": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: The participant context (=issuer) is not permitted to interact with the specified holder. tags: - Issuer Service Credentials Admin API /v1alpha/participants/{participantContextId}/credentials/query: post: description: "Query credentials, possibly across multiple participants." operationId: queryCredentials parameters: - description: Base64-Url encode Participant Context ID in: path name: participantContextId required: true schema: type: string - in: path name: participantContextId required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/QuerySpec" responses: "200": content: application/json: schema: type: array items: $ref: "#/components/schemas/VerifiableCredentialDto" description: A list of verifiable credential metadata. Note that these are not actual VerifiableCredentials. "400": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "Request body was malformed, or the request could not be processed" "401": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "The request could not be completed, because either the authentication\ \ was missing or was not valid." tags: - Issuer Service Credentials Admin API /v1alpha/participants/{participantContextId}/credentials/{credentialId}/resume: post: description: Resumes a credential with the given ID for the given participant. Resumed credentials will be removed from the Revocation List. operationId: resumeCredential parameters: - description: Base64-Url encode Participant Context ID in: path name: participantContextId required: true schema: type: string - description: ID of the credential to resume in: path name: credentialId required: true schema: type: string - in: path name: credentialId required: true schema: type: string responses: "204": description: The credential was resumed successfully. Check the Revocation List credential to confirm. "400": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "Request body was malformed, or the request could not be processed" "401": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "The request could not be completed, because either the authentication\ \ was missing or was not valid." "404": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: The credential or the participant was not found. tags: - Issuer Service Credentials Admin API /v1alpha/participants/{participantContextId}/credentials/{credentialId}/revoke: post: description: Revokes a credential with the given ID for the given participant. Revoked credentials will be added to the Revocation List operationId: revokeCredential parameters: - description: Base64-Url encode Participant Context ID in: path name: participantContextId required: true schema: type: string - description: ID of the credential to revoke in: path name: credentialId required: true schema: type: string - in: path name: credentialId required: true schema: type: string responses: "204": description: The credential was revoked successfully. Check the Revocation List credential to confirm. "400": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "Request body was malformed, or the request could not be processed" "401": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "The request could not be completed, because either the authentication\ \ was missing or was not valid." "404": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: The credential or the participant was not found. tags: - Issuer Service Credentials Admin API /v1alpha/participants/{participantContextId}/credentials/{credentialId}/status: get: description: Checks the revocation status of a credential with the given ID for the given participant. operationId: checkCredentialStatus parameters: - description: Base64-Url encode Participant Context ID in: path name: participantContextId required: true schema: type: string - description: ID of the credential to check in: path name: credentialId required: true schema: type: string - in: path name: credentialId required: true schema: type: string responses: "200": description: The credential status. "400": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "Request body was malformed, or the request could not be processed" "401": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "The request could not be completed, because either the authentication\ \ was missing or was not valid." "404": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: The credential or the participant was not found. tags: - Issuer Service Credentials Admin API /v1alpha/participants/{participantContextId}/credentials/{credentialId}/suspend: post: description: Suspends a credential with the given ID for the given participant. Suspended credentials will be added to the Revocation List. Suspension is reversible. operationId: suspendCredential parameters: - description: Base64-Url encode Participant Context ID in: path name: participantContextId required: true schema: type: string - description: ID of the credential to revoke in: path name: credentialId required: true schema: type: string - in: path name: credentialId required: true schema: type: string responses: "204": description: The credential was suspended successfully. Check the Revocation List credential to confirm. "400": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "Request body was malformed, or the request could not be processed" "401": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: "The request could not be completed, because either the authentication\ \ was missing or was not valid." "404": content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiErrorDetail" description: The credential or the participant was not found. tags: - Issuer Service Credentials Admin API components: schemas: ApiErrorDetail: type: object properties: invalidValue: type: object message: type: string path: type: string type: type: string CredentialDescriptor: type: object properties: credentialType: type: string format: type: string reason: type: string CredentialOfferDto: type: object properties: credentials: type: array items: $ref: "#/components/schemas/CredentialDescriptor" holderId: type: string required: - credentials - holderId CredentialSchema: type: object properties: id: type: string type: type: string CredentialStatus: type: object properties: additionalProperties: type: object additionalProperties: type: object id: type: string type: type: string CredentialStatusResponse: type: object properties: credentialId: type: string reason: type: string status: type: string CredentialSubject: type: object properties: claims: type: object additionalProperties: type: object id: type: string Criterion: type: object properties: operandLeft: type: object operandRight: type: object operator: type: string Issuer: type: object properties: additionalProperties: type: object additionalProperties: type: object id: type: string QuerySpec: type: object properties: filterExpression: type: array items: $ref: "#/components/schemas/Criterion" limit: type: integer format: int32 offset: type: integer format: int32 sortField: type: string sortOrder: type: string enum: - ASC - DESC VerifiableCredential: type: object properties: credentialSchema: type: array items: $ref: "#/components/schemas/CredentialSchema" credentialStatus: type: array items: $ref: "#/components/schemas/CredentialStatus" credentialSubject: type: array items: $ref: "#/components/schemas/CredentialSubject" dataModelVersion: type: string enum: - V_1_1 - V_2_0 description: type: string expirationDate: type: string format: date-time id: type: string issuanceDate: type: string format: date-time issuer: $ref: "#/components/schemas/Issuer" name: type: string type: type: array items: type: string VerifiableCredentialDto: type: object properties: credential: $ref: "#/components/schemas/VerifiableCredential" format: type: string enum: - JSON_LD - JWT - VC1_0_LD - VC1_0_JWT - VC2_0_JOSE - VC2_0_SD_JWT - VC2_0_COSE participantContextId: type: string