Skip to main content

Single, Batch, and Multiple Issuance

Procivis One enables you to receive both single credentials and credentials in a batch. These types of credentials behave differently. This page explains the differences between the two types of credentials.

Single credentials

A single credential is issued once. The wallet then reuses this credential across multiple presentations. In the list and detail credential endpoints, these credentials appear as "type": "SINGLE".

Batch credentials

Multiple credentials are issued at once. When you receive a batch credential the system creates a batch parent — a logical record that tracks and manages the batch — along with the individual batch items themselves, which are the credentials actually issued and presented. In the list and detail credential endpoints, these appear as "type": "BATCH_PARENT" and "type": "BATCH_ITEM". The wallet automatically generates a unique holder-binding key for each batch item.

When you use the batch parent for submitting presentations, the Core automatically chooses the oldest (unused) batch item closest to expiration. Once presented, the system updates the credential's consumedAt field, found in the credential detail endpoint, and then never uses that credential again.

Batch check and refresh

Use:

  • POST /api/credential/v1/revocation-check to check status and
  • POST /api/interaction/v1/{interactionId}/issuance/refresh to request a new batch of credentials from the issuer

New batch items are automatically connected to the original batch parent.

Multiple credentials issuance

When an issuer offers multiple credentials in one issuance flow, POST /api/interaction/v1/issuance-accept iterates through all offered configurations and accepts all supported configurations, returning the resulting credentials in the credentialIds array.

If any configuration is not supported it is skipped, a warning is logged, and partiallySuccessful is returned true. If no configuration is supported, the call fails. Configurations can be skipped for different reasons:

  • No format provider enabled matching the format of the offer
  • Format string is unknown
  • Identifier or key offered does not match the configuration