Configuration

This page documents the configuration deltas for a SmartPOS / Axium integration compared to a standard PIN pad integration. For the shared concepts that apply to all integrations — POS registration, regular and terminal configuration updates, the 24-hour and 45-day update cadences — see the shared SDK Configuration guide.

📘

For day-to-day reference on initialisation, set properties, and connection lifecycle, the shared Configuration and Utility Methods page applies to SmartPOS unmodified — except for the differences documented below.

Initialize

Initialise the SDK using the standard initialize(Context, Parameters) method. The SmartPOS integration is enabled by passing one extra parameter at initialisation:

ParameterRequiredDescription
ParameterKeys.PasswordYesDatabase encryption password — same as any other integration.
ParameterKeys.IsSmartPosIntegrationYes (for SmartPOS)Set to TRUE to enable SmartPOS — only Axium devices will be available. Set to FALSE or omit for a standard PIN pad integration.
❗️

getAvailablePinPads() only returns devices matching the currently enabled integration. When IsSmartPosIntegration = TRUE, only Axium devices appear in the result. To switch between SmartPOS and standard PIN pad integrations, you must re-initialise the SDK with the appropriate value.

Example

val params = Parameters()
params.add(ParameterKeys.Password, "your-database-password")
params.add(ParameterKeys.IsSmartPosIntegration, ParameterValues.TRUE)

val result = ChipDnaMobile.getInstance().initialize(context, params)

Set Properties

setProperties() requires the following parameters for SmartPOS:

  • ParameterKeys.ApiKey — API Key generated from Merchant Portal → Settings → Security Keys (API-source only). This is the sole credential the Axium SmartPOS integration uses.
  • ParameterKeys.PinPadName — from getAvailablePinPads().
  • ParameterKeys.PinPadConnectionType — from getAvailablePinPads().
  • ParameterKeys.Environment — Live or Staging.

For details on each property and how to retrieve them, see the shared Configuration and Utility Methods page.

Parameters accepted but ignored

The following property is accepted by setProperties() but has no effect on a SmartPOS integration:

  • ParameterKeys.ApplicationIdentifier — TMS configuration tied to an Application Identifier does not apply to Axium devices.

If your application sets ApplicationIdentifier for non-SmartPOS code paths, you can leave the call in place — it will not raise an error — but it has no effect when SmartPOS is enabled.


Selecting a Device by Bluetooth ID

In addition to selecting a PIN pad by name (ParameterKeys.PinPadName), the SDK supports selecting one by Bluetooth identifier:

  • ParameterKeys.BluetoothDeviceId — accepted in place of PinPadName.

Use ChipDnaMobileSerializer.deserializeAvailablePinPadsWithId() to retrieve the list of AvailablePinPad objects including their Bluetooth identifier. This is useful when multiple Axium devices share a name pattern, or when you want to address a specific physical device regardless of its current Bluetooth display name.