You are currently viewing the documentation for version

Introduction

The new generation of Handpoint APIs and SDKs are engineered to make your life simpler, happier.

Awesomely simple
Created for humans, coders, geeks, no need of dark and complex knowledge of the payment industry
Integration in less than two days, or we don't get cookies for christmas.
Superly Robust
We take care of the PCI side so you don't have to.
The Handpoint card reader encrypts all sensitive cardholder data so your app will not need to handle any sensitive data.
Working with the SDK
The Handpoint Android SDK is compatible with Android version 4.0.3 (API level 15) and up.
Latest version is compiled with java 1.7.0_25

1. Download the SDK.
2. Import the SDK to your project.
3. Follow the getting started guide, to get you up and running or dive into the documentation.

On dev.handpoint.com you can find quick start guides for Android Studio, Intellij and Eclipse as well as getting started guides with a development kit or the simulator!
If you have any questions, do not hesitate to contact us.

version 3.3.0

Simulator

To start building your application and test simple changes without having to use a card reader you can use the built in simulator.

Using the simulator

If you follow the Getting started guide for the hapi SDK there is a method used there which tells the SDK which device to use,

hapi.useDevice(new Device("Name", "Port", "Address", ConnectionMethod.****))

Simply set the ConnectionMethod to Simulator, i.e. ConnectionMethod.Simulator. The SDK does the rest. You don't need to search for devices when using the simulator.

hapi.useDevice(new Device("Name", "Port", "Address", ConnectionMethod.Simulator))

Controlling responses

The simulator mimics the card reader as much as possible regarding information flow from the hapi interface to your application. E.g. it will return all the transaction statuses, transaction results and receipts. Results are controlled by the 3rd and 4th numbers from the right in the amount parameter.

The 3rd number from right sets desired financial status, Authorized or Declined. Default status is Authorized.
The 4th number from right sets desired verification method, Signature or PIN. Default method is Signature.

Values

X 00 XX = Signature authorized
X 01 XX = Signature declined
X 10 XX = Pin authorized
X 11 XX = Pin declined

You can get different responses from the simulator by setting different values for the amount parameters in transactions, e.g. for Sale function:

hapi.Sale(X10XX, Currency.GBP); // amount = X 10 XX - where X represents an integer [0;9]

Replacing the 'X's with numbers then the example will result in a successful transaction where the verification method of the transaction was done through a correct PIN input.



Transactions

Sale

method Available since 3.0.0

sale

A sale initiates a payment operation to the card reader. In it's simplest form you only have to pass the amount and currency but it also accepts a device object and a map with extra parameters.

Parameters

Parameter Type Validation Notes
amount BigInteger Required Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP)
currency Currency Required Currency of the charge
map Map Optional A map including extra (optional) parameters.
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

currentTransactionStatus
Invoked while during transaction with different statuses from card reader
signatureRequired
Invoked if card verification requires signature.
endOfTransaction
Invoked when the card reader finishes processing the transaction

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Initiate a sale for 10.00 in Great British Pounds
api.sale(new BigInteger("1000"),Currency.GBP);

Reversal

method Available since 3.0.0

saleReversal

A saleReversal initiates a reversal operation for a previous sale operation to the card reader. This operation reverts (if possible) a specific sale identified with a transaction id. In it's simplest form you only have to pass the amount, currency and originalTransactionID but it also accepts a device object and a map with extra parameters. Note that transactions can only be reversed within the same day as the transaction was made.

Parameters

Parameter Type Validation Notes
amount BigInteger Required Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP)
currency Currency Required Currency of the charge
originalTransactionID String Required As received from the card reader (EFTTransactionID)
map Map Optional A map including extra (optional) parameters.
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

currentTransactionStatus
Invoked while during transaction with different statuses from card reader
signatureRequired
Invoked if card verification requires signature.
endOfTransaction
Invoked when the card reader finishes processing the transaction

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Initiate a reversal for 10.00 in Great British Pounds
api.saleReversal(new BigInteger("1000"),Currency.GBP,"1234567");

