---
title: Stille Revalidierung
description: 'Nutzt die Engine für Stille Revalidierung, die den Verhaltenskontext des Nutzers im Rahmen des Netzwerkeffekts von Unico analysiert und das Vertrauenssignal für die aktuelle Transaktion liefert. Mit anderen Worten: Wir liefern das Vertrauensniveau dafür, dass es sich um den erwarteten Nutzer in der Transaktion handelt.'
canonical: https://developer.unico.io/de/developers/sdks-and-tools/flutter/capture-flow/capture-types/silent-revalidation
locale: de
generated_by: markdown-export
---

Nutzt die Engine für Stille Revalidierung, die den Verhaltenskontext des Nutzers im Rahmen des Netzwerkeffekts von Unico analysiert und das Vertrauenssignal für die aktuelle Transaktion liefert. Mit anderen Worten: Wir liefern das Vertrauensniveau dafür, dass es sich um den erwarteten Nutzer in der Transaktion handelt.

:::info[Voraussetzung]
Mindestversion: `4.62.0`
:::

## UnicoCheckPrepareInfo-Attribute

| Attribut | Typ | Erforderlich | Beschreibung |
|---|---|:-:|---|
| `externalUserId` | `String` | ✅ | Benutzerkennung in Ihrem System. Wird vor der Übertragung automatisch mit SHA-256 gehasht und niemals im Klartext gesendet. |

## Stille Revalidierung starten

****Schritt 1** — `initializeSDK` im nativen Code implementieren**

`initializeSDK` wird in Dart nicht bereitgestellt. Die Methode muss ausgeführt werden, bevor die Flutter-Engine startet, daher rufen Sie sie im nativen Code Ihrer App auf — `Application.onCreate` unter Android und `application(_:didFinishLaunchingWithOptions:)` unter iOS.

  :::warning[Beim App-Start aufrufen]
  `UnicoSDK.initializeSDK` muss so früh wie möglich beim App-Start aufgerufen werden. Ein späterer Aufruf verringert die Zeit für die Hintergrundverarbeitung und erhöht die Wahrscheinlichkeit unschlüssiger Authentifizierungsantworten.
  :::

  ### Android

    ```kotlin
    import android.app.Application
    import com.acesso.acessobio_android.onboarding.UnicoSDK
    import com.acesso.acessobio_android.onboarding.models.Environment
    import com.acesso.acessobio_android.onboarding.models.UnicoSDKConfig

    class MainApplication : Application() {
        override fun onCreate() {
            super.onCreate()

            UnicoSDK.initializeSDK(
                this,
                UnicoSDKConfig(
                    sdkKey = "your_sdk_key",
                    bundleId = "your_bundle_id",
                    environment = Environment.UAT
                )
            )
        }
    }
    ```

    Registrieren Sie die Klasse in `android/app/src/main/AndroidManifest.xml`:

    ```xml
    <application android:name=".MainApplication">
    ```

    Das Plugin stellt Ihrer Anwendung das native Erfassungs-SDK bereit, sodass `UnicoSDK` bereits in Ihrem Compile-Classpath enthalten ist – in `android/app/build.gradle` ist keine zusätzliche Abhängigkeit erforderlich.

### iOS

    ```swift
    import AcessoBio
    import Flutter
    import UIKit

    @main
    class AppDelegate: FlutterAppDelegate {
        override func application(
            _ application: UIApplication,
            didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
        ) -> Bool {
            UnicoSDK.initializeSDK(config: YourUnicoConfig(), environment: .UAT)

            GeneratedPluginRegistrant.register(with: self)
            return super.application(application, didFinishLaunchingWithOptions: launchOptions)
        }
    }
    ```

    Die `config` ist eine `AcessoBioConfigDataSource` – der `sdkKey` stammt aus `getHostKey()` und das Bundle aus `getBundleIdentifier()`:

    ```swift
    final class YourUnicoConfig: NSObject, AcessoBioConfigDataSource {
        func getBundleIdentifier() -> String { "your_bundle_id" }
        func getHostKey() -> String { "your_sdk_key" }
    }
    ```

  Wenn `environment` weggelassen wird, ist der Standardwert die Produktionsumgebung.

****Schritt 2** — `startSilentValidation` implementieren**

Verknüpfen Sie nach `initializeSDK` die bereits laufende Erfassung mit dem identifizierten Nutzer, indem Sie `startSilentValidation` mit einem `UnicoCheckPrepareInfo` aufrufen, das die `externalUserId` enthält.

  ```dart
  import 'package:unico_check/unico_check.dart';

  try {
    await UnicoSilentAuthDefault().startSilentValidation(
      UnicoCheckPrepareInfo(externalUserId: 'external_user_id'),
    );
  } on UnicoError catch (error) {
    // error.code, error.description, error.info
  }
  ```

  Das zurückgegebene `Future` wird abgeschlossen, wenn die Validierung erfolgreich startet, und wirft bei einem Fehlschlag `UnicoError`.

  Wenn die Validierung am Anfang des Ablaufs stattfindet, zum Beispiel beim Login, warten Sie auf den Abschluss des `Future`, bevor Sie mit Schritt 3 fortfahren.

  ## Fehler

  | Code | Bedeutung |
  |---|---|
  | `75001` | SDK nicht initialisiert. `initializeSDK` wurde nicht aufgerufen, ist noch nicht abgeschlossen oder ist fehlgeschlagen. |
  | `75000` | Allgemeiner Erfassungsfehler. |

  `UnicoError.info` enthält den Schritt des Ablaufs, der fehlgeschlagen ist. Der Wert wird unter iOS bereitgestellt und ist unter Android immer null.

****Schritt 3** — Prozess erstellen und authentifizieren**

Erstellen Sie, während die Validierung läuft, den Verifizierungsprozess, um die Authentifizierung abzuschließen. Siehe [API-Referenz ▸ API ▸ Prozess erstellen](/developers/api-reference/api/post-processes).

  Fügen Sie im Request-Body dieselbe `externalUserId` ein, die in Schritt 2 im `UnicoCheckPrepareInfo` gesendet wurde – dadurch kann das Backend die Prozesserstellung mit der bereits laufenden Validierung korrelieren.

  ```bash
  curl -X POST https://api.id.unico.app/processes/v1 \
    -H "Authorization: Bearer $TOKEN" \
    -H "APIKEY: $API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "subject": {
        "duiType": 1,
        "code": "12345678909",
        "name": "Luke Skywalker",
        "gender": "M",
        "birthDate": "2000-05-20",
        "email": "luke@example.com",
        "phone": "5519725570707"
      },
      "useCase": "Onboarding",
      "externalUserId": "external_user_id"
    }'
  ```

  Die Antwort enthält das Feld `silentAuth.result` mit dem Authentifizierungsergebnis:

  ```json
  {
      "id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
      "status": 3,
      "silentAuth": {
          "result": "yes"
      }
  }
  ```

  | Feld | Typ | Beschreibung |
  |---|---|---|
  | `silentAuth.result` | string | `yes` oder `no` – siehe mögliche Werte unten. |

  <details>
  **`silentAuth.result` — mögliche Werte**

  | Wert | Bedeutung |
  |---|---|
  | `yes` | Authentifizierung genehmigt, Nutzer mit ausreichendem Vertrauen erkannt, keine zusätzliche Erfassung erforderlich. |
  | `no` | Unzureichende Daten für eine stille Genehmigung. Es wird empfohlen, über Biometrie (Selfie) oder eine andere alternative Methode zu authentifizieren. |

</details>