Skip to main content

Single Credential and Batch Credential Issuance

Procivis One enables you to issue 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.

Overview

When creating a credential schema, you can optionally set a batchSize. If you do not set a value for this, you will issue a single credential when you issue using this schema. If you do set a value for batchSize (must be at least 2), you will issue a batch credential.

Single credentials

A single credential is issued once. These credentials are then reused by wallet users across multiple presentations. These credentials cannot be refreshed, and are valid until they expire, are suspended, or are revoked.

In the list and detail credential endpoints, these credentials appear as "type": "SINGLE".

Batch credentials

Multiple credentials are issued at once — specifically, the number you specify for batchSize of the credential schema. The wallet uses a different holder-binding key for each credential; the batch is otherwise identical. The wallet then uses each credential only once. Depending on your configurations for expiration and refresh token lifetime, the wallet can refresh this credential and receive a new batch.

When you create 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. These appear as "type": "BATCH_PARENT" and "type": "BATCH_ITEM".

When you manage the batch parent credential — for example, suspending or revoking the parent — the system handles all batch items automatically. The status of a batch parent reflects the logical credential, since any given batch item may have differing statuses.

The batch item is the actual credential held in the wallet and used in presentations. While you can suspend or revoke a batch item, managing credentials using the batch parent is more appropriate for most use cases.

Expiration, suspension, and revocation