Flutter SDK Changelog

3.1.0 (03-09-2024)

Features

  • Added broker field inside user_cancelled and market_closed error response in guest flow.
  • Added support for TWAs on the Android sdk. TWAs are similar to Custom Tabs but allow us to display certain web pages on full-screen by hiding the URL bar. A web page in a TWA is displayed in fullscreen if and only if the web page's domain has the current app's name and signature declared in its assetlinks.json file.
    If not, it defaults to a Custom Tab layout with the URL bar.

Bug Fixes

  • Android: Downgraded glide dependency to 4.12.0.

Intents Impacted: TRANSACTION

3.0.0 (25-07-2024)

❗️

BREAKING CHANGE

iOS

  • Mixpanel upgraded to version 4.2.7.
  • Added .mfTransaction intent for generic MF Transaction responses. This allows us to update the response data from our backend without having to release a new version of the SDK.

Android

  • Android Gradle plugin version updated to 7.4.2. Minimum supported AGP version is 7.0.0
  • Distribution URL upgraded to 7.6

Features

  • (iOS) MF Transaction responses are now resolved in a separate .mfTransaction intent which has a data: String property. The data is a valid JSON string and can be decoded on the consumer's end for the transaction response

Bug Fixes

  • Fixed (Android) an issue where after going back from the smallcase loader, no other smallcase transaction is getting triggered
  • Fixed (Android) an issue where after going back from the "connecting to broker" loader, the user is taken back, but then the chrome tab opens up and closes automatically

Intents Impacted:

  • All transactiona (Android).
  • Mf Transactions (iOS)

2.4.0 (28-05-2024)

Bug Fixes

  • Fixed (Android) Bug causing Mixpanel super props to be carried over to non-related events from other modules that might be using mixpanel as well.
  • Fixed an issue where the SDK was stuck on a blank screen when user cancelled flow while the transaction was in PROCESSING state.

Intents Impacted: All Transactional Intents where the processing state exists.

2.3.1 (18-01-2024)

Bug Fixes

  • Fixed (Flutter iOS Loans) SDK issue where a successful response was not being parsed properly and was throwing errors
  • Fixed (Android) Sentry Package update to 7.1.0 following Google Play guidelines
  • Fixed (Android) Android 14 crash due to sentry package
  • Fixed (Android) Leadgen crash where pressing the back button while opening a broker account online crashes the app
  • Fixed (Flutter) App crash while trying to close the MF import popup - reply already submitted

2.2.1 (08-12-2023)

Bug Fixes

  • Fixed an issue where cancelling AuthenticationSession popup on logout does not close the sc-loader
  • Fixed an issue where Holdings Import was failing with internal_error:2000 due to incorrect INTENT_HOLDINGS_IMPORT constant value

Intents Impacted: All transactional intents & Logout.

2.2.0 (02-11-2023)

Features

  • Added a new error on the sdk - order_pending:4006. This error is thrown when an order is placed at the broker but takes longer than usual to execute.
    Order types affected:
    • Invest or Invest + SIP SMT
    • SST BUY/SELL
    • Exit SMT
    • Archive/Repair SMT

Bug Fixes

  • Fixed an issue causing the WebView to take up the font size of the device system settings. (Android)

Intents Impacted: All Transactional Intents, MF Holdings Import & smallplug.

2.1.0 (11-04-2023)

Features

  • The SDK now supports OTP auto fill on MF Holdings Import and IN a/c opening(leadgen). The user is prompted to allow the SDK to read the first incoming message after the user reaches the OTP screen. If the user gives their consent then the SDK will read the OTP from the message and auto fill it for them.
The consent modal presented to the user. It contains the entire contents of the message so the user knows exactly which message he is allowing the SDK to read.

The consent modal presented to the user. It contains the entire contents of the message so the user knows exactly which message he is allowing the SDK to read.

2.0.1 (13-03-2023)

Bug Fixes

  • Fixed an issue where Add Funds flow would not open in the same browser's Custom Tab as the initial transaction.(Android)
  • Fixed an issue where the SDK would throw market_closed 4004 error for Dummy Order flow.(Android)

Dev Improvements

Intents Impacted: All transactional intents.

2.0.0 (20-12-2022)

Features

  • Added notes key in the success response of triggerMfTransaction and triggerTransactionFlow (iOS).

Bug Fixes

  • Added missing keys in OrderBatch - dummy & transactionId. (iOS)
  • Added source key in OrderData. (iOS)
  • Fixed an issue preventing smallplug UI from rendering correctly on iOS version 13 and below. (iOS)
  • Fixed an issue causing build failures for Xcode 14.x. (iOS)
  • Fixed an issue causing build failures when Mixpanel-swift is added as a dependency. (iOS)

