Skip to main content
Smart-ID and Mobile-ID let users verify their identity by approving a request on their phone. Both integrations run inside Didit’s existing ID Verification workflow step and return a wallet verification result with cryptographic assurance. You use the same session creation, hosted verification and webhook integration as your other Didit workflows.
Integrated and tested in staging; production activation pending. A successful test does not make either wallet available in production. Check the availability shown in your environment’s console before enabling a wallet. The wallet catalog reports production availability separately from integration progress.

Countries and prerequisites

The integration covers Smart-ID in Estonia (EST), Latvia (LVA), Lithuania (LTU) and Belgium (BEL). Mobile-ID covers Estonia (EST) and Lithuania (LTU); Mobile-ID is not offered for Latvia. These country codes describe the integrated routes, not a promise that every route is activated in your environment. For Smart-ID, the user needs an active eligible Smart-ID identity, its personal identification code and access to the app. For Mobile-ID, the user needs an active Mobile-ID identity, its personal identification code and its associated phone number. Enter the Mobile-ID phone number in international format: +372 for Estonia or +370 for Lithuania. The selected country must match the identity being used. Neither method returns a portrait. If your workflow requires a selfie, keep the appropriate Liveness and Face Match steps configured separately.

What the user sees

  1. The user selects their country and chooses Smart-ID or Mobile-ID from the wallets your workflow accepts.
  2. A Didit-hosted page asks for the personal identification code; Mobile-ID also asks for the associated phone number.
  3. The page displays a comparison code while the authentication request reaches the phone.
  4. The user checks that the code on the phone matches the code on the verification page, then approves using their PIN on the phone.
  5. Didit validates the signed identity result and continues the verification workflow.
The user never enters their wallet PIN on the Didit page. If the codes differ or the user did not initiate the request, they should cancel it. The comparison-code flow works with a desktop or phone browser and does not require a QR code. The page waits for the result automatically and provides a cancellation option. An approval on the phone must still pass identity and signature checks before Didit treats the wallet verification as successful.

Configure the workflow

In the console, open your workflow’s ID Verification node, choose Countries, and open the country you want to configure. Under Wallets accepted, select the available wallets and choose the failure behavior. Save and publish the workflow before creating a new session. See ID Verification methods in the console for the full console path.
The following is a methods configuration fragment, not a complete workflow request. Use it only when both smart_id and mobile_id are marked available for Estonia in your environment. An unavailable wallet rejects the whole workflow save.
The providers array is an accept-list: users choose between its wallets, and array order does not set a preferred wallet. For Lithuania, use LTU with the same wallet identifiers when both are available. For Latvia or Belgium, use LVA or BEL with smart_id only, subject to the same availability check. Omitted countries retain their existing default document-capture behavior. The full configuration contract is in Workflow feature configs.

Read the verified result

Read the completed session through the session decision API or your webhook integration. A successful wallet check records verification_method: "wallet", assurance: "cryptographic" and wallet_provider: "smart_id" or "mobile_id". The wallet_verification object identifies the wallet, issuing country, verification time, level of assurance and signature verdict. The ID verification result exposes the normalized full_name and date_of_birth fields. For these two wallets, wallet_verification.attributes carries given_name, family_name, birthdate and personal_code from the validated identity. The issuing country identifies the identity route; it does not establish the person’s nationality. Didit returns the signature verdict, not the underlying signed assertion. No portrait or wallet PIN is returned. In the console, the session’s Credential card shows the wallet and its verified evidence. A successful wallet check completes the ID Verification step; later checks in your workflow still determine the session’s final decision. See the ID verification data model for field types and the distinction between a check result and the overall session decision.

Handle cancellation and failure

If a user cancels, times out or cannot complete authentication, Didit applies the country’s wallet.on_failure setting. fallback_to_document starts document capture when it is enabled for that country. decline declines the ID Verification step. If document capture is disabled, there is no document fallback available. Only a completed, verified wallet check incurs the wallet verification charge. Cancelled, expired and failed wallet attempts do not. A completed document fallback is a separate check under document verification pricing. Consult the wallet pricing table for published rates; a method without a published rate should not be treated as free.

Test before production

Test each wallet and country you plan to offer in the environment where it is enabled. Confirm that the correct wallets appear, the comparison code is visible, approval continues the workflow, and the session result contains the expected wallet evidence. Also check cancellation, expiry and your chosen fallback behavior. Sandbox simulations and staging tests are different from production authentication. A simulated approval is useful for checking your integration but does not prove that a real identity can authenticate in production. Before rollout, confirm production availability in the console and complete an authorized real-device verification for the route you intend to use.

Other digital identity wallets

Didit’s digital ID wallet catalog includes production availability and upcoming wallets, including the Finnish Trust Network, BankID and the EUDI Wallet. A listed wallet, published price or completed onboarding form does not itself enable production authentication. Use the catalog and your environment’s console to determine what you can activate today.