TAD Signing SDK lets you add face liveness verification and cryptographic document signing to iOS banking and fintech apps through a single drop-in view controller. It handles the full biometric flow — face liveness detection, FIDO2 passkey management, and JWT-signed result tokens — so you don’t need to build or maintain any custom biometric UI.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/signing-sdk/face-auth-ios/llms.txt
Use this file to discover all available pages before exploring further.
What the SDK does
TAD Signing SDK combines three security mechanisms into one integrated flow:- Face liveness detection — the SDK captures and verifies that the user is physically present, preventing spoofing via photos or video replay.
- FIDO2 passkey management — passkeys are created and bound to your domain using WebAuthn. The device’s Secure Enclave stores the private key; it never leaves the device.
- JWT-signed results — every completed operation returns a JWT signed with your backend’s ES512 key pair, which your server can verify independently.
Two modes: .register and .sign
The SDK operates in one of two modes, set at the time you present TadSigningViewController:
.register— performs face liveness, creates a new FIDO2 passkey bound to the user’sbankId, and registers it with your signing service. Returns arequestIdon success..sign— authenticates the existing passkey with face liveness, then produces a signed JWT. Returns both ajwtand arequestIdon success.
mode argument you pass in.
Architecture overview
The entire biometric UI is encapsulated inTadSigningViewController. You instantiate it with a TadSigningConfig, a bankId identifying the user, an optional dto dictionary for extra data such as a one-time password, and a mode. You then present it modally from your existing view controller.
Key benefits for banking and fintech apps
- No custom UI required.
TadSigningViewControllerencapsulates the full biometric flow, reducing integration time and maintenance burden. - Passkey security by default. Private keys are stored in the device Secure Enclave and bound to your Associated Domain, preventing credential phishing.
- Liveness prevents fraud. Real-time face liveness checks block photo and replay attacks at the point of authentication.
- Verifiable JWT output. The ES512-signed JWT lets your backend independently verify every signing event without trusting the client.
- Minimal surface area. One config object, one view controller, one callback — the SDK exposes only what you need.
What you need before integrating
TAD Signing SDK requires iOS 16.0 or later. Your Xcode project must have Associated Domains configured with
webcredentials:<your-domain> for WebAuthn passkey binding to work.- API base URL — the endpoint your signing service is hosted at (for example,
https://signing.tadi.uz). - ES512 public key — the PEM-encoded EC public key used to verify JWT signatures.
- Relying party ID — the domain string that identifies your WebAuthn origin (for example,
signing.tadi.uz).
Info.plist usage descriptions: NSCameraUsageDescription for the face capture step, and NSFaceIDUsageDescription for passkey operations.
Explore the documentation
Quickstart
Add the SDK to your Xcode project and present your first biometric flow in four steps.
Configuration
Reference for all five
TadSigningConfig parameters with examples.API reference
Full reference for
TadSigningViewController, TadSigningConfig, and result types.Integration guide
Walk through the registration and signing flows end to end.