EdfaPay Logo

Changelog

Version history and release notes for the EdfaPay Soft POS SDK.

Version Policy

We follow semantic versioning (SemVer). Breaking changes are introduced only in major versions with migration guides.

v1.0.5

CurrentFebruary 2026

✨ New Features

  • Change PIN: New changePin() method for cardholder PIN change flows
  • Card Activation: New activateCard() method for new card activation
  • Terminal Binding API: New onTerminalBindingTask callback in initiate() for multi-terminal scenarios
  • Remote Access API: New EdfaPayPlugin.RemoteChannel for POS integration via local network
  • Type-Safe Error Handling: New EdfaError sealed class hierarchy with 40+ categorized error types
  • CVM Status: New CVMStatus enum for cardholder verification method tracking
  • Data Persistence: New saveData() and getData() methods in PluginUtils
  • Partner Configuration: New setPartnerConfig() method to apply encrypted partner-level settings (environment URLs, branding, feature flags) before SDK initialization — view docs

🔧 Improvements

  • Enhanced Transaction model with statusCode(), statusMessage(), authentication(), isPinTransaction() methods
  • New addAdditionalRequestParams() in TxnParams for custom request data
  • Improved Pagination model with Field and Sort enums
  • New FunctionCode enum for terminal configuration types
  • Better silent login handling and session management
  • Enhanced encrypted configuration support

🐛 Bug Fixes

  • Fixed silent login flow and handling
  • Improved terminal binding task error handling
  • Fixed session refresh token handling

⚠️ Breaking Changes

  • initiate() now includes onTerminalBindingTask callback parameter
  • Error handling migrated from Error enum to EdfaError sealed class hierarchy
  • EdfaException.error now returns EdfaError instead of Error

v1.0.4

February 2025

✨ New Features

  • Kotlin 2.0 Support: Full compatibility with Kotlin 2.0+ and new K2 compiler
  • Enhanced Theme API: New typography customization options including custom fonts and text styles
  • Animation Controls: Configurable animations with enable/disable toggle
  • Presentation Modes: New dialog presentation options (DIALOG_BOTTOM_FILL)

🔧 Improvements

  • Improved NFC card reading reliability
  • Faster SDK initialization time
  • Reduced memory footprint by 15%
  • Better error messages with actionable guidance
  • Updated compileSdk to 36

🐛 Bug Fixes

  • Fixed race condition in multi-tap scenarios
  • Resolved memory leak in transaction history view
  • Fixed PIN pad shuffle algorithm edge case
  • Corrected currency display for certain locales

⚠️ Breaking Changes

  • minSdk increased from 28 to 29 (Android 10+)
  • Deprecated setFont() replaced with typography() builder

v1.0.3

December 2024

✨ New Features

  • Multi-Terminal Support: Manage multiple terminal sessions from a single device
  • Session List API: New getSessionList() method for terminal switching
  • Reconciliation History: Access past settlement batches and receipts

🔧 Improvements

  • Improved session persistence across app restarts
  • Enhanced transaction detail model with additional fields
  • Better handling of network interruptions

🐛 Bug Fixes

  • Fixed logout not clearing all cached data
  • Resolved issue with void transaction on same-day purchases
  • Fixed terminal sync failing on slow networks

v1.0.2

October 2024

✨ New Features

  • PIN Pad Customization: Shuffle layout for enhanced security
  • Location Validation: Detect mocked/fake GPS locations
  • Branding Assets: Custom logos for payment UI

🔧 Improvements

  • Reduced SDK size by 20%
  • Improved ProGuard rules for better compatibility
  • Enhanced debug logging output

🐛 Bug Fixes

  • Fixed crash on devices without NFC
  • Resolved theme colors not applying to dialogs
  • Fixed transaction callback not firing in edge cases

v1.0.1

August 2024

🔧 Improvements

  • Improved EMV kernel stability
  • Better error messages for common issues
  • Documentation improvements

🐛 Bug Fixes

  • Fixed META-INF conflicts with other libraries
  • Resolved initialization timeout on slow networks
  • Fixed receipt formatting issues

v1.0.0

Initial ReleaseJune 2024

✨ Features

  • Core Payment Operations: Purchase, Authorize, Capture, Refund, Void, Reversal
  • NFC Tap-to-Pay: Contactless card acceptance via device NFC
  • PIN Entry: Secure on-device PIN entry with PCI compliance
  • Transaction Management: History, details, and receipts
  • Terminal Management: Activation, sync, and configuration
  • Reconciliation: End-of-day settlement operations
  • Theme Customization: Colors, fonts, and branding
  • Multi-Environment: Sandbox and Production modes

Upgrade Guide

Upgrading to v1.0.5

  1. Update dependency:
    implementation("com.edfapay:sa-edfapay-revamp:1.0.5")
  2. Update initiate() call: Add the new onTerminalBindingTask callback (see migration guide below)
  3. Update error handling: Migrate from Error enum to EdfaError sealed class (see migration guide below)
  4. Sync and rebuild: Run Gradle sync and clean rebuild

Terminal Binding Migration

The initiate() method now includes an onTerminalBindingTask callback for handling multi-terminal scenarios. This is called when terminal selection is required (e.g., first-time setup or when multiple terminals are available).

Before (v1.0.4):

Example.kt
Loading...

After (v1.0.5):

Example.kt
Loading...

Error Handling Migration

Error handling has been upgraded from a simple Error enum to a type-safeEdfaError sealed class hierarchy with 40+ categorized error types.

Error Categories:

CategoryCode RangeExamples
EdfaError.Initialization1xxxPluginNotInitialized, SessionFailed, ConfigurationMissing
EdfaError.Network2xxxTimeout, NullResponse, ServerKeyFailure
EdfaError.Card3xxxNotSupported, DisconnectedWhileProcessing, NoNfcTransceiver
EdfaError.Kernel4xxxVisaNotInitialized, MastercardNotInitialized
EdfaError.Terminal5xxxPreparationFailed, RegistrationFailed, TsnNotFound
EdfaError.Transaction6xxxInvalidParams, MissingLastApproved, NotExistToReverse
EdfaError.Authentication7xxxFailed, LocationNotGranted
EdfaError.Validation8xxxPinLengthInvalid
EdfaError.Security9xxxEncryptionFailed
EdfaError.Generic1-2, -1SomethingWentWrong, Custom

Before (v1.0.4):

Example.kt
Loading...

After (v1.0.5):

Example.kt
Loading...

New Methods in v1.0.5

Transaction Methods:

Example.kt
Loading...

Remote Access API:

Example.kt
Loading...

Stay Updated

Subscribe to our developer newsletter for release announcements and migration guides. Visit developers.edfapay.com/subscribe