Dev Improvements

  • Removed legacy permissions: READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE. (Android)

❗️

BREAKING CHANGE

Removed redundant nesting of transaction success data inside the data key in iOS.

{
   "broker":"upstox-leprechaun",
   "transactionId":"TRX_d60e8975ef554ed3ab37fa7bda7da1e5",
   "transaction":"TRANSACTION",
   "smallcaseAuthToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbWFsbGNhc2VBdXRoSWQiOiI2M2RhMDQyZDkyOTJlZjA2MjM1NmI1NmQiLCJpYXQiOjE2NzUyMzI2MDUsImV4cCI6MTY3NTIzNjIwNX0.lEUzPkyObPSs1pZdPeiWZWAQisJDxVTwSTo5_5_BI_c",
   "data":{
      "batches":[
         {
            "filled":1,
            "sellAmount":0,
            "orders":[
               {
                  "status":"COMPLETE",
                  "product":"CNC",
                  "quantity":1,
                  "tradingsymbol":"PVR",
                  "exchange":"NSE",
                  "filledQuantity":1,
                  "averagePrice":1700.8399999999999,
                  "transactionType":"BUY",
                  "exchangeOrderId":"63da03d67f7c3ac9bdb39f9f63da05657f7c3ac9bdb39ff4",
                  "orderType":"MARKET"
               }
            ],
            "variety":"regular",
            "quantity":1,
            "batchId":"63da0565a63f3c829d51afaf",
            "status":"COMPLETED",
            "completedDate":"2023-02-01T06:23:36.607Z",
            "unplaced":[
               
            ],
            "buyAmount":1700.8399999999999
         }
      ]
   },
   "success":true,
   "signup":false
}
{
   "data":{
      "broker":"kite-leprechaun",
      "data":{
         "batches":[
            {
               "filled":0,
               "sellAmount":0,
               "orders":[
                  {
                     "status":"PLACED",
                     "product":"CNC",
                     "quantity":1,
                     "tradingsymbol":"IDEA",
                     "exchange":"NSE",
                     "transactionType":"BUY",
                     "orderType":"MARKET"
                  }
               ],
               "variety":"amo",
               "quantity":1,
               "batchId":"62cc1ca411d89384782696c9",
               "status":"PLACED",
               "unplaced":[
                  
               ],
               "buyAmount":0
            }
         ]
      },
      "smallcaseAuthToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbWFsbGNhc2VBdXRoSWQiOiI2MmNjMWMzOTJmZWQ3ODMyZDliNWVmN2QiLCJpYXQiOjE2NTc1NDM4MzIsImV4cCI6MTY1NzU0NzQzMn0.5g3-CFrqjMcYZRMnIZ15L04l--hTvt5OQdP0SIPttt0",
      "transactionId":"TRX_c5d90de4ceff492fa68c6708e0b62c2a"
   },
   "transaction":"TRANSACTION",
   "success":true
}

Intents Impacted: All Transactional Intents & 5paisa account opening flow.

1.5.0 (19-10-2022)

Features

  • The SDK will now share a new error no_compatible_browser 1014 for transactional intents if the user's device does not have any browsers installed. (android)
  • Added notes key in the success response of triggerMfTransaction.
  • Added support for Xcode 14 (Swift 5.7).

Bug Fixes

  • Fixed an issue which prevented the SDK from processing transactional intents if the user's device did not have any of these recommended browsers installed:
  1. Google Chrome
  2. Brave Browser
  3. Samsung Internet browser

📘

Note

A user's transactional journey may not be optimal if the device has only 1 browser installed and is not among the recommended browsers mentioned above, for example: Mozilla Firefox, Duck Duck Go etc.

  • Fixed an issue in MF Holdings Import where the bottom sheet would overlap with the smallcase loader.
  • Fixed an issue where an invalid transactionId in triggerMfTransaction method returns internal error
  • Fixed an issue which prevented the SDK from returning the value signup=false in transactional success and error responses.
  • Fixed an issue causing a build failure on Xcode 14.

🚧

Note

Starting with this version, gateway flutter SDK won't be compatible with Xcode 13.x (Swift 5.6) or before.

Intents Impacted: All transactional intents

1.5.0-alpha01 (29-09-2022)

Features

  • Mutual Funds Holdings Import: Added a feature enabling users to import a snapshot of their Mutual Funds Holdings natively in a seamless manner.

Syntax

Future<String?> triggerMfGatewayTransaction(String txnId)

