Skip to main content
The EMV Core SDK includes management features that streamline device configuration, firmware updates, and diagnostics. These capabilities reduce maintenance overhead and enhance reliability by allowing centralized control through Nayax’s Terminal Management System (TMS) or local updates when necessary. The following methods are used for managing the SDK: See the sections below for more details on each method.

Destroy

This method is only available for the Android SDK.
Terminates the session with the reader and releases any associated resources. Use this during application shutdown or when the reader is no longer needed to prevent resource leaks and ensure the proper cleanup of SDK-related processes. See the Destroy API signature in the code below:
Android
void Destroy();

GetAttribute

Called by the POS application to retrieve a specific attribute value from the EMV Core configuration file. See the GetAttribute API signature in the code below:
Request:
{"jsonrpc":"2.0","method":"GetAttribute", "params": {"Key":"PRE_AUTH_AMOUNT"}, "id":12}
Response when the requested attribute exists in the configuration file:
   {"jsonrpc":"2.0", "result":"150", "id":12}
Response when the requested attribute doesn’t exist in the configuration file:
 {"jsonrpc":"2.0", "error":{"code": -1, "message": "Get attribute key not found"}, "id":12}
Parameters:
ParameterDescription
idCommand ID.
keyLabel of the requested configuration attribute (e.g., PRE_AUTH_AMOUNT).

GetKioskID

Returns the device’s unique identification number, which the Nayax server uses to link transactions, configurations, and monitoring to this device. See the GetKioskID API signature in the code below:
Request:
{"jsonrpc": "2.0", "method": "GetKioskID", "params": {}, "id": 902}
Response:
   {"jsonrpc":"2.0", "result":"00130226001C9C69", "id":902}

GetStatus

Retrieves the reader’s current status, including its transaction readiness and connectivity state. This is useful for monitoring the device state during integration or deployment. See the GetStatus API signature in the code below:
Request:
{"jsonrpc": "2.0", "method": "GetStatus", "id": 805}
Response:
 {"jsonrpc": "2.0", "result": "Ready", "id": 805}
The possible result values are: NotReady, Ready, PaymentTransaction, Update, NoReader, and NoTerminalId.
  • Update: Indicates the EMV Core is busy with TMS updates (e.g., new firmware or configuration).
  • NoTerminalId: Indicates the EMV Core does not have a configured Terminal ID.
If GetStatus times out, retry up to three times with a five-second interval. If there is still no response, assume EMV Core is unresponsive and restart the process.

GetVersion

Fetches the reader’s firmware version and the EMV Core SDK version. This is used to verify that the latest updates have been applied.
Request:
{"jsonrpc": "2.0", "method": "GetVersion", "params":{"component":
"Reader"}, "id": 902}

Response:
   {"jsonrpc": "2.0", "result": "S8_v054105", "id": 902}

ParameterDescription
idCommand ID.
componentSoftware component. Note: Use otiKiosk for “EMV Core” versions.

Initialize

Initializes the EMV Core SDK and establishes a session with the reader. Call this once during application startup before performing any transactions or management tasks. See the Initialize API signature in the code below:
Java
void Initialize(Context context);

isEMVCoreConnected

This method is only available for the Android SDK.
Retrieves the current status of the reader, including its transaction readiness and connectivity state. See the isEMVCoreConnected API signature in the code below:
Android
boolean isEmvCoreConnected();

SetManagementCallbacks

This method is only available for the Android SDK.
Registers callbacks for system-level EMV Core events. This includes the SystemStatusChanged event, which lets your application monitor the health and maintenance status of the SDK. See the SetManagementCallbacks API signature in the code below:
Android
void SetManagementCallbacks(IManagementCallbacks iMaintenanceCallbacks);
Parameters: iMaintenanceCallbacks: Maintenance details and system event handlers.
To learn more about implementation, see the Event Callbacks documentation.

SetPaymentCallbacks

Registers callbacks called by the EMV Core and implemented by the sales application regarding payment functionality. This includes handling events such as TransactionComplete and ReaderMessage. See the SetPaymentCallbacks API signature in the code below:
Java
void SetPaymentCallbacks(IPaymentCallbacks iPaymentCallbacks);
Parameters:
  • iPaymentCallbacks: Payment transaction details and event handlers.

ShowMessage

Displays a custom message on the reader’s screen (available only if the reader has a display). See the ShowMessage API signature in the code below:
Request:
{"jsonrpc": "2.0", "method": "ShowMessage", "params":
{"line1": "Please Select", "line2": "Your Product"}, "id": 901}
Response:
   {"jsonrpc": "2.0", "result": true, "id": 901}
ParameterDescription
idCommand ID.
line1Text to show in the 1st line of the reader display (limited to 16 characters).
line2Text to show in the 2nd line of the reader display (limited to 16 characters).
This method is exclusive to the UNO-PLUS reader.

UpdateMachineAttributes

This method is only available for the Android SDK.
Updates host machine attributes in Nayax Core. These values are informational only and do not affect payment processing. They are available in Nayax Core for reporting and diagnostics.
Request:
{
  "jsonrpc": "2.0",
  "method": "UpdateMachineAttributes",
  "params": [
    {"id": 542, "value": "AC Charger 1"},
    {"id": 543, "value": "ACC1-1234567"},
    {"id": 544, "value": "1.0.35-A"},
    {"id": 593, "value": "1.2-G3"},
    {"id": 541, "value": "manuf-123"}
  ],
  "id": 801
}
Response:
{"jsonrpc": "2.0", "result": true, "id": 801}
Parameters: key: A list of machine attributes to be updated on Nayax Core. Relevant attribute IDs include:
  • 541 Manufacturer Code
  • 542 Machine Model
  • 543 Serial Number
  • 544 Machine SW Version
  • 551 Type
  • 593 VMC HW Version