What's New
Everything that changed in the latest release — new APIs, improvements, and fixes — with direct links to each updated section.
v1.0.6 (Current)Current
March 29, 2026
Breaking Changes
changePin() & activateCard() — New Signature
Both methods now accept List<String> parameters directly instead of a TxnParams object. Remove any TxnParams construction in these call sites and pass the raw parameter list. Applies to all platforms.
Flutter Package Renamed
The Flutter package has been renamed from edfapay_flutter to edfapay_softpos_sdk. Update pubspec.yaml and replace all import statements: import 'package:edfapay_softpos_sdk/edfapay_softpos_sdk.dart';
Action Required Before Upgrading
Two breaking changes affect Android and Flutter. Review the migration steps in the Changelog before updating.
New Features
Full email/password authentication flow available via EdfaPayPlugin.Extension. Complements the existing loginWithToken() for setups where email/password is preferred over a static token.
Low-level key retrieval method for advanced terminal setup scenarios. Use when you need to inspect or pass the initial handshake key to a custom backend integration.
Automatically renews the active session when it has expired, without requiring a full SDK reinitialization. Call this before processing transactions in long-running app sessions.
Encrypted persistent key-value storage built into the SDK. Store tokens, preferences, or any sensitive string data securely without setting up a separate encrypted preferences library.
Two new credential constructors: withInput() launches an interactive in-SDK login dialog, and withEmail() accepts an email address for partial credential entry where the SDK prompts for the password.
Bug Fixes
Flutter enableLogs — Method, Not Property
enableLogs is now called as EdfaPayPlugin.enableLogs(true), not assigned as a property. Update any enableLogs = true assignments.
Flutter RemoteChannel.LocalNetwork — timeout is Double (seconds)
The timeout parameter is a Double in seconds (e.g. 30.0), not a Long in milliseconds. Previously passing 30000 would set a 30,000-second timeout.
Flutter Pagination — pageNumber / pageSize
Pagination constructor uses pageNumber and pageSize named parameters. The previous page and size parameter names were incorrect.
Flutter reconciliationDetail / reconciliationReceipt — id:
Both methods use id: as the named parameter, not reconciliationId:.
Flutter Transaction.withRRN — Positional Args, DateTime?
Transaction.withRRN and withTxnNumber use positional arguments. The second argument is DateTime? (not String). Pass DateTime.parse(...) for the date.
Flutter showMessageDialog — onClose:
The dismiss callback is onClose: not onOk:.
Flutter setShufflePinPad — Named Parameter Required
Must be called as .setShufflePinPad(shuffle: true). Calling without the named parameter causes a compilation error.
Flutter onTerminalBindingTask — TerminalBindingTask Object
The callback now receives a TerminalBindingTask object, not a raw List
Flutter changePin / activateCard — Required Callbacks
onRequestTimerEnd, onCardScanTimerEnd, and onCancelByUser are now required parameters. The call will not compile without all three.
Flutter Parity
All fixes in v1.0.6 are Flutter-specific corrections to the bridge API. Android and iOS native SDKs are unaffected.
v1.0.5
February 26, 2026
New Features
The SDK initialization flow now includes an optional onTerminalBindingTask callback that fires when multiple terminals are registered. Use it to let the operator select or auto-bind a specific terminal before the session begins.
A new utility namespace covering device identification (getDeviceId), location services (haveLocationPermission, requestLocationPermission, currentLocation, isLocationMocked), and message dialogs (showMessageDialog).
Open a local TCP channel so external POS systems, kiosks, or backend services can trigger payment transactions on the SDK via HTTP on the local network. Configure with RemoteChannel.LocalNetwork(port, timeout).open().
TransactionType.CASHBACK is now supported, allowing purchase-with-cashback flows.
New setPartnerConfig() method allows partners to apply an encrypted configuration string before SDK initialization. Supports overriding environment URLs and partner-specific feature flags.
Improvements & Fixes
isFlowComplete — Up to 3 Callbacks
Clarified that onPaymentProcessComplete fires up to 3 times depending on FlowType. Always gate post-payment logic on isFlowComplete === true.
CHANGE_PIN & ACTIVATE_CARD Transaction Types
Two additional TransactionType values added to the reference table: CHANGE_PIN and ACTIVATE_CARD.
Older Releases
For a full history of all releases, visit the Changelog page.
On this page
Downloads
Coming SoonSample apps, release bundles, and more content will be available here soon.