---
title: "Perform credential operations"
method: POST
path: "/api/credentialProviders/{credentialProviderId}/persons/{personId}/credentialOperations"
tags: ["credential-provider-controller"]
---

# Perform credential operations

`POST /api/credentialProviders/{credentialProviderId}/persons/{personId}/credentialOperations`

Allow a credential provider to oerform credential operations (issue / cancel) and return the resulting credentials.

## Path parameters

- `credentialProviderId` string, required
- `personId` string, required

## Headers

- `Authorization` string, required

## Request body

- PushCredentialOperations
  - `correlationId` string
  - `operations` PushCredentialOperation[]
    - `cancelOperation` CancelOperation
      - `credentialExtId` string
      - `notification` PersonNotification
        - `channels` string[]
        - `emailFooter` string
        - `emailSubject` string
        - `note` string
        - `params` object
        - `secureContent` string
        - `sourceId` string
        - `sourceName` string
        - `type` string
    - `issueOperation` IssueOperation
      - `credential` ServiceCredential
        - `acts` string
        - `additionalPresentations` integer
        - `claims` object
        - `correlationId` string
        - `credentialTypeHref` string
        - `detUTCOffsetMinutes` integer
        - `displayEndTime` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `displayStartTime` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `dstUTCOffsetMinutes` integer
        - `expiringDtm` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `extId` string
        - `notBeforeDtm` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `note` string
        - `notifyOfExpiryDtm` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `optionalInfo` object
        - `personInfo` object
        - `sensitiveInfo` object
        - `status` string
        - `subject` string
        - `types` string[]
      - `notification` PersonNotification
        - `channels` string[]
        - `emailFooter` string
        - `emailSubject` string
        - `note` string
        - `params` object
        - `secureContent` string
        - `sourceId` string
        - `sourceName` string
        - `type` string
    - `modifyOperation` ModifyOperation
      - `credential` ServiceCredential
        - `acts` string
        - `additionalPresentations` integer
        - `claims` object
        - `correlationId` string
        - `credentialTypeHref` string
        - `detUTCOffsetMinutes` integer
        - `displayEndTime` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `displayStartTime` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `dstUTCOffsetMinutes` integer
        - `expiringDtm` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `extId` string
        - `notBeforeDtm` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `note` string
        - `notifyOfExpiryDtm` Timestamp
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `optionalInfo` object
        - `personInfo` object
        - `sensitiveInfo` object
        - `status` string
        - `subject` string
        - `types` string[]
      - `credentialExtId` string
      - `notification` PersonNotification
        - `channels` string[]
        - `emailFooter` string
        - `emailSubject` string
        - `note` string
        - `params` object
        - `secureContent` string
        - `sourceId` string
        - `sourceName` string
        - `type` string

## Response `201`

Created

- PerformCredentialOperationsResponse
  - `operationResults` CredentialOperationResult[]
    - `cancel` CancelResult
      - `credential` CredentialDto
        - `cancelledDtm` TimestampRes
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `correlationId` string
        - `createdDtm` TimestampRes
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `credentialProviderId` string
        - `credentialProviderName` string
        - `credentialTypeId` string
        - `credentialTypeName` string
        - `extId` string
        - `href` string
        - `id` string
        - `issueStatus` string
        - `jwt` string
        - `revokedDtm` TimestampRes
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `statusCheckCount` integer
        - `usageRecord` UsageRecord
          - `checkpointPresentations` object
          - `checkpointTypePresentations` object
          - `presentations` integer
        - `usePolicy` CredentialUsePolicy
          - `checkpointPolicy` 'TIME_BASED' | 'VALIDATION_COUNT_BASED'
          - `checkpointTypePolicy` 'TIME_BASED' | 'VALIDATION_COUNT_BASED'
          - `numberOfCheckpointTypeValidations` integer
          - `numberOfCheckpointValidations` integer
          - `numberOfValidations` integer
          - `policy` 'TIME_BASED' | 'VALIDATION_COUNT_BASED'
    - `issue` IssueResult
      - `credential` CredentialDto
        - `cancelledDtm` TimestampRes
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `correlationId` string
        - `createdDtm` TimestampRes
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `credentialProviderId` string
        - `credentialProviderName` string
        - `credentialTypeId` string
        - `credentialTypeName` string
        - `extId` string
        - `href` string
        - `id` string
        - `issueStatus` string
        - `jwt` string
        - `revokedDtm` TimestampRes
          - `date` integer
          - `day` integer
          - `hours` integer
          - `minutes` integer
          - `month` integer
          - `nanos` integer
          - `seconds` integer
          - `time` integer
          - `timezoneOffset` integer
          - `year` integer
        - `statusCheckCount` integer
        - `usageRecord` UsageRecord
          - `checkpointPresentations` object
          - `checkpointTypePresentations` object
          - `presentations` integer
        - `usePolicy` CredentialUsePolicy
          - `checkpointPolicy` 'TIME_BASED' | 'VALIDATION_COUNT_BASED'
          - `checkpointTypePolicy` 'TIME_BASED' | 'VALIDATION_COUNT_BASED'
          - `numberOfCheckpointTypeValidations` integer
          - `numberOfCheckpointValidations` integer
          - `numberOfValidations` integer
          - `policy` 'TIME_BASED' | 'VALIDATION_COUNT_BASED'

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Unexpected error in processing the request.

---

[API](https://skmtc.dev/myverifly/apis/api-documentation.md) · [All operations](https://skmtc.dev/myverifly/apis/api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/myverifly/api-documentation/revisions/03f300608c33/schema)
