Skip to main content
Nayax logs EMV Core Android & Linux SDK changes on this page as they ship. Subscribe to the RSS feed to get notified of new entries. To find the feed, add /rss.xml to the end of this page’s URL. Release notes are organized into three categories to help you evaluate the impact of each update:
  • Improvements: New API commands, expanded platform and card support, and performance enhancements.
  • Fixes: Resolved bugs and reliability improvements.
  • Known Issues: Current limitations or pending features, with recommended workarounds.
Platform-Specific FeaturesWhile most updates are universal, platform-specific improvements or fixes are marked with (Android Only) or (Linux Only) in the section titles.
This version includes the following improvements, fixes, and known issues for the SDK:

1-Step Incremental Authorization (Android Only) (#7462)

Settling a transaction for more than its pre-authorized amount now automatically triggers an incremental authorization for the difference. See Single-step incremental authorization. This release also adds the IncrementalAuthorization method and IncrementalAuthorizationResponse callback, reserved for a future multi-step flow and not required for the single-step behavior above.

Deferred Transaction (#7486)

The terminal can now keep accepting payments while offline and send them for approval once communication is restored. Set isDeferred and isFinalAmount in PreAuthorize to use it. This replaces the deprecated PMT_ACCEPT_OFFLINE configuration attribute. See Deferred Transaction for details.

Offline by Default Mode (#7604)

EMV Core’s defaults changed so it behaves as a simple, offline-capable RFID reader out of the box: CLP_MIFARE_ENABLED now defaults to 2 (local Closed-Loop Mifare) and OPEN_LOOP_ENABLED now defaults to 0 (disabled). In this default configuration, GetStatus reports Ready and PreAuthorize/GetCardToken keep working even without network. The device only requires network, and reports NoNetwork when it’s down, if you explicitly enable Open Loop or set CLP_MIFARE_ENABLED=1.

External Settlement Support in the Client Library (#7430)

The client library now parses and exposes the fields required for server-to-server settlement.

Push Notifications via MQTT (#6817)

EMV Core now supports MQTT push notifications. To use this feature, configure the MQTT Primary Address (oti-broker.nayax.com:1883) and Ping Interval (default 600 seconds) machine attributes in Nayax Core.

Currency Fallback from the Reader (#7654)

If CURRENCY_CODE is missing from the configuration, EMV Core now falls back to the reader’s kernel currency tag (9F3C) before defaulting to USD.

AUDIO_PERCENTAGE Configuration (#7609)

Added the AUDIO_PERCENTAGE configuration attribute to control the reader’s audio volume.

Terminal Authentication over TLS (#6719, #7305)

Terminal Authentication (DSS) GET /challenge requests are now sent over TLS.

additionalReceiptData in PreAuthorize and ConfirmTransaction (#7377)

You can now pass additionalReceiptData directly in PreAuthorize and ConfirmTransaction to include extra data in the eReceipt.

Local Firmware and Configuration Update Utility (#7372)

Added a utility to update reader firmware and configuration locally without a TMS connection. This is intended for production-line use only. Remove it before deployment.

Advanced Closed Loop Card Support (#7639)

EMV Core can now read Mifare blocks using the CLP_MIFARE_READ attribute.

SendToReader (Android Only) (#6898)

Host applications can now send commands directly to the reader with the new SendToReader method.

Reader Configuration Management from Nayax Core (#7250)

Reader configuration can now be managed from Nayax Core machine attributes.

Process Info in UPLOAD_LOG (#7300)

UPLOAD_LOG now includes process information: CPU, memory, and uptime.

Felica IDm as CLP UID (#7496)

FeliCa’s IDm is now returned as the CLP UID.

Unconditional Confirmation (#7594)

Removed the CONFIRM_IF_UNSURE flag. Confirmation behavior is now unconditional.

Client Library Version Reporting (#7673)

The client library version is now reported to TMS via GetVersions.

Nayax TLS CA Support (#7703)

Added support for the Nayax TLS certificate authority.

Hardcoded External Settlement Defaults (#7705)

External Settlement properties are now hardcoded defaults, removing the dependency on local.properties.

Foreground Service (#7712)

The EMV Core service now runs in the foreground, preventing the OS from killing it.

New UNO-mini Firmware (EMVSC_v071749)

Adds Type B card reading support (for Autel). This firmware is valid for the Linux, Android, and RTOS v1.5 SDKs. RTOS v1.0 should continue using firmware EMVSC_v071652.oef.

ReaderMessageEvent Index Correction (#7088)

Messages that previously used index 255 now use the correct assigned indexes in the 201-220 range.

Reader Communication Recovery (#6819)

Improved reader communication recovery, including handling of reader power cycles.

External Settlement Response Missing hwSerial (#7515)

The External Settlement response was missing the hwSerial field.

Push Notifications on TMS-C (#7537)

Fixed push notifications not working when the device is managed by TMS-C (Nayax Core).

CLP Card ID Response Fields (#7425)

Fixed the CLP Card ID being sent in the wrong response fields.

Local CLP Transaction and Card ID (#7512)

Fixed the Transaction ID and Card ID (CardToken) being identical on Local CLP transactions.

Transaction Fee Reporting (#7478)

Fixed transaction fees not being sent correctly to the Bridge.

PMT_DUKPT_KEY_VARIANT Fallback (#6772)

PMT_DUKPT_KEY_VARIANT now falls back to 0x11 when the configured value is invalid.

Automatic Restart with No Reader (#7183)

EMV Core now restarts automatically if it doesn’t find a reader within 1 hour.

IncrementalAuthorization URL (Android Only) (#7662)

Fixed an incorrect URL used by IncrementalAuthorization.

Configuration Preserved Across APK Upgrades (#7491)

Configuration was previously deleted when the APK was updated. It’s now preserved across upgrades.

hwSerial Truncation (#7710)

Fixed hwSerial being truncated in NayaxTransactionIdInfo.

Large Receipt Data Buffer Overflow (#7763)

Fixed a buffer overflow that could crash or reset the device when large receipt or terminal data combined with transaction result data.

Truncated Server Responses (#7783)

Fixed truncated or rejected server responses that could report a valid approval as declined, or drop a TMS-pushed command.

Continuous Polling Interruption (#7217)

Fixed polling stopping in the middle of a continuous=true transaction.

CON_CONFIG and Service Restart (#7452, #7701)

Fixed the CON_CONFIG command failing, and the Android service sometimes not restarting after that command.

GetStatus Stuck at Update (#7740)

Fixed GetStatus remaining stuck at Update for 5 or more minutes after a firmware flash.

Duplicate Authorize Requests

Reduced duplicate Authorize requests sent after a timeout or cancellation.

Reader Swap Terminal ID (#7211, #7030)

Always stop EMV Core before moving a reader to a different machine. Swapping a reader without resetting EMV Core doesn’t update the Terminal ID, and payment may complete against the previous terminal. Moving a reader to a different machine without first stopping EMV Core on the original machine may also cause unpredictable behavior on the new machine.

Android OS Service Restarts (#7714)

The Android OS may stop the EMV Core service, causing multiple restarts during operation.

IsTransactionApproved on Cancelled Transactions (#7743)

A cancelled transaction incorrectly returns IsTransactionApproved as true.

Cancellation After CannotCancel (#7742)

A transaction may still be cancelled after receiving a CannotCancel response.

GetStatus with Ethernet Disabled (#7741)

GetStatus returns Ready even when Ethernet is disabled.

Version history

Every earlier Android & Linux SDK version, condensed to one line. See the current version above for full detail and links.