Verifier Provisioning Flows
This page walks through the mechanics of verifier provisioning: the concrete sequence, endpoints, and payload fields behind registration, activation, and certificate issuance. For the concepts behind this component, and why these steps exist, see Wallet Provider and Verifier Provider. For configuration instructions, see Configure Verifier Provider.
Workflow overview
Understanding the basic verifier providing workflows helps you integrate they system correctly. The following diagrams show the key processes verifiers follow when interacting with a verifier provider.
Verifier registration and activation
Verifiers register during onboarding to establish their identity with the verifier provider:
During registration, the verifier supplies an authentication key that
becomes bound to the verifier instance. The verifier provider returns a
verifier instance ID that the verifier uses for all subsequent provider
interactions. If app integrity verification is enabled, the verifier must
also activate immediately after registration, providing platform-specific
attestations along with a certificate signing request
(verifierAccessCertificateCsr) and a user access token. Activation both
confirms app integrity and issues the verifier's Access Certificate in a
single step.
Access Certificate
Your deployment issues a verifier instance's Access Certificate during
activation, using the certificate signing request
(verifierAccessCertificateCsr) supplied in that call, combined with
your configured signature provider and
Access Certificate configuration.
The certificate is returned as accessCertificate in the activation
response.
Instance Attestation (WIA)
WIA is used only between a verifier instance and your provider backend. It has no role in a presentation request; the wallet a verifier interacts with has no visibility into it.
A verifier instance provides a WIA during activation, before your deployment issues its Access Certificate, and again on the occasions a new certificate is required. Like wallet WIA, it is short-lived and single-use, with a configurable expiration time.
There is no verifier equivalent to Attestation during credential issuance in the wallet flow: a verifier instance never requests attestations mid-interaction.
App integrity verification
The system can optionally verify app integrity before issuing attestations using platform-specific mechanisms:
- iOS: App Attest validates that the app was distributed through the Apple App store and matches expected bundle identifiers.
- Android: Key attestation validates app integrity and the use of a genuine Android device.
When integrity verification is enabled, the system validates certificate chains against trusted platform certificate authorities and confirms app bundle identifiers match configured values. If integrity verification is disabled, attestations are issued without these platform-specific checks.
Revocation
Revoking a verifier instance immediately revokes its Access Certificate, through the same management APIs used for wallet instances. Deleting an instance has the same effect and also removes the instance from your deployment.
User authentication
When the userAuthentication block is present in the verifier provider
configuration, the verifier onboarding flow includes an authentication step
with the configured identity provider. If required is set to true,
users must complete authentication to activate their wallet unit. If
false, authentication is optional.
During onboarding, the verifier instance registration generates a nonce
which the verifier passes back as part of activation alongside a JWT from
the identity provider. The token is validated against the verifier provider
configuration, the nonce is verified, and the user's sub is extracted
and stored against the verifier unit.
Once verifier users have a stored sub, you can use the Notification
Service to send them templated, translation-ready emails.
See Notification Service.