Skip to main content
To help detect fraud, the SDK records technical signals about the device, the connection and each capture, and sends them with the requests the flow already makes. It is capture only: nothing here changes a decision, a validation or what the applicant sees, and no extra endpoint or backend work is needed on your side. Signals are on by default on iOS and Android.

What is sent

Identifiers never leave the device raw: the device identifier (identifierForVendor on iOS, ANDROID_ID on Android) is sent only as a salted SHA-256 hash. Not collected: location (GPS), advertising identifiers (IDFA / advertising ID), lists of installed apps, Wi-Fi network names, clipboard or typed content. There is no App Tracking Transparency prompt and no new runtime permission.
Integrity checks cover jailbreak, simulator, debugger, hooking frameworks, signing / distribution, screen recording and active calls.
The entry gate shows one informational line under the terms and privacy links, localized in en / es / pt. When the applicant continues, the SDK records consent.device_signals = "accepted_with_terms" with the text version (v1). There is no extra checkbox.

Turn it off

Pass collectsDeviceSignals: false to switch everything off: the consent line disappears, no capture_context is sent, and client_metadata shrinks to the SDK identity and the consent record.
Attestation lets the platform check that captures came from a genuine copy of your app on a genuine device. It is best effort on both platforms: it never blocks a capture and is reported as unavailable when it cannot run.
The SDK creates an App Attest key per install, attests it once, and signs one assertion per captured image over sha256(session_id ‖ step_id ‖ image_sha256).To enable it, turn on the App Attest capability for your App ID and add the entitlement:
TestFlight and App Store builds always use the production environment.

Store declarations

LegalTalentCore and LegalTalentUI ship privacy manifests that declare the collected data types (Device ID and Product Interaction: linked to the user, not used for tracking, purpose App Functionality) and the required-reason APIs they use. Xcode merges them into your app’s privacy report; review it before submitting.The capture views read device motion without a permission prompt; declaring NSMotionUsageDescription in your Info.plist is still recommended.

Headless integrations

On iOS, pass a collector to the client and forward its output on each call:
The collector is exposed as client.deviceSignalsCollector, and every public call takes a clientMetadata: argument. LegalTalentCapturedFace.captureContext carries the selfie capture summary.