The cordova-plugin-identity-orchestration plugin runs Mosaic Journeys from a Cordova app on iOS and Android. A journey is a server-driven flow: you start it by id, the SDK reports each step the client needs to handle, and you answer with submitClientResponse until the journey completes or is rejected.
The plugin exposes cordova.tsido. Journey state is pushed to a listener. It is not the return value of startJourney().
For native SDK behavior, see the iOS quickstart and the Android quickstart.
- Start a journey and receive each step on a listener
- Submit a client response, including cancel, fail, and resend
- Start a mobile approve journey from a push payload
- Register an APNs or FCM token for mobile approve
- Generate a debug PIN for a journey paused on a debug break
cordova-ios8.0.0 or highercordova-android14.0.1 or higher- iOS 13.0 or higher, Xcode 16 or higher (Swift Package Manager must reach GitHub)
- Android
minSdk24 (the SDK floor is API 21),compileSdk35 android.useAndroidX=true(cordova-android 14 sets this by default)
cordova plugin add https://github.com/TransmitSecurity/cordova_ts_identity_orchestration_plugin.git#v1.0.0
cordova platform add ios android
cordova prepare ios androidSet the deployment target in config.xml:
<platform name="ios">
<preference name="deployment-target" value="13.0" />
</platform>Xcode resolves IdentityOrchestration and TSCoreSDK through Swift Package Manager on the first build. If it does not, use File → Packages → Resolve Package Versions.
This plugin does not use CocoaPods. cordova prepare removes the unused CocoaPods files that cordova-ios generates, so the iOS project stays on Swift Package Manager.
When a journey uses the camera or Face ID, add the usage strings yourself. The plugin does not request permissions it cannot know you need:
<platform name="ios">
<config-file target="*-Info.plist" parent="NSCameraUsageDescription">
<string>Used to capture identity documents.</string>
</config-file>
<config-file target="*-Info.plist" parent="NSFaceIDUsageDescription">
<string>Used to authenticate you.</string>
</config-file>
</platform>initializeSDK() reads credentials from a native config file. initialize(clientId, options) takes them in JavaScript. Use one of the two.
Ship TransmitSecurity.plist as a resource:
<platform name="ios">
<resource-file src="resources/ios/TransmitSecurity.plist" target="TransmitSecurity.plist" />
</platform><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>credentials</key>
<dict>
<key>baseUrl</key>
<string>https://api.transmitsecurity.io/</string>
<key>clientId</key>
<string>YOUR_CLIENT_ID</string>
<key>applicationId</key>
<string>default_application</string>
</dict>
</dict>
</plist>The configurationFile argument is the iOS plist basename. Android ignores it and reads string resources.
Use the API base URL for your region:
| Region | Base URL |
|---|---|
| US | https://api.transmitsecurity.io/ |
| EU | https://api.eu.transmitsecurity.io/ |
| Canada | https://api.ca.transmitsecurity.io/ |
| Australia | https://api.au.transmitsecurity.io/ |
| Japan | https://api.gasne1-ts01.transmitsecurity.io/ |
| Sandbox | https://api.sbx.transmitsecurity.io/ |
| Custom domain | https://<your-custom-domain>/ (see Custom domains) |
Register a journey listener before you start a journey. The plugin buffers events until the first listener attaches, on the native side and in JavaScript, up to 50 events. Treat that buffer as a safety net for the startup race.
document.addEventListener('deviceready', function () {
cordova.tsido.addJourneyResponseListener(onJourneyEvent);
cordova.tsido.setLoggingEnabled(true)
.then(function () { return cordova.tsido.initializeSDK('TransmitSecurity'); })
.catch(function (e) { console.error('init failed', e); });
}, false);initializeSDK() with no argument uses the default plist name TransmitSecurity. Or pass an explicit client ID:
await cordova.tsido.initialize('YOUR_CLIENT_ID', {
serverPath: 'https://api.transmitsecurity.io',
});See InitializeOptions for the full options object.
- Orchestration quickstart: Cordova
- Orchestration functions
- Journeys overview
- Authentication SDK for passkey, biometric, and TOTP steps that this plugin cannot complete on its own
- Fraud Prevention SDK for the
drsTriggerActionstep