Requirements
- iOS 15 or later
- Xcode 16 or later
- A physical device for capture steps: the simulator can load the flow but cannot use the camera
1. Get access to the package
The SDK is distributed from a private GitHub repository while in partner beta. Ask your Legal Talent contact to add your GitHub users to the partner team, then authenticate Xcode with a classic personal access token withrepo (read) scope:
- Xcode
- ~/.netrc (CI)
Xcode → Settings → Accounts → + → GitHub, and paste the token.
2. Add the package
File → Add Package Dependencies, then enter:Package.swift:
LegalTalentUI for the drop-in flow, or LegalTalentCore for a headless integration.
3. Declare permissions
Add to your app’sInfo.plist the keys for the features your workflows use:
4. Create a session on your backend
Your backend creates the session with its API key and returns only theaccess_token to the app:
data.access_token to the app. See Create Session for every parameter.
5. Present the flow
environment defaults to .dev. Always pass it explicitly: .staging while you integrate, .production when you go live. The token must come from the same environment.fullScreenCover, a pushed view, or a hosting controller in UIKit:
6. Handle the result
onComplete fires once, after the last step is submitted. Treat it as a UX signal:
- Dismiss the flow and show a “verification in progress” screen.
- Wait for your backend to receive
kyc.session.processed(or the manualapproved/rejectedevents), or pollGET /kyc/sessions/{id}from your backend. - Update the app from your backend’s state.
onExit fires after a confirmation dialog. The session stays open until it expires, so you can present the flow again with the same token and the applicant resumes where they left off.
Headless
For a custom UI, useLegalTalentClient directly:
LegalTalentError; see Reference.
Localize the liveness screens
The face-liveness detector is rendered by AWS Amplify, which ships English only. To show it in Spanish or Portuguese, copy theen.lproj, es.lproj and pt.lproj folders from liveness-strings/ in the SDK repository into your app target and list es and pt as app localizations. See Customization.