EdfaPay Logo

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.

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. Call task.bind() to let the SDK choose a terminal, or task.bind(terminal: terminal) to bind a specific one from task.terminals.

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

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.