Skip to main content
Veriqa is the bridge between three parties: your application, OpenIddict, and the user’s trusted mobile channel. It initiates a sign-in or confirmation transaction, links it to the chosen channel, waits for the user to confirm, then completes authentication in OpenIddict.

Building blocks

Transaction orchestration

Every sign-in, registration or confirmation is a transaction with its own context, correlation id, state, lifetime, chosen channel, external identity, local account link and audit log.

Channel adapters

Each channel — a messaging app or another mobile channel — is a separate adapter / connector. Out of the box: Telegram, WhatsApp, other channels and Email — designed to be extensible.

OpenIddict integration

Completes primary sign-in, second factor, step-up confirmation and channel linking — without replacing OpenIddict.

Completion

The application finishes the flow via callback, SignalR live updates or polling once the transaction is confirmed.

Account & channel linking

Pairs the user’s channel identity with the local account, optionally linking a notification channel in the same step.

Audit trail

Each transaction carries an audit log of state changes and confirmations.

QR orchestration

Veriqa generates a short-lived entry point per transaction. The QR code does not carry the authentication logic — it simply opens the right bridge flow for the chosen channel and ties the user to the current transaction.

How these blocks work in the sign-in flow

From starting the transaction to issuing OpenIddict tokens — step by step.