TerminalSettings

public class TerminalSettings : CustomStringConvertible

The per terminal configuration can be done on two ways:

  • In a configuration file “TimApi.cfg”
  • With the API TerminalSettings done from the application.

TIMApi reads the configuration file when the first Terminal instance is created.

The class TerminalSettings allows the setting from Application. Each instance of the Terminal class is initialized using an own instance of TerminalSettings containing the configuration relevant for this terminal. The Terminal instances read only the configuration file section with the matching terminal identifier. Multiple terminals can be configured as long as their terminal identifier are different.

All configuration has to be done before an instance of TerminalSettings is used to create a Terminal class instance.

Defines also automatic behavior for interacting with EFT terminals. By default all automatic behaviors are enabled.

  • Create terminal settings loading the configuration from the global section in the configuration file.

    Declaration

    Swift

    public init() throws
  • Create terminal settings loading the configuration from the device specific section in the configuration file. If not found the global section is loaded instead.

    Declaration

    Swift

    public init(deviceId: String) throws
  • Create copy of terminal settings. @param settings Settings to copy

    Declaration

    Swift

    public init(settings: TerminalSettings)
  • Defines where the Log File has to be generated. Overrides the LogDir defined in GlobalSettings.

    Declaration

    Swift

    public var logDir: String
  • Terminal ID to be broadcasted in case of ConnectionMode Broadcast.

    Declaration

    Swift

    public var terminalId: String
  • Broadcast (default) or OnFixIP.

    Declaration

    Swift

    public var connectionMode: CConnectionMode
  • IP address of the EFT terminal in case of ConnectionMode OnFixIP.

    Declaration

    Swift

    public var connectionIPString: String
  • Listening Port of the EFT terminal in case of ConnectionMode OnFixIP.

    Declaration

    Swift

    public var connectionIPPort: Int
  • IP address of the ECR if listening.

    Declaration

    Swift

    public var connectionListenIPString: String
  • Listening Port of the ECR if listening.

    Declaration

    Swift

    public var connectionListenIPPort: Int
  • Interface to use for broadcasting or empty string to broadcast on all available interfaces.

    Declaration

    Swift

    public var broadcastInterface: String
  • Protocol type.

    Declaration

    Swift

    public var protocolType: CProtocolType
  • EFT connects to ECR instead of ECR connecting to EFT, which is the default way to connect.

    Declaration

    Swift

    public var connectionListen: Bool
  • Integrator identifier.

    Declaration

    Swift

    public var integratorId: String
  • Required guides. Login succeeds only if the terminal is able to provide all requested guides.

    Declaration

    Swift

    public var guides: Set<CGuides>
  • Manufacturer flags.

    Declaration

    Swift

    public var manufacturerFlags: Int
  • Automatically retrieves application information during logging in.

    Declaration

    Swift

    public var fetchBrands: Bool
  • After executing the Transaction- function the API commits the transaction automatically.

    If nil uses true/false depending on the other settings, namely:

    • If Unattended Guide is enabled: false
    • Otherwise: true

    Declaration

    Swift

    public var autoCommit: Bool?
  • Shift management is handled automatically. Required if device does not support Activate and Deactivate functions.

    Declaration

    Swift

    public var autoShiftManagement: Bool
  • Shutter management is handled automatically.

    Declaration

    Swift

    public var autoShutterManagement: Bool
  • Allow partial commit.

    Declaration

    Swift

    public var partialCommit: Bool?
  • Automatically retrieves system information during logging in.

    Declaration

    Swift

    public var autoSysInfo: Bool
  • Timeout in seconds the terminal waits for a card to be inserted before canceling an open transaction request.

    Declaration

    Swift

    public var cardInsertionTimeout: Int
  • Timeout in seconds the terminal waits for a card to be removed before requesting attendant interaction.

    Declaration

    Swift

    public var cardRemovalTimeout: Int
  • Timeout in seconds the terminal waits until the technical auto-reversal is processed, if no commit received. Timer starts with response and is reset in case client enters information in the terminal.

    Declaration

    Swift

    public var commitTimeout: Int
  • dcc

    Indicates if Dcc shall be supported.

    Declaration

    Swift

    public var dcc: Bool
  • Indicates if partial approval shall be supported.

    Declaration

    Swift

    public var partialApproval: Bool
  • Timeout in seconds the terminal waits in WaitForProceed state for an additional function until an error is returned.

    Declaration

    Swift

    public var proceedTimeout: Int
  • Allow insert card before activation.

    Declaration

    Swift

    public var allowClosedCardInsert: Bool
  • Tip is allowed for purchase transactions.

    This parameter is only used if {@link com.six.timapi.constants.Guides#GASTRO} is enabled.

    Declaration

    Swift

    public var tipAllowed: Bool
  • Enable fast notification mode.

    This parameter is only used if {@link com.six.timapi.constants.Guides#AUSTRIAN_USE_CASES} is enabled.

    Declaration

    Swift

    public var fastNtfMode: Bool
  • Timeout in seconds the terminal displays the loyalty QR code after a “StartCheckout” call before returning to its “Idle” screen. Numeric number that specifies the QRCTimeout in seconds.

    Declaration

    Swift

    public var qrcTimeout: Int
  • This timeout indicates how long a terminal shall wait in seconds for an AmtAdjustment notification from the ECR in case of a late-checkin.

    Declaration

    Swift

    public var lateCheckinTimeout: Int
  • Number of send request repetitions or 0 to disable. Default is 0. Affects these functions:

    • Commit
    • Rollback

    Declaration

    Swift

    public var requestRepetition: Int
  • Enable Keep-Alive handling. Default is true.

    Declaration

    Swift

    public var enableKeepAlive: Bool
  • Enable persistent state. Default is false.

    Declaration

    Swift

    public var persistentState: Bool
  • Returns the timeout for terminal wake-up operations.

    Wake up is only possible on terminals that support wake-up via ECR interface. The wake-up process is transparent to the user and is triggered by calling a function that needs the terminal.

    Default timeout is 20s.

    Declaration

    Swift

    public var wakeupTimeout: Int
  • Saferpay: Terminal Id.

    Declaration

    Swift

    public var saferpayTerminalId: String?
  • Saferpay: Base64 encoded user name + password.

    Declaration

    Swift

    public var saferpayCredentials: String?
  • Saferpay: Customer ID.

    Declaration

    Swift

    public var saferpayCustomerId: String?
  • Saferpay: Base URL.

    Declaration

    Swift

    public var saferpayBaseUrl: String
  • Prefer saferpay for transaction types.

    Declaration

    Swift

    public var preferOmniChannel: Set<CTransactionType>
  • Omnichannel: Key for API access.

    Declaration

    Swift

    public var omnichannelAPIKey: String?
  • Omnichannel: Secret key for API access.

    Declaration

    Swift

    public var omnichannelAPISecret: String?
  • Omnichannel: Host-URL (for example Ogone’s Direct API URL).

    Declaration

    Swift

    public var omnichannelHostURL: String?
  • Omnichannel: Timeout of Omnichannel host communication (in seconds).

    Declaration

    Swift

    public var omnichannelHostTimeout: Int { get set }
  • Timeout in seconds for SIXml request. Default is 5 minutes.

    Declaration

    Swift

    public var sixmlRequestTimeout: Int { get set }
  • How long TIM API shall wait on the terminal in case it is busy to again become idle, in seconds. Round down to the next 2-divisable number (e.g. 11s > 10s).

    Declaration

    Swift

    public var maxWaitForIdleAfterBusy: Int { get set }
  • How long TIM API shall wait listening/connecting in seconds.

    Declaration

    Swift

    public var connectTimeout: Int { get set }
  • Enabled hacks. For internal use only.

    Declaration

    Swift

    public var enabledHacks: Set<Int>
  • Custom URLSessionDelegate for validating server certificates.

    Declaration

    Swift

    public var urlSessionDelegate: URLSessionDelegate?
  • Textual representation.

    Declaration

    Swift

    public var description: String { get }