Bug Fixes

  • Fixed an issue which prevented the SDK from returning smallcase_archive_1013 transaction error.
  • Fixed an issue which caused the SDK to return an error response for a successful SMT transaction.
  • Fixed an issue which caused broker details to become null for show orders.(Android)
  • Fixed an issue which prevented the SDK from returning no_browser_found 4005 error for show orders.(Android)
  • Fixed an issue which caused the SDK to return smallcaseAuthToken along with lead status response.(Android)
  • Fixed an issue causing the SDK to return a hashmap response instead of a JSON response for SST Limit orders.(Android)
  • Fixed an issue causing the SDK to return a hashmap response instead of a JSON response for transactions in PROCESSING state.(Android)
  • Fixed an issue which prevented the SDK from returning the expected error response when a user cancels a transaction just before the transaction timer ends on BP.(iOS)
  • Fixed an issue which prevented the SDK to mark a SMT transaction errored even if the conditions were met.(iOS)
  • Fixed an issue which caused the SDK to crash for webhook_unreachable 3003 error.(iOS)
  • Fixed an issue which prevented SDK to share smallcaseAuthToken and broker values for consent_denied 1003 and transaction_expired 1005 error.(iOS)
  • Removed arm64 architecture from DEBUG build configuration for iOS simulators.(iOS)
  • Removed the annotation @available for stored properties in classes.(iOS)

Dev Improvements

  • Refactored framework script to remove architectures only for release mode

Intents Impacted: All Transactional and Non-Transactional Intents.

1.4.0 (03-08-2022)

Features

  • The SDK will now share smallcaseAuthToken and broker values in addition to the error message and code for users performing a successful broker login but not completing the intended transaction successfully.

Syntax

{
   "data":{
      "broker":"kite-leprechaun",
      "smallcaseAuthToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbWFsbGNhc2VBdXRoSWQiOiI2MmVhMzkyODRlZmY1YmM4NjYwYWU0YzYiLCJpYXQiOjE2NTk1MTcyMDYsImV4cCI6MTY1OTUyMDgwNn0.qgYiZCxZxFrlcGgtvKmUqSaTpIyk4H2Mt2XWGfAYXqg"
   },
   "code":1012,
   "message":"user_cancelled"
}

Bug Fixes

  • Fixed a build time issue which caused issues with android Method Channel class (android).
  • Fixed an issue which caused the SDK to return an error response for a successful SMT transaction.
  • Fixed an issue which caused a failure in downloading the rebalance timeline of a smallcase (android).
  • Fixed an issue which caused no error data shared for market_closed 4005 and intent_not_enabled_for_broker 3000 errors.
  • Fixed an issue which caused the SDK to not share a transactionId post a successful CONNECT transaction.
  • Fixed an issue which caused an analytics event to register incorrect property value (android).
  • Fixed an issue which caused the iOS SDK to use the overriden value of CFBundleVersionString while deploying an app to the App Store (iOS).
  • Removed the default smallcase logo from smallplug header, SDK displays only the back (left) icon if a gateway's smallplug header icon is not available (iOS).
  • Fixed an issue which prevented SDK to share smallcaseAuthToken and broker values for consent_denied 1003 and transaction_expired 1005 error (iOS).
  • Fixed an issue which caused the SDK to crash for webhook_unreachable 3003 error (iOS).
  • Fixed an issue which prevented the SDK from returning the expected error response when a user cancels a transaction just before the transaction timer ends on BP.

Dev improvements

  • Added CI release scripts in package.json to streamline the SDK release process
  • Removed redundant method to fetch the SDK version from info.plist file

Intents Impacted: All Transactional and Non-Transactional Intents.

1.3.2 (05-07-2022)

Bug Fixes

  • App crash on cancelling leadgen window when opened from the broker chooser
  • No lead status response while navigating from broker chooser

Dev Improvements

  • Disabled remote debugging on webViews.

1.3.1 (27-06-2022)

Bug Fixes

  • Fixed an issue which caused MixpanelApi to return a null instance.
  • Fixed an issue which caused smallplug to crash for null input arguments.
  • Added default header and back icon color in smallplug.

Dev Improvements

  • Exceptions raised by Glide are now caught and logged on Sentry.
  • removed unnecessary null safe checks in smallplug.

Intents Impacted: All Transactional Intents and smallplug.

1.3.0 (21-06-2022)

Features

  • Integrated Mixpanel SDK to track user events on iOS.

  • Added partner branding to smallplug. With this new experience your app logos will be very accessible and prominent on all the screens inside smallplug.

  • Syntax:

Future<String?> launchSmallplugWithBranding(
      SmallplugData smallplugData,
      {SmallplugUiConfig? smallplugUiConfig})
  
  
  class SmallplugUiConfig {
  	final Color? headerColor;
    
    // Should be a value between 0 and 1
  	final double headerOpacity;
    
  	final Color? backIconColor;
    // Should be a value between 0 and 1
    
  	final double backIconOpacity;
}