Refund

method Available since 3.0.0

refund

A refund initiates a refund operation to the card reader. This operation moves funds from your account to the cardholders credit card. In it's simplest form you only have to pass the amount and currency but it also accepts a device object and a map with extra parameters.

Parameters

Parameter Type Validation Notes
amount BigInteger Required Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP)
currency Currency Required Currency of the charge
map Map Optional A map including extra (optional) parameters.
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

currentTransactionStatus
Invoked while during transaction with different statuses from card reader
signatureRequired
Invoked if card verification requires signature.
endOfTransaction
Invoked when the card reader finishes processing the transaction

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Initiate a refund for 10.00 in Great British Pounds
api.refund(new BigInteger("1000"),Currency.GBP);

Refund reversal

method Available since 3.0.0

refundReversal

A RefundReversal initiates a reversal operation for a previous refund operation to the card reader. This operation reverts (if possible) a specific refund identified with a transaction id. In it's simplest form you only have to pass the amount, currency and originalTransactionID but it also accepts a map with extra parameters. Note that transactions can only be reversed within the same day as the transaction was made.

Parameters

Parameter Type Validation Notes
amount BigInteger Required Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP)
currency Currency Required Currency of the charge
originalTransactionID String Required As received from the card reader (EFTTransactionID)
map Map Optional A map including extra (optional) parameters.
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

currentTransactionStatus
Invoked while during transaction with different statuses from card reader
signatureRequired
Invoked if card verification requires signature.
endOfTransaction
Invoked when the card reader finishes processing the transaction

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Initiate a refund reversal for 10.00 in Great British Pounds
api.refundReversal(new BigInteger("1000"),Currency.GBP,"1234567");

Cancel transaction

method Available since 3.0.0

cancelRequest

This method attempts to cancel the current operation on device. Note that operations cannot be cancelled at certain points in the transaction process

Parameters

Parameter Type Validation Notes
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

currentTransactionStatus
Invoked while during transaction with different statuses from card reader
endOfTransaction
Invoked when the card reader finishes processing the transaction

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Attempts to cancel an operation
api.cancelRequest();

Signature result

method Available since 3.0.0

signatureResult

A signatureRequest event is invoked during transaction when signature verification is needed (f.ex when payment is done with a magstripe card). The merchant is required to ask the cardholder for signature and approve (or disapprove) the signature. signatureResult tells the card reader if the signature was approved by passing true in the method. To disapprove then false is passed.

Parameters

Parameter Type Validation Notes
accepted Boolean Required pass true if merchant accepts customer signature
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

currentTransactionStatus
Invoked while during transaction with different statuses from card reader
endOfTransaction
Invoked when the card reader finishes processing the transaction

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Approves signature automatically in signatureRequired event
@Override
public void signatureRequired(SignatureRequest signatureRequest, Device device){
	api.signatureResult(true);
}

Device management

Connect

method Available since 3.0.0

useDevice

Configures the device as the preferred device and tries to connect to it. Everytime a new connection is started the SDK will make 3 attempts to reestablish the connection. If those attempts fail, the connection is considered dead.

Parameters

Parameter Type Validation Notes
device Device Required This parameter specifies to the system which device you want to use for the operations.


Events invoked

connectionStatusChanged
Each time the card reader state changes (ex : going from Connected to Disconnected) the ConnectionStatusChanged event is called. It causes the connection manager to invoke this event with the appropriate information.

Returns

Boolean
true if the operation was successful.

Code example

//Connect to a device
Device device = new Device("CardReader7", "08:00:69:02:01:FC", "1", ConnectionMethod.BLUETOOTH);

api.useDevice(device);

Set merchant key

method Available since 3.0.0

setSharedSecret

Saves the shared secret for the card reader so operations will be accepted by it.

Parameters

Parameter Type Validation Notes
sharedSecret String Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices
device Device Required The shared secret


Events invoked

