Skip to main content

Interaction Flow with QR Code Scanning for Credential Issuance or Verification

Interaction Flow with QR Code Scanning for Credential Issuance and Verification

Overview

One of the primary user interaction flows in our system involves QR code scanning for credential issuance or verification. The QR code often embeds a credential offer or a verification request.

Organizations can monitor event callbacks for issuing and verifying credentials, ensuring they are always aware of ongoing activities. In some cases, making the QR code usage more interactive can be beneficial. For instance, displaying messages during the different phases of issuance and verification helps users understand what is happening or updates the frontend about various states to display specific screens.

The technology used for integration can vary based on the application. However, this documentation outlines a possible implementation flow.

Specifically, we present two scenarios:

  • Check using Dizme Agent
  • Check using Business Logic

Check using Dizme Agent

The organization obtains the URL for the credential request by invoking the verify/request on the Dizme Agent (Credx). Then, it generates a QR code containing the obtained URL and displays it on the frontend. Simultaneously, the organization initiates polling towards the verifier/status API of Dizme Agent (Credx) and, based on the received status, decides what to display.

Example:

  • Status = READ: Display a loading indicator instead of the QR code to indicate that the QR code has been scanned by the wallet.
  • Status = SUCCESS: Display a message indicating that the credentials have been verified.
  • Status = BL_SUCCESS: Display a message indicating that the credentials have also been approved by the Business Logic.

check_dizme_agent.png

Check using Business Logic

The organization obtains the URL for the credential request by invoking the verify/request on the Dizme Agent (Credx). Then, it generates a QR code containing the obtained URL and displays it on the frontend. Simultaneously, the organization initiates polling towards an API of the business logic to get the status of the verification (bl/status) and decides what to display based on the received status.

Meanwhile, the Business Logic will also receive event callbacks from Dizme Agent (Credx) with the verification status. The Business Logic can map the received states from Dizme Agent (Credx) and decide to display custom statuses based on its business logic flow.

Example:

  • Status = READ: Display a loading indicator instead of the QR code to indicate that the QR code has been scanned by the wallet.
  • Status = SUCCESS: Display a message indicating that the credentials have been verified.
  • Status = BL_SUCCESS: Display a message indicating that the credentials have also been approved by the Business Logic.
  • Status = IDENTIFICATION_COMPLETED: Display a message for a custom status.

check_business_logic.png