The refactored smallplug window:

1242

smallcase Distribution Module: custom branding screenshot (on iOS)

1080

smallcase Distribution Module: custom branding screenshot (on Android)

Bug Fixes

  • Fixed an issue on ANDROID with apps targeting API 30 and above where pressing the back button on the Chrome Custom Tab(while performing any transactions) would show the transaction loader indefinitely.
  • Fixed an issue on ANDROID where pressing the back button on the connect loader would still continue to open the Broker Chooser. Now it cancels the transaction and returns a user_cancelled error.
  • Fixed an issue on ANDROID where DM would open if launched during the SDK initialisation process. Now DM will only launch after SDK has FINISHED initialising.
  • Fixed an issue on ANDROID where on 5paisa PWA, no response is passed back from the SDK incase of back press.

Intents Impacted: All Transactional and Non Transactional Intents.

1.1.7 (18-03-2022)

Features

  • Added SHOW_ORDERS non transactional intent
  • Added SMT AMO cancellation
  • Integrated Mixpanel sdk to track user events.
  • Integrated Sentry sdk for logging exceptions and unknown error cases.

Bug Fixes

  • Fixed an issue which caused the copy on pre-broker-chooser screen to display the contents of a guest user flow event for a connected user.
  • Fixed an issue which caused broker chooser to show only 1 broker when navigated from an intent with single available broker to an intent with available brokers > 1.
  • Fixed an issue which caused broker chooser to show only 2 brokers when navigated from show_orders to transactional flow
  • Fixed an issue which caused broker chooser to show more than allowed brokers for show_orders.
  • Lead Gen status response from 5paisa PWA screen and broker redirection screen
  • Fixed an issue which caused SMT transactions to fail for a GUEST user.
  • Removed redundant orderConfig while communicating with broker chooser.
  • Fixed an issue which caused an order to cancel when the app was minimised.

Dev Improvements

  • Replaced Coil with Glide library for inflating remote images in ImageView
  • Removed deprecated R8 from gradle properties.
  • Upgraded mrmike ok2curl interceptor library to version 0.7.0.
  • Refactored smallcase gateway branding in connect-ui
  • Updated copy content in connect-ui.
    (for more details, please refer this)

Intents Impacted: All Transactional and Non Transactional Intents.

1.1.6 (18-11-2021)

Bug Fixes

  • Fixed an issue which caused smallplug to redirect to smallcase.com instead of {distributor}.smallcase.com (android)
  • Fixed Contact Support CTA to launch a mail intent (android)

1.1.5 (01-11-2021)

Bug Fixes

  • Fixed an issue which caused smallplug to remain in logged out state even after successful broker login

1.1.4 (01-11-2021)

Features

  • External links inside Distribution Module are now opened in a custom tab (android) and SafariViewController (iOS).
  • PDF files from Distribution Module can now be viewed separately in a custom tab (android) and SafariViewController (iOS).
  • Pressing back button twice within a time frame of 3 seconds closes the Distribution Module (android).

Bug Fixes

  • Fixed Lead Gen flow initialisation from Distribution Module.
  • Fixed an issue which caused the sdk to be unresponsive when user clicks on back button on custom tab (android).
  • Fixed external link opening via javascript (iOS).
  • Fixed title and subtitle for connected users on gateway loading screen (android).
  • Fixed an issue which caused transactions to fail on iFrame brokers.
  • Fixed the title text of Axis Direct consent screen for SMT transactions (android).
  • Fixed leprechaun toggle flow in Broker Chooser. Clicking 10 times on Login with your broker will toggle the leprechaun mode for transactions.
  • Fixed an issue causing the SDK to return with init_sdk 3004 if the user logged out from the Broker Platform.
  • Fixed an issue causing an error when a GUEST user tries to SIP in an invested smallcase.

Dev improvements

  • Removed smallplugHeaderText property from SmallplugData class.

1.1.4-alpha04 (26-10-2021)

Features

  • Pressing back button twice within a time frame of 3 seconds closes the Distribution Module (android).

Bug Fixes

  • Fixed Lead Gen flow initialisation from Distribution Module.
  • Fixed an issue which caused the sdk to be unresponsive when user clicks on back button on custom tab.

UI improvements

  • Redesigned smallplug webview enabling smallplug to consume more screen space.

android

iOS

1.1.4-alpha03 (21-09-2021)

Dev improvements

  • Removed redundant network calls to check transactionId status.
  • Broker chooser would now close automatically once the transactionId expires (i.e. in 5 minutes)

1.1.2 (17-09-2021)

Features

1.1.1 (02-08-2021)

Features