EdfaPay Logo

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.