None
No events invoked.

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Sets the shared secret
api.setSharedSecret("0102030405060708091011121314151617181920212223242526272829303132");

Set parameter

method Available since 3.0.0

setParameter

Changes values of certain parameters on the card reader.

Parameters

Parameter Type Validation Notes
param DeviceParameter Required The name of the parameter to change
value String Required New value of the parameter
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Available parameters

BluetoothName
BluetoothPass
SystemTimeout
ScreenTimeout
SignatureTimeout

Events invoked

None
No events are invoked.

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Changes the bluetooth name of card reader
api.setParameter(DeviceParameter.BluetoothName, "OrangeCardReader");

Set logging level

method Available since 3.0.0

setLogLevel

Sets the log level of the hapi for both the device and the API.

Parameters

Parameter Type Validation Notes
level LogLevel Required The desired log level. Can be LogLevel.None, LogLevel.Info, LogLevel.Full, LogLevel.Debug
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

None
No events are invoked.

Returns

Boolean
true if the operation was successfully sent to device

Code example

4

Request device logs

method Available since 3.0.0

getDeviceLogs

Fetches the logs from the device and reports them to the deviceLogsReady event.

Parameters

Parameter Type Validation Notes
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

deviceLogsReady
Invoked when hapi has finished downloading logs from the card reader.

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Downloads logs from device
api.getDeviceLogs();

Update device

method Available since 3.0.0

update

The update operation checks for update to the card reader and initiates an update if needed.

Parameters

Parameter Type Validation Notes
device Device Optional This is used if you want to send the operation to a specific device. Recommended if you are using multiple devices


Events invoked

None
Information about this process should be available at the device's screen.

Returns

Boolean
true if the operation was successfully sent to device

Code example

//Check for card reader update
api.update();

List Devices (search)

method Available since 3.0.0

listDevices

Starts the search for devices to connect with the specified ConnectionMethod

Parameters

Parameter Type Validation Notes
method ConnectionMethod Required The means of connection you intend to use to talk to the device. (Bluetooth, Serial, USB, etc...)


Events invoked

deviceDiscoveryFinished
Invoked after the search is finished returning a list of the devices finished.

Code example

//Search for Bluetooth devices
api.listDevices(ConnectionMethod.BLUETOOTH);

Events subscribers

Add listener

method Available since 3.0.0 Deprecated since 3.1.1

Warning!

This method has been marked as deprecated. We strongly discourage you to use it.



addListener

Registers a listener to hapi events.

Parameters

Parameter Type Validation Notes
listener Log
Required,
Status
Required Only listeners of the type "Required" are required for the simplest integration


Returns

Boolean
true if the operation was successfully sent to device

Code example

//Register a listener for required events
this.api.addListener(this);

Remove listener

method Available since 3.0.0 Deprecated since 3.1.1

Warning!

This method has been marked as deprecated. We strongly discourage you to use it.



removeListener

Unregisters a listener to hapi events.

Parameters

Parameter Type Validation Notes
listener Log
Required,
Status
Required


Returns

Boolean
true if the operation was successfully sent to device

Code example

//unegister a listener for required events
api.removeListener(this);

Events

Device discovery finished

method Available since 3.0.0

deviceDiscoveryFinished

deviceDiscoveryFinished event gets called when a device discovery has finished and returns a list of devices.

Parameters

Parameter Type Validation Notes
device Device Required The device that is invoking the event


Subscribers Needed

addRequiredEventHandler
This listener has to be implemented (preferably during initialisation) in order to retrieve the devices information.

Code example

//Receiving a list of connectable devices
List myListOfDevices = new List();
@Override
public void DeviceDiscoveryFinished(List devices)
{
	foreach(Device device in devices){		myListOfDevices.Add(device);
	}
}

Signature required

method Available since 3.0.0

signatureRequired

signatureRequired event gets called when a card requires a signature instead of PIN entry and has two parameters, request and device.

Parameters

Parameter Type Validation Notes
request SignatureRequest Required Holds the signature request
device Device Required The device that is invoking the event


