---
title: Silent Verification
description: Enable background verification for returning users in Card Not Present Verification, using signals and recurrence to approve transactions silently.
canonical: https://developer.unico.io/dual-api/developers/regional-solutions/card-not-present-verification/integration/silent-verification
locale: en
generated_by: markdown-export
---

Silent Verification lets a returning, previously validated identity complete a Card Not Present Verification transaction **without a visible capture screen**. Instead of asking the user for a new selfie, Unico's technology evaluates signals and recurrence in the background to decide whether the transaction can be silently approved.

Silent Verification is not a separate product — it's an extra step on top of the same transaction creation flow described in [Payment transactions](/developers/regional-solutions/card-not-present-verification/integration/apis/api-reference/payment-transactions) and [Credit card Onboarding](/developers/regional-solutions/card-not-present-verification/integration/apis/api-reference/credit-card-onboarding). Collecting context signals with the SDK and sending that same external key when creating the transaction is what enables the possibility of a silent approval.

:::note[When it applies]
- Silent Verification applies when there's enough history for Unico's technology to evaluate the identity through signals.
- When that evaluation isn't possible — due to a lack of history or for other reasons — the transaction falls back to the standard visual flow instead. This can happen, for example, the first time a given identity is seen on the network.
:::

## 1. Collect device metadata with the SDK

Install and initialize the Capture SDK for your platform as usual — Silent Verification does not change that setup. Follow the platform's Monitoring Data Collection guide to send `externalUserId`:

- [Android](/dual-api/developers/sdks-and-tools/android/smart-revalidation/silent-revalidation)
- [iOS](/dual-api/developers/sdks-and-tools/ios/capture-flow/capture-types/silent-revalidation)
- Web

:::info
Flutter is not supported for Silent Verification yet.
:::

:::warning[This is not just observability metadata here]
The Monitoring Data Collection guides describe `externalUserId` as optional telemetry that "does not change the SDK's capture behavior or the API response." That's true for the SDK on its own. **In Card Not Present Verification, this same field is what the backend uses to decide whether the transaction can be silently approved.** Sending it is what enables Silent Verification for that transaction — it is not inert here.
:::

## 2. Create the transaction with the same externalUserID

`externalUserID` is optional — but without it, Silent Verification cannot happen for that transaction. When creating the transaction — via [Payment transactions](/developers/regional-solutions/card-not-present-verification/integration/apis/api-reference/payment-transactions) or [Credit card Onboarding](/developers/regional-solutions/card-not-present-verification/integration/apis/api-reference/credit-card-onboarding) — send the **exact same** `externalUserID` used in the SDK, inside `additionalInfo`:

```json
{
  "additionalInfo": {
    "externalUserID": "YOUR_EXTERNAL_USER_ID"
  }
}
```

Omitting it doesn't cause any error — the transaction is still created normally, it just always follows the standard flow with visual friction.

## 3. Handle the response

If the transaction qualifies and is silently approved, no further action is needed:

```json
{
  "id": "6ab1771e-dfab-4e47-8316-2452268e5481",
  "status": "approved"
}
```

Otherwise, the response includes a `link` to complete the standard visual flow, exactly like a transaction created without Silent Verification:

```json
{
  "id": "6ab1771e-dfab-4e47-8316-2452268e5481",
  "status": "waiting",
  "link": "https://aces.so/example",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cC[...]Ok6yJV_adQssw5c"
}
```

For any other status, follow the standard flow using the returned `link` — see [Controlling the experience](/developers/regional-solutions/card-not-present-verification/integration/controlling-the-experience/overview) and [Enumerated](/developers/regional-solutions/card-not-present-verification/integration/apis/enumerated) for the full list of statuses.