Skip to main content

Method selector for verifying ID (v2)

Stable / GA

This is the current stable version of this step type.

Allow users to choose their preferred identity verification method​

Display a list of identity verification methods to the user. The user will be directed to the verification method of their choice.


Key features​

  • User-driven selection: Shows the user a selection page with the available verification methods.
  • Category-based routes: Creates output routes based on the category of the selected method (e.g. eIDs, doc-idv), not per individual method.
  • Duplicate methods: The same method can be offered more than once — each repeat carries a unique variantId and gets its own route and its own translation keys, so a flow can present the same method more than once with different wording.
  • Method assets: Each method includes display assets (label, image, optional sublabel).
  • Flexible routing: No constraints on the type of step that can be associated with transitions.

Configuration​

OptionTypeRequiredDefaultDescription
eIdsobjectNo—Default assurance configuration applied to all eID methods that do not carry their own assuranceLevel / trustFramework.
eIds.assuranceLevelstringNo—Default assurance level for eID methods. Accepted values: low, substantial, high.
eIds.trustFrameworkstringNo—Default trust framework for eID methods. Accepted values: eidas.
methodsobject[]Yes—Flat list of verification method objects to present to the user, one selectable entry rendered in declaration order. The same method may appear more than once; every repeat carries a unique variantId and renders as its own variant with its own route and translations.
methods[].variantIdstringNo—Stable variant identity, unique within methods. Required on entries that repeat a method already declared without a variant id. Gives the variant its own output route (variant:<variantId>) and its own translation slots; entries without one route through their method category and use the shared per-method slots.
methods[].methodstringYes—Method identifier. eID methods: franceIdentite, personalausweis, lIdentiteNumeriqueLaPoste, spid, itsme, lithuanianMobileId, mojeIdPl, idin, smartId, mitId, norwegianBankId, estonianIdCard, latvianIdCard, lithuanianIdCard, finnishTrustNetwork, frejaEid, belgiumIdCard, edoApp, eParakstsMobile, portugueseIdCard, finnishHenkilokortti, serbianIdCard, swedishBankId, idAustria, chaveMovelDigital, oneId. Document IDV: doc_idv. EUDI wallet: eudi_wallet. Accepted values: franceIdentite, personalausweis, lIdentiteNumeriqueLaPoste, spid, itsme, lithuanianMobileId, mojeIdPl, idin, smartId, mitId, norwegianBankId, estonianIdCard, latvianIdCard, lithuanianIdCard, finnishTrustNetwork, frejaEid, belgiumIdCard, edoApp, eParakstsMobile, portugueseIdCard, finnishHenkilokortti, serbianIdCard, swedishBankId, idAustria, chaveMovelDigital, oneId, doc_idv, eudi_wallet.
methods[].assuranceLevelstringNo—Per-method assurance level override. Falls back to eIds.assuranceLevel for eID methods when not set. Accepted values: low, substantial, high.
methods[].trustFrameworkstringNo—Per-method trust framework override. Falls back to eIds.trustFramework for eID methods when not set. Accepted values: eidas.
enableRetrybooleanNofalseWhen true, adds a retry output route that can be used to handle user cancellations.

Example configuration​

{
"methods": [
{ "method": "personalausweis" },
{ "method": "franceIdentite" },
{ "method": "doc_idv" }
],
"eIds": {
"assuranceLevel": "high",
"trustFramework": "eidas"
}
}

The methods array is rendered to the user in declaration order — the first entry is shown first.

Duplicate methods (variant ids)​

A method may appear more than once. Every repeat must carry a unique variantId, which gives the variant:

  • its own route — a dedicated output port variant:<variantId> that can target a different downstream step than the method's category route;
  • its own translation keys — <variantId>VariantLabel and <variantId>VariantSublabel in the Translation manager.

Entries without a variantId share their method category's route and the per-method translation keys — the shape every flow used before variant ids existed.

{
"methods": [
{ "method": "itsme" },
{ "variantId": "itsme-2", "method": "itsme", "assuranceLevel": "high" },
{ "method": "doc_idv" }
]
}

Here itsme and itsme-2 are two independent variants the user can choose between: the first routes through the eIDs category route, the second through its own variant:itsme-2 route (which may point at a differently configured step). Variant ids must be unique within the step, and a method may only be declared without a variantId once.


Input data blocks​

This step does not consume any input data blocks.


Routes​

Output routes are category-based: one route is created per category that still has at least one method entry without a variantId. The supported categories and their associated methods are:

RouteMethods routed through this route
eIDsfranceIdentite, personalausweis, lIdentiteNumeriqueLaPoste, spid, itsme, lithuanianMobileId, mojeIdPl, idin, smartId, mitId, norwegianBankId, estonianIdCard, latvianIdCard, lithuanianIdCard, finnishTrustNetwork, frejaEid, belgiumIdCard, edoApp, eParakstsMobile, portugueseIdCard, finnishHenkilokortti, serbianIdCard, swedishBankId, idAustria, chaveMovelDigital, oneId
doc-idvdoc_idv
eudi_walleteudi_wallet
variant:<id>One route per variantId-carrying method entry — named after its variantId. Selected when the user picks that variant, allowing duplicates of the same method to route to different downstream steps. Every variantId-carrying entry must have its variant:<id> transition wired.
retryOnly available when enableRetry is true. Activated when the user cancels the selection flow, allowing the flow to redirect back to the selection step rather than triggering a session abort.

Example​

{
"eIds": {
"assuranceLevel": "substantial",
"trustFramework": "eidas"
},
"methods": [
{
"method": "franceIdentite",
"assuranceLevel": "substantial",
"trustFramework": "eidas"
},
{ "method": "personalausweis" },
{ "method": "doc_idv" }
]
}

In this example, both franceIdentite and personalausweis route through the eIDs route to a downstream eIDs step. personalausweis inherits assuranceLevel: "substantial" and trustFramework: "eidas" from the top-level eIds default.

Frontend implications​

Each method is associated with a set of display assets shown in the selection UI:

  • A label (the method's title)
  • An image displayed within the selection block
  • An optional sublabel (e.g. "France" for France Identité, "Germany" for Personalausweis)
info

Sublabels are only displayed when the set of currently shown methods contains more than one distinct sublabel value. If all displayed methods share the same sublabel, or only one has a sublabel, no sublabels are rendered at all.

tip

Customising labels and sublabels Method labels and sublabels can be overridden per flow version using the Translation manager. Open the Translation manager for your flow version, download the CSV, edit the relevant label or sublabel entries, and upload the modified file. Entries that carry a variantId each get their own <variantId>VariantLabel / <variantId>VariantSublabel keys in the CSV (defaulting to the method's standard label), so two variants of the same method can show different text. Entries without a variantId share the method's standard per-method key.


Output data blocks​

Data blockProduced on routeDescription
eIDMethodSelectioneIDs, variant:<id>Emitted when the user selects an eID method. Carries the selected method and its assurance context. See the full schema for accepted values.

This data block is consumed by a downstream eIDs step to determine which provider to call.