Subscribers Needed

addRequiredEventHandler
This listener has to be implemented (preferably during initialisation) in order to retrieve signature information.

Code example

@Override
public void signatureRequired(SignatureRequest signatureRequest, Device device) {
	signatureRequest.getMerchantReceipt();
	api.signatureResult(true);
}

End of transaction

method Available since 3.0.0

endOfTransaction

endOfTransaction event gets called at the end of each transaction and has two parameters, result and device.

Parameters

Parameter Type Validation Notes
result TransactionResult Required Holds the results for the transaction
device Device Required The device that is invoking the event


Subscribers Needed

addRequiredEventHandler
This listener has to be implemented (preferably during initialisation) in order to retrieve transaction information.

Code example

@Override
public void endOfTransaction(TransactionResult transactionResult, Device device) {
	Log.d(App, transactionResult.getCustomerReceipt());
}

Connection status changed

method Available since 3.0.0

connectionStatusChanged

connectionStatusChanged event gets called when the state of a card reader connection changes.

Parameters

Parameter Type Validation Notes
status ConnectionStatus Required An enum containing the status code for the connection
device Device Required The device that is invoking the event


Subscribers Needed

addStatusNotificationEventHandler
This listener has to be implemented (preferably during initialisation) in order to retrieve the different connection statuses (e.g : CONNECTED, DISCONNECTED...).

Code example

@Override
public void connectionStatusChanged(ConnectionStatus connectionStatus, Device device) {
	Log.d(App, connectionStatus.name());
}

Current transaction status

method Available since 3.0.0

currentTransactionStatus

currentTransactionStatus event gets called when when the state of an ongoing transaction changes.

Parameters

Parameter Type Validation Notes
statusInfo StatusInfo Required An enum contaning the status code for the transaction
device Device Required The device that is invoking the event


Code example

@Override
public void currentTransactionStatus(StatusInfo statusInfo, Device device) {
}

Message logged

method Available since 3.0.0

onMessageLogged

onMessageLogged event gets called for all log messages that are being logged. This is only intended for debugging.

Parameters

Parameter Type Validation Notes
logLevel LogLevel Required An enum containing the log level
message String Required A String containing the current log message


Subscribers Needed

addLogEventHandler
This listener has to be implemented (preferably during initialisation) in order to retrieve the different log messages.

Code example

@Override
public void onMessageLogged(LogLevel logLevel, String message){
	Log.d("API log", message);
}

Logs ready

method Available since 3.0.0

deviceLogsReady

DeviceLogsReady event gets called when the card reader logs requested by a call to getDeviceLogs() are ready. This Event is really useful if there has been a communication error between the card reader and the API (e.g : Bluetooth communication lost). After reconnecting, you can then fetch the card reader logs to the API.

Parameters

Parameter Type Validation Notes
logs String Required String containing the current log
device Device Required The device that is invoking the event


Subscribers Needed

addLogEventHandler
This listener has to be implemented (preferably during initialisation) in order to retrieve the card reader logs.

Code example

@Override
public void deviceLogsReady(String logs, Device device){
	Log.d("Device logs:", logs);
}

Objects

Transaction Type

enum Available since 3.0.0

TransactionType

An enum representing different types of transactions.

Possible values

UNDEFINED SALE VOID_SALE REFUND VOID_REFUND CANCEL_SALE CANCEL_REFUND

Transaction Result

object Available since 3.0.0 Deprecated since 3.2.1

Warning!

This object has been marked as deprecated. We strongly discourage you to use it.



TransactionResult

A class holding information about a transaction result.

Methods

Constructor

TransactionResult( Map transaction );

Parameter Type Validation Notes
transaction Map Required A constructor for TransactionResult

A transaction result contains: statusMessage, type, financialStatus, requestedAmount, gratuityAmount, gratuityPercentage, totalAmount, currency, transactionID, eFTTransactionID, originalEFTTransactionID, eFTTimestamp, authorisationCode, verificationMethod, cardEntryType, cardSchemeName, errorMessage, customerReference, budgetNumber, merchantReceipt and customerReceipt

Properties

Property Type Accessor Description
StatusMessage String get Gets the statusMessage from the TransactionResult
Type TransactionType get Gets the transaction type from the TransactionResult
FinStatus FinancialStatus get Gets the financial status from the TransactionResult
RequestedAmount BigInteger get Gets the requested amount from the TransactionResult
GratuityAmount BigInteger get Gets the gratuity amount from the TransactionResult
GratuityPercentage double get Gets the gratuity percentage from the TransactionResult
TotalAmount BigInteger get Gets the total amount from the TransactionResult
Currency Currency get Gets the currency from the TransactionResult
TransactionID String get Gets the device transaction id from the TransactionResult
eFTTransactionID String get Gets the device transaction id from the TransactionResult
OriginalEFTTransactionID String get Gets the original EFT transaction id from the TransactionResult
eFTTimestamp Date get Gets the time stamp from the TransactionResult
AuthorisationCode String get Gets the authorisation code from the TransactionResult
VerificationMethod VerificationMethod get Gets the verification method from the TransactionResult
CardEntryType CardEntryType get Gets the card entry type from the TransactionResult
CardSchemeName String get Gets the card scheme name from the TransactionResult
ErrorMessage String get Gets the error message from the TransactionResult
CustomerReference String get Gets the customer reference from the TransactionResult
BudgetNumber String get Gets the budget number from the TransactionResult
MerchantReceipt String get Gets the merchant receipt from the TransactionResult
CustomerReceipt String get Gets the customer receipt from the TransactionResult
DeviceStatus DeviceStatus get Gets the device status from the TransactionResult

Handpoint API (Hapi) factory

object Available since 3.0.0

HapiFactory

A factory to provide a unified entrypoint and to simplify the way to instantiate the Hapi object.

Methods

Static factory

getAsyncInterface( Events.Required requiredListener , Context context );

Parameter Type Validation Notes
requiredListener Events.Required Required A listener object to report the required events.
context Context Required The Android context in order to handle bluetooth.

Code example

//An Android Context is required to be able to handle bluetooth
public void initApi(Context context) {
	String sharedSecret = "0102030405060708091011121314151617181920212223242526272829303132";
	this.api = HapiFactory.getAsyncInterface(this, context).defaultSharedSecret(sharedSecret);
}

Connection Method

enum Available since 3.0.0 Deprecated since 3.2.1

Warning!

This enum has been marked as deprecated. We strongly discourage you to use it.



ConnectionMethod

A list of defined connection methods in the hapi.

Only BLUETOOTH is supported for android devices right now.

Possible values

USB SERIAL BLUETOOTH HTTPS WIFI ETHERNET

Code example

//Currently BLUETOOTH is the only ConnectionMethod available.
public enum ConnectionMethod {
	USB,
	SERIAL,
	BLUETOOTH,
	HTTPS,
	WIFI,
	ETHERNET
}

Device

object Available since 3.0.0

Device

An object to store the information about the device we're working with.

Methods

Constructor

Device( String name , String address , String port , ConnectionMethod connectionMethod , String sharedSecret , int timeout );

Parameter Type Validation Notes
name String Required A name to identify the device
address String Required The address of the device you wish to connect to. E.g.: "08:00:69:02:01:FC" for bluetooth or "192.168.1.105" for ethernet.
port String Required The port to connect to.
connectionMethod ConnectionMethod Required Enumerated type to specify the type of connection with the device. E.g: Bluetooth, Serial, etc...
sharedSecret String Optional This is used if you want this specific device to use the specified sharedSecret instead of the default one proviced in the initialization.
timeout int Optional The amount of miliseconds to consider the connection has timed out. If not set, the default timeout is 15 seconds.

Properties

Property Type Accessor Description
Id String get An unique identifier of the device.

Code example

//Create and init a new Device
Device dev = new Device("CardReader7", "08:00:69:02:01:FC", "1", ConnectionMethod.BLUETOOTH);

Connection Status

enum Available since 3.0.0

ConnectionStatus

A list of statuses given to a connection

Possible values

Connected Connecting Disconnected Disconnecting NotConfigured

Signature Request

object Available since 3.0.0 Deprecated since 3.2.1

Warning!

This object has been marked as deprecated. We strongly discourage you to use it.



SignatureRequest

A class containing information about a signature request/signature verification.

Methods

Constructor

SignatureRequest( Map request );

Parameter Type Validation Notes
request Map Required map containing all information about the request

Properties

Property Type Accessor Description
Timeout int get int the value of the timeout in seconds.
MerchantReceipt String get String the merchant receipt as html.

Currency

enum Available since 3.0.0

Currency

An enum of most currencies in the world.

Contains the ISO name, ISO number and the name of the currency. Additionally contains information about how many decimals the currency uses.

Possible values

AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYR BZD CAD CDF CHF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EEK EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LTL LVL LYD MAD MDL MKD MMK MNT MOP MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SRD STD SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD UZS VEF VND VUV WST XAF XCD XOF XPF YER ZAR ZMK ZWL

Device Parameter

enum Available since 3.0.0

DeviceParameter

An enum describing all the available commands to send to a device.

When used a legal value is expected with the command

Possible values

BluetoothName BluetoothPass SystemTimeout ScreenTimeout SignatureTimeout

Device Status

object Available since 3.0.0 Deprecated since 3.2.1

Warning!

This object has been marked as deprecated. We strongly discourage you to use it.



DeviceStatus

A class that holds the device status.

Methods

Constructor

DeviceStatus( Map status );

Parameter Type Validation Notes
status Map Required map containing all information about the device

Properties

Property Type Accessor Description
SerialNumber String get Gets the serial number of the device
BatteryStatus String get Gets the battery status in percentages of a device
BatterymV String get Gets the battery milli volts of a device
BatteryCharging String get Gets the battery charging status of a device
ExternalPower String get Gets the status of an external power of a device
ApplicationName String get Gets the application name used on a device
ApplicationVersion String get Gets the application version number used on a device

Financial Status

enum Available since 3.0.0

FinancialStatus

An enum representing different statuses of a finalized transaction

Possible values

UNDEFINED AUTHORISED DECLINED PROCESSED FAILED CANCELLED

Status Info

enum Available since 3.0.0

StatusInfo

A class containing information about the status of the transaction.

Possible values

WaitingForCard CardInserted ApplicationSelection ApplicationConfirmation AmountValidation PinInput WaitingForCardRemoval TipInput Undefined

Log Level

enum Available since 3.0.0

LogLevel

An enum describing the different levels of logging used in the hapi and used in the device.

Possible values

None Info Full Debug

Optional Transaction Parameters

object Available since 3.0.0

OptionalParameters

A class containing optional transaction parameters now supported by the device.

Properties

Property Type Accessor Description
Budget String static Budget is only available for sale transactions.
A String representing the key for a budget number.

A budget number can be used to split up an amout over a period of months. The value has to be a String of 2 digits representing the number of months to split the transaction to.

CustomerReference String static CustomerReference is available for all transactions.
A String representing the key for a customer reference.

A customer reference can be used for an internal marking system. The value is sent as a String of a maximum 25 characters and received back when the transaction has been processed.

Verification Method

enum Available since 3.0.0

VerificationMethod

An enum representing different verification methods used in the transaction.

Possible values

UNDEFINED SIGNATURE PIN PIN_SIGNATURE FAILED NOT_REQUIRED

Status

enum Available since 3.0.0

status

A class containing information about the status of the transaction.

Possible values

WaitingForCard CardInserted ApplicationSelection ApplicationConfirmation AmountValidation PinInput WaitingForCardRemoval TipInput Undefined

Card Entry Type

enum Available since 3.0.0

CardEntryType

An enum representing different card entry types.

Possible values

UNDEFINED MSR ICC CNP