{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab"]},"redocly_category":"SDK Reference","type":"markdown"},"seo":{"title":"Overview","description":"Everything about Mosaic Journeys, SDKs, and APIs","siteUrl":"https://developer.transmitsecurity.com/"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"overview","__idx":0},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flutter_ts_identity_orchestration"]}," is a Flutter plugin for Mosaic Orchestration. It enables secure identity verification and authentication flows in your Flutter app using Mosaic. It allows your application to start journeys, handle journey steps, and submit client responses through a stream-based event model."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For platform-specific implementation details and advanced configuration, refer to the native SDK documentation:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developer.transmitsecurity.com/guides/webauthn/quick_start_sdk_ios/"},"children":["iOS documentation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developer.transmitsecurity.com/guides/webauthn/quick_start_sdk_android/"},"children":["Android documentation"]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"capabilities","__idx":1},"children":["Capabilities"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Start and manage journeys from the client side"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle journey steps and submit client responses"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Stream-based real-time event handling via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["journeyResponseStream"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Support for mobile approve flows"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Push token management"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Debug PIN generation for development"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"requirements","__idx":2},"children":["Requirements"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Flutter 3.3.0+, Dart 3.8.1+"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["iOS 13.0+, Xcode 12+"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Android API 21+ (Android 5.0), compileSdkVersion 35+"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"installation","__idx":3},"children":["Installation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add the dependency to your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pubspec.yaml"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"dependencies:\n  flutter_ts_identity_orchestration:\n    git:\n      url: https://github.com/TransmitSecurity/flutter_ts_identity_orchestration.git\n      ref: 0.0.3\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Install dependencies:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"flutter pub get\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"platform-setup","__idx":4},"children":["Platform setup"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"iOS","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add permissions to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ios/Runner/Info.plist"]}," (if using camera and FaceID):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"<key>NSCameraUsageDescription</key>\n<string>This app needs camera access for identity verification</string>\n<key>NSFaceIDUsageDescription</key>\n<string>This app uses Face ID for authentication</string>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Set the minimum iOS version in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ios/Podfile"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"ruby","header":{"controls":{"copy":{}}},"source":"platform :ios, '13.0'\n","lang":"ruby"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Android","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add permissions to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["android/app/src/main/AndroidManifest.xml"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"<uses-permission android:name=\"android.permission.INTERNET\" />\n<uses-permission android:name=\"android.permission.CAMERA\" />\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add the Maven repository to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["android/build.gradle"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"gradle","header":{"controls":{"copy":{}}},"source":"allprojects {\n    repositories {\n        google()\n        mavenCentral()\n        maven {\n            url \"https://transmit.jfrog.io/artifactory/transmit-security-gradle-release-local/\"\n        }\n    }\n}\n","lang":"gradle"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Update ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["android/app/build.gradle"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"gradle","header":{"controls":{"copy":{}}},"source":"android {\n    compileSdkVersion 35\n\n    defaultConfig {\n        minSdkVersion 21\n        targetSdkVersion 34\n    }\n}\n","lang":"gradle"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Make sure your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MainActivity"]}," inherits from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FlutterFragmentActivity"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import io.flutter.embedding.android.FlutterFragmentActivity\n\nclass MainActivity: FlutterFragmentActivity() {\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is required for proper plugin functionality and native SDK integration."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"initialization","__idx":5},"children":["Initialization"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can initialize the SDK either with a configuration file or with explicit parameters."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Configuration file","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"dart","header":{"controls":{"copy":{}}},"source":"import 'package:flutter_ts_identity_orchestration/flutter_ts_identity_orchestration.dart';\n\nfinal orchestration = FlutterTsIdentityOrchestration();\nawait orchestration.initializeSDK(configurationFile: 'TransmitSecurity');\n","lang":"dart"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Parameters","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"dart","header":{"controls":{"copy":{}}},"source":"import 'package:flutter_ts_identity_orchestration/flutter_ts_identity_orchestration.dart';\n\nfinal orchestration = FlutterTsIdentityOrchestration();\nawait orchestration.initialize(\n  clientId: 'CLIENT_ID',\n  options: {\n    'serverPath': 'https://api.transmitsecurity.io',\n    'locale': 'en',\n  },\n);\n","lang":"dart"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"regional-base-urls","__idx":6},"children":["Regional base URLs"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Region"},"children":["Region"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Base URL"},"children":["Base URL"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["US"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["EU"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.eu.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Canada"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.ca.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Australia"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.au.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Japan"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.gasne1-ts01.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sandbox"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.sbx.transmitsecurity.io/"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Custom domain"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://<your-domain>.com/"]}," (see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/deployment/custom_domains"},"children":["Custom domains"]},")"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":7},"children":["Next steps"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once initialized, implement orchestration flows using the available ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/sdk-ref/flutter-ts-identity-orchestration/functions"},"children":["functions"]},"."]}]},"headings":[{"value":"Overview","id":"overview","depth":1},{"value":"Capabilities","id":"capabilities","depth":2},{"value":"Requirements","id":"requirements","depth":2},{"value":"Installation","id":"installation","depth":2},{"value":"Platform setup","id":"platform-setup","depth":2},{"value":"Initialization","id":"initialization","depth":2},{"value":"Regional base URLs","id":"regional-base-urls","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Orchestration SDK for Flutter","markdown":{"toc":{"depth":2}},"seo":{"title":"Overview"}},"lastModified":"2026-09-04T14:54:13.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/sdk-ref/flutter-ts-identity-orchestration/orchestration_overview","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}