Changelog
Version history and release notes for the EdfaPay Soft POS SDK.
v1.0.6Current
Latest stable release of the EdfaPay Soft POS SDK.
Breaking Changes
- changePin() & activateCard() (both platforms): Parameter changed from TxnParams to List<String> parameters. Remove any TxnParams usage in these calls and pass the raw parameter list instead.
- Flutter package renamed: edfapay_flutter → edfapay_softpos_sdk. Update pubspec.yaml and all import statements.
New Features
- Flutter Extension.loginWithCredentials(): Full email/password authentication flow via PluginExtension
- Flutter Extension.getInitialKey(): Low-level key retrieval for advanced terminal setup
- Flutter Extension.renewSessionIfRequiredAndPossible(): Automatic session renewal without reinitializing
- Flutter Utils.saveData() / Utils.getData(): Encrypted persistent key-value storage
- Flutter EdfaPayCredentials.withInput() and .withEmail() constructors for interactive/partial credential entry
Bug Fixes
- Flutter enableLogs: now a method call enableLogs(bool), not a property assignment
- Flutter RemoteChannel.LocalNetwork timeout: parameter is Double (seconds), not Long (milliseconds)
- Flutter Pagination: constructor uses pageNumber/pageSize (not page/size)
- Flutter reconciliationDetail/reconciliationReceipt: id: parameter (not reconciliationId:)
- Flutter Transaction.withRRN/withTxnNumber: positional arguments, second arg is DateTime? not String
- Flutter showMessageDialog: callback is onClose: (not onOk:)
- Flutter setShufflePinPad: named parameter required — setShufflePinPad(shuffle: true)
- Flutter onTerminalBindingTask: callback receives TerminalBindingTask object; call task.bind() or task.bind(terminal: terminal) — not a raw list
- Flutter changePin/activateCard: onRequestTimerEnd, onCardScanTimerEnd, onCancelByUser callbacks are required
Loading...Breaking Changes
v1.0.6 contains breaking changes for Android and Flutter. See the upgrade guide below before updating.
v1.0.5
Previous stable release of the EdfaPay Soft POS SDK.
New Features
- Partner Configuration API: setPartnerConfig() for custom API endpoints and branding
- Card Management: activateCard() and changePin() now documented with full multi-platform examples
- Remote Access API: EdfaPayPlugin.RemoteChannel.LocalNetwork for POS integration via TCP
- Extension API: EdfaPayPlugin.Extension.loginWithToken() for advanced authentication
- Flutter parity: All payment operations, history, reconciliation, terminal, and session APIs now available in Dart
Improvements
- Terminal binding: onTerminalBindingTask now documented for both native and Flutter (bindTerminal API)
- Documentation: Full multi-language code examples (Kotlin, Java, Flutter, React Native, Xamarin) across all pages
- Theme API: setPresentation() now covers all 10 presentation types with full behavior/visual options
- Error handling: EdfaError sealed class hierarchy documented with 1xxx–9xxx error code ranges
Bug Fixes
- SdkTheme.setHeaderImage() correctly documented with Base64 for hybrid platforms
- void() method documented as void$() for Flutter (Dart reserved keyword workaround)
- Session management getters documented as async Futures in Flutter
- Animation speed documented as method setAnimationSpeedX() not property in Flutter
Loading...Version Policy
We follow semantic versioning (SemVer). Breaking changes are introduced only in major versions with migration guides.
v1.0.4
Previous stable release.
New Features
- Initial Flutter bridge plugin (Dart) support
- EdfaPayCredentials.withToken() and .withEmailPassword() constructors for Flutter
- Reconciliation API: reconcile(), reconciliationHistory(), reconciliationDetail(), reconciliationReceipt()
- Session Management API: getSessionId(), getSessionList(), logoutCurrentSession(), logoutSession()
- Terminal Management API: terminalInfo(), activateTerminal(), deActivateTerminal(), syncTerminal()
Improvements
- initiate() now returns sessionId in onSuccess callback
- Improved error messages in EdfaError hierarchy
- Performance improvements in NFC card scan workflow
Bug Fixes
- Fixed terminal binding callback not firing on some Android 14 devices
- Fixed animation speed property not persisting across SDK reinitialization
v1.0.3
Multi-terminal support and session management.
New Features
- Multi-terminal support: onTerminalBindingTask callback introduced
- Session Management API: getSessionList(), getSessionDetail(), logoutSession()
- Transaction History: txnHistory() with Pagination support
Improvements
- Improved NFC card detection reliability on Android 13+
- Better error messages for terminal binding failures
Bug Fixes
- Fixed session not persisting after app restart on some devices
- Fixed transaction history pagination returning incorrect page counts
v1.0.2
PIN pad customization and location validation.
New Features
- PIN pad shuffle: setShufflePinPad() for enhanced shoulder-surfing protection
- Location validation: mock location detection via EdfaPayPlugin.Utils.location
- Presentation.setShufflePinPad() method added
Improvements
- Improved EMV kernel stability for Mastercard contactless
- Reduced NFC tap-to-read latency by 200ms average
Bug Fixes
- Fixed PIN pad layout on small screen devices (<5.5 inch)
- Fixed location permission request not showing on Android 12
v1.0.1
EMV kernel stability improvements and documentation refinements.
Improvements
- EMV kernel: improved Visa and Mastercard contactless reliability
- Reduced SDK initialization time by ~30%
- Documentation: added Java equivalents for all Kotlin examples
Bug Fixes
- Fixed occasional ANR during NFC card scan on lower-end devices
- Fixed theme colors not applying on first SDK launch
v1.0.0Initial Release
The initial release of the EdfaPay Soft POS SDK.
New Features
- Core payment operations: purchase(), authorize(), capture(), refund(), void(), reverseLastTransaction()
- NFC tap-to-pay via EMV kernel (Visa, Mastercard, AMEX)
- SDK initialization with EdfaPayCredentials (token and email/password auth)
- SdkTheme customization: colors, fonts, logos, animations
- Presentation modes: FULLSCREEN, DIALOG_CENTER, and positioned overlays
- Basic terminal management: activate, deactivate, sync
- EdfaError sealed class hierarchy for structured error handling
Upgrade Guide
Follow these steps when upgrading the SDK to a new major or minor version.
Upgrading to v1.0.6
Breaking changes require the following migration steps when upgrading from v1.0.5 to v1.0.6:
Loading...Required — Breaking Changes
Both items below must be addressed before building against v1.0.6. The app will not compile otherwise.
Upgrading to v1.0.5
Key changes when upgrading from v1.0.4 to v1.0.5:
onTerminalBindingTask
Now required — implement this callback to select a terminal during initialization.
setPartnerConfig()
New method — call before initiate() if you have a partner configuration string.
reverseLastTransaction()
New convenience method — replaces manual reverse() calls for timeout recovery.
Error Handling Migration
The EdfaError sealed class hierarchy was expanded in v1.0.5. Update your when/switch expressions to handle new subtypes.
Backward Compatible
Existing error handling code using the else/default branch will continue to work. New error types will fall through to the default case.
On this page
Downloads
Coming SoonSample apps, release bundles, and more content will be available here soon.