Skip to main content
Version: iOS SDK 4.0.1

Objects

HeftManager

HeftManager Object

The HeftManager is used for discovering and connecting to devices as well as creating a HeftClient object for the appropriate payment terminal. The manager reports messages to the HeftDiscoveryDelegate protocol during the discovery process. Starting the manager is the first thing to be done after loading up an UIView which enables the user to search for and connect to bluetooth terminals. When starting the manager an object (usually the UIViewController itself) is passed as the HeftDiscoveryDelegate delegate to report to.

Properties

PropertyDescription
devicesCopy
NSArray
DEPRECATED_ATTRIBUTE: Array which contains the discovered payment terminals.
connectedCardReaders
NSArray
Array which contains the discovered payment terminals.
delegate
NSObject<HeftDiscoveryDelegate>
Key for value in mpedInfo.
version
NSString
Current HeftManager version.

Code example

// Create a manager on view load
- (void)viewDidLoad{
[super viewDidLoad];
HeftManager* manager = [HeftManager sharedManager];
manager.delegate = self;
[manager resetDevices]; // Clean out the payment terminal list
}

Methods

Start Discovery

  • (void)startDiscovery;

Shared Manager

  • (HeftManager *)sharedManager;

Client for device (NSString)

  • (void)clientForDevice:(HeftRemoteDevice *)device sharedSecret:(NSString *)sharedSecret delegate:(NSObject HeftStatusReportDelegate *)delegate;

HeftClient

HeftClient Object

High level interface for the API. HeftClient handles the communication between your application and the payment terminal. The HeftClient object also stores information about the payment terminal in the mpedInfo dictionary. Device Log operations are also implemented in HeftClient. To create a new HeftClient object the clientForDevice method is called from an instance of the HeftManager. Transaction and log requests (and the acceptSignature response) are done by calling HeftClient methods with the relevant input. The library reports the status of the requests by calling delegates of the HeftStatusReportDelegate protocol.

Properties

PropertyDescription
sharedSecret
NSString
The shared secret is a unique authentication key provided by Handpoint for each merchant.
mpedInfo
NSDictionary
Dictionary with payment terminal details, obtained from the device on interface creation.
isTransactionResultPending
BOOL
Indicates whether a transaction result is pending on the payment terminal.

Note: A pending transaction result is retained by the payment terminal if a disconnect occurs between the terminal and your application before the transaction result can be delivered during a SALE, REFUND or VOID operation.
kSerialNumberInfoKey
NSString Constant
Key for value in mpedInfo
kPublicKeyVersionInfoKey
NSString Constant
Key for value in mpedInfo
kEMVParamVersionInfoKey
NSString Constant
Key for value in mpedInfo
kGeneralParamInfoKey
NSString Constant
Key for value in mpedInfo
kManufacturerCodeInfoKey
NSString Constant
Key for value in mpedInfo
kModelCodeInfoKey
NSString Constant
Key for value in mpedInfo
kAppNameInfoKey
NSString Constant
Key for value in mpedInfo
kAppVersionInfoKey
NSString Constant
Key for value in mpedInfo
kXMLDetailsInfoKey
NSString Constant
Key for value in mpedInfo

Code example

//clientForDevice:sharedSecret:delegate:
//Creates a HeftClient object(connection to device)
-(void)connectToFirstCardReaderWith:(NSData*)sharedSecret;
{
//Try to connect to the first device in the devices array
[heftManager clientForDevice:[[heftManager devicesCopy] objectAtIndex:0] sharedSecret:sharedSecret delegate:self];
//Client calls the didConnect delegate function if successful
}

//....

//didConnect:
//Called when a connection to a specified device was created.
-(void)didConnect:(id<HeftClient>)client
{
// connected successfully to a device
// assigned the client to the heftClient property
heftClient = client;
}

// .....

// Do one sale later in code
[heftClient saleWithAmount:1000 currency:@"GBP" cardholder:YES];

Methods

cancel

  • (void)cancel;

saleWithAmount

  • (BOOL)saleWithAmount:(NSInteger)amount currency:(NSString*)currency cardholder:(BOOL)present;

saleWithAmount

  • (BOOL)saleWithAmount:(NSInteger)amount currency:(NSString)currency cardholder:(BOOL)present reference:(NSString)reference;

saleWithAmount

  • (BOOL)saleWithAmount:(NSInteger)amount currency:(NSString)currency cardholder:(BOOL)present reference:(NSString)reference divideBy:(NSString*)months;

refundWithAmount

  • (BOOL)refundWithAmount:(NSInteger)amount currency:(NSString*)currency cardholder:(BOOL)present;

refundWithAmount

  • (BOOL)refundWithAmount:(NSInteger)amount currency:(NSString)currency cardholder:(BOOL)present reference:(NSString)reference;

saleVoidWithAmount

  • (BOOL)saleVoidWithAmount:(NSInteger)amount currency:(NSString)currency cardholder:(BOOL)present transaction:(NSString)transaction;

refundVoidWithAmount

  • (BOOL)refundVoidWithAmount:(NSInteger)amount currency:(NSString)currency cardholder:(BOOL)present transaction:(NSString)transaction;

retrievePendingTransaction

  • (BOOL)retrievePendingTransaction;

enableScanner

  • (BOOL)enableScanner;

enableScannerWithMultiScan

  • (BOOL)enableScannerWithMultiScan:(BOOL)multiScan;

enableScannerWithMultiScan

  • (BOOL)enableScannerWithMultiScan:(BOOL)multiScan buttonMode:(BOOL)buttonMode;

enableScannerWithMultiScan

  • (BOOL)enableScannerWithMultiScan:(BOOL)multiScan buttonMode:(BOOL)buttonMode timeoutSeconds:(NSInteger)timeoutSeconds;

Disable scanner

  • (BOOL)disableScanner;

financeStartOfDay

  • (BOOL)financeStartOfDay;

financeEndOfDay

  • (BOOL)financeEndOfDay;

financeInit

  • (BOOL)financeInit;

logSetLevel

  • (BOOL)logSetLevel:(eLogLevel)level;

logReset

  • (BOOL)logReset;

logGetInfo

  • (BOOL)logGetInfo;

acceptSignature

  • (void)acceptSignature:(BOOL)flag;

getEMVConfiguration

  • (BOOL)getEMVConfiguration;

HeftRemoteDevice

HeftRemoteDevice Object

An object containing a reference to the accessory device which is passed to the HeftClient on creation.

Properties

PropertyDescription
name
NSString
Name of device
accessory
EAAccessory
The EAAccessory object
address
NSString
Address of device

HeftDiscoveryDelegate

HeftDiscoveryDelegate

Notifications sent by the SDK on various events - new available device found, connection lost, connection found, etc

Methods

didDiscoverFinished

  • (void)didDiscoverFinished;

didFindAccessoryDevice

  • (void)didFindAccessoryDevice:(HeftRemoteDevice*)newDevice;

didLostAccessoryDevice

  • (void)didLostAccessoryDevice:(HeftRemoteDevice*)oldDevice;

HeftStatusReportDelegate

HeftStatusReportDelegate Object

Notifications sent by the SDK on various events - connected to device, request signature, response on error etc.

Methods

didConnect

  • (void)didConnect:(id-HeftClient)client;

responseStatus

  • (void)responseStatus:(id-ResponseInfo)info;

responseError

  • (void)responseError:(id-ResponseInfo)info;

responseFinanceStatus

  • (void)responseFinanceStatus:(id-FinanceResponseInfo)info;

responseLogInfo

  • (void)responseLogInfo:(id-LogInfo)info;

requestSignature

  • (void)requestSignature:(NSString*)receipt;

cancelSignature

  • (void)cancelSignature;

responseRecoveredTransactionStatus

  • (void)responseRecoveredTransactionStatus:(id-FinanceResponseInfo)info;

responseScannerEvent

  • (void)responseScannerEvent:(id-ScannerEventResponseInfo)info;

responseScannerDisabled

  • (void)responseScannerDisabled:(id-ScannerDisabledResponseInfo)info;

responseEMVReport

  • (void)responseEMVReport:(NSString *)report;

ResponseInfo

ResponseInfo Object

A ResponseInfo object is passed to the ResponseStatus delegate. It contains information from the payment terminal about the status of the current transaction. There are two properties: status and xml. status is a string and xml is a dictionary. Usually status contains a descriptive enough message to know what is going, this messsage should be displayed to the yser. The xml dictionary has detailed information on the current state of the payment terminal.

Properties

PropertyDescription
statusCode
int
A numerical representation of the status.
status
Status as NSString
Status message of the financial operation.
xml
XML as NSDictionary
Details of the transaction.

FinanceResponseInfo

FinanceResponseInfo Object

A FinanceResponseInfo is passed to the responseFinanceStatus delegate at the end of a transaction. It contains all necessary information about the outcome of the transaction. FinanceResponseInfo inherits from ResponseInfo so it includes the status string and xml dictionary in addition to the authorisedAmount, transactionId and the html formatted receipts.

Properties

PropertyDescription
financialResult
NSInteger
A numerical representation of a financial status result.
EFT_FINANC_STATUS_UNDEFINED 0x00
EFT_FINANC_STATUS_TRANS_APPROVED 0x01
EFT_FINANC_STATUS_TRANS_DECLINED 0x02
EFT_FINANC_STATUS_TRANS_PROCESSED 0x03
EFT_FINANC_STATUS_TRANS_NOT_PROCESSED 0x04
EFT_FINANC_STATUS_TRANS_CANCELLED 0x05
isRestarting
BOOL
Indicates whether the card reader is about to restart or not (usually triggered after a software update is received).If a restart is imminent then you have 2 seconds to start fetching the logs (before the card reader restarts). After fetching the logs you should disconnect from the card reader and wait for it to be visible again.
authorisedAmount
NSInteger
Amount in the smallest unit of the currency - For example 1000 in case the CurrencyCode is "0826" (GBP) corresponds to 10.00 pounds.
transactionId
NSString
The id of the current transaction.
customerReceipt
NSString
Customer receipt in html format.
merchantReceipt
NSString
Merchant receipt in html format.
statusMessage
NSString
A human readable message describing the result of the transaction.
type
NSString
Type of financial operation ("SALE" is an example).
finStatus
NSString
The financial status describes the outcome of the transaction("AUTHORISED" is an example).
requestedAmount
NSString
Amount sent in the original request to the payment terminal.
gratuityAmount
NSString
The gratuity amount is an additional amount (for example a tip) added to the requested amount. This field is returned when the tipping functionality is activated on the payment terminal.

Example: a sale is started for 10.00 and the payment terminal is set to support tipping. The terminal asks the cardholder if a tip should be added for the transaction. The cardholder inputs an additional amount as a tip, lets say 1.00. The card is then charged for the requested amount, 10.00, as well as the additional gratuity amount, 1.00. The resulting charge will be for a total of 11.00.
gratuityPercentage
NSString
The gratuity percentage is used to calculate an additional amount (for example a tip) added to the requested amount. The terminal calculates the gratuity amount based on the percentage chosen by the cardholder on the payment terminal, the amount is rounded up to the closest whole number.

Example: a sale is started for 10.00 and the payment terminal is set to support tipping. The terminal asks the cardholder if a tip should be added for the transaction. The cardholder chooses a % as a tip, lets say 10%. The card is then charged for the requested amount, 10.00, as well as the additional gratuity amount, 1.00 (10%). The resulting charge will be for a total of 11.00.
totalAmount
NSString
The total amount is the amount for which the card was charged in the minor unit of the currency. It is possible for the total amount to be different from the requested amount if a tip is added or the transaction is partially approved (US acquirers only).
currency
NSString
The currency used for the transaction.
eFTTransactionID
NSString
The EFT (electronic funds transfer) transaction id is a unique GUID assigned to the transaction. This id is used as a parameter for the sale or refund reversal function in case the transaction needs to be reversed.
originalEFTTransactionID
NSString
This field is only returned in a reversal or refund transaction and references the GUID of the original transaction being refunded or reversed.
eFTTimestamp
NSString
The eFTTimestamp is the time at which the transaction was processed.
authorisationCode
NSString
This is the approval code returned by the payment processor when a transaction is approved.
verificationMethod
NSString
Cardholder verification method, for example "PIN".
cardEntryType
NSString
Method used by the terminal to read the card.
cardSchemeName
NSString
A string representing different card brands (VISA, Mastercard, etc...)
errorMessage
NSString
Detailed reason for the transaction error.
customerReference
NSString
If a customer reference was added, as an optional parameter, when the transaction was started. It is received here, unaltered. The customer reference can be used at your will for tracking of transactions.
budgetNumber
NSString
If a budget number was added, as an optional parameter, when the transaction was started. It is received here, unaltered. The budget number can be used to split payments over a period of months.
recoveredTransaction
BOOL
This flag is true if the transaction result retrieved is from a previous transaction which failed to get sent from the payment terminal to your application, false otherwise. In case the communication between your application and the terminal breaks down, the terminal will attempt to send the result of the previous transaction as an immediate reply when the next transaction is started. If this happens, the transaction is flagged as a "RecoveredTransaction".
cardTypeId
NSString
DEPRECATED - The card type id is an identifier inside the Handpoint gateway which represents what kind of card was used. "U015" for an example represents SAS Airline-Systems in our systems.
chipTransactionReport
NSString
If present, a full report of the card EMV parameters.
deviceStatus
NSString
Gets the device status.
dueAmount
NSString
If there's still a part of the amount to be paid, in case of a partial approval (US acquirers only).
balance
NSString
The balance of the cardholder's card, if the bank/acquirer supports it.
CardToken
NSString
Token representing the PAN of the card.

ScannerEventResponseInfo

ScannerEventResponseInfo Object

A ScannerEventResponseInfo is passed to the responseScannerEvent delegate when a scan is detected. ScannerEventResponseInfo inherits from ResponseInfo so it includes the status string and xml dictionary in addition to the scanCode string.

Properties

PropertyDescription
statusCode
int
A numerical representation of the status.
status
Status as NSString
Financial transaction status message.
xml
XML as NSDictionary
Feedback with xml details about transaction from the card reader.
scanCode
NSString
The code that was scanned.

ScannerDisabledResponseInfo

ScannerDisabledResponseInfo Object

This object contains information about the scanner operation.

Properties

PropertyDescription
statusCode
int
A numerical representation of the status.
status
Status as NSString
Financial transaction status.
xml
XML as NSDictionary
XML details from the payment terminal.

LogInfo

LogInfo Object

A LogInfo object is passed to the ResponseLogInfo delegate when logs have been downloaded from the payment terminal.

Properties

PropertyDescription
statusCode
int
A numerical representation of the status.
status
Status as NSString
Financial transaction status.
xml
XML as NSDictionary
XML details from the payment terminal.
log
NSString
String containing the logging information.

eLogLevel

eLogLevel Enum

An enum describing the different levels of logging used in the SDK and in the payment terminal.

Possible values

eLogNone eLogError eLogInfo eLogFull eLogDebug

Transaction Details

XML as NSDictionary Object

The contents of the xml property depend on which type of operation the payment terminal is responding to. Listed below are all possible keys in the dictionary. Note that not all fields are included all the time.

StatusMessage

The status of the transaction, for example "Waiting for pin".


TransactionType

The type of transaction performed: UNDEFINED SALE VOID_SALE REFUND VOID_REFUND REVERSAL, TOKENIZE_CARD SALE_AND_TOKENIZE_CARD


FinancialStatus

The result of the transaction: UNDEFINED AUTHORISED DECLINED PROCESSED FAILED CANCELLED PARTIAL_APPROVA


Description of the different financial statuses:

ParameterNotes
UNDEFINED
Any Financial Status other than the below mentioned financial statuses will be UNDEFINED. UNDEFINED means that the SDK couldn't get a response from the Gateway. An automatic cancellation service will try to cancel the transaction in case it was approved.
AUTHORISED
The transaction (Sale, Refund,...) has been authorised. Consider this value as "successful".
DECLINED
The transaction has been declined by the acquirer or issuer.
PROCESSED
The update operation was successful.
FAILED
Status generated due to a network error, a card which can not be read etc. As a general rule, errors are mapped to FAILED.
CANCELLED
The transaction has been cancelled. For example if the stopCurrentTransaction operation has been used or the cancel button on the terminal has been pressed.
PARTIAL_APPROVAL
A partial approval is the ability to partially authorize a transaction if the cardholder does not have the funds to cover the entire cost on their card. The merchant can obtain the remainder of the purchase amount in another form of payment. PARTIAL_APPROVAL is only applicable to the United States market.

RequestedAmount

The requested amount is the transaction amount sent to the terminal.


GratuityAmount

The gratuity amount entered by the cardholder, if any.


GratuityPercentage

The gratuity amount, as a percentage of the requested amount.


TotalAmount

The total of the gratuity and requested amount.


TransactionID

The transaction number used for this transaction, as maintained by the Eft Client.


EFTTransactionID

The EFT reference, given by the system, to make the transaction unique.


OriginalEFTTransactionID

The original EFT reference, given by the POS, as part of a VOID_SALE or a VOID_REFUND transaction.


EFTTimestamp

The date and time of the transaction, in ISO format (YYYYMMDDHHmmSS).


AuthorisationCode

The transaction authorization code, as given by the system.


CVM

The Cardholder Verfication Method: UNDEFINED, SIGNATURE, PIN, PIN_SIGNATURE, FAILED, NOT_REQUIRED


CardEntryType

The card data acquisition type: UNDEFINED, MSR, ICC, CNP


CardSchemeName

The card brand : MasterCard, Visa, Maestro, American Express, Discover, JCB, Diners, UnionPay


CardTypeId

DEPRECATED - The ID of the Card Type.


SerialNumber

The serial number of the payment terminal.


BatteryStatus

A number, followed by the % sign, which indicates the current charge level of the battery.


BatterymV

An integer, which represent the battery charge, in mV.


BatteryCharging

Indicates whether the battery is charging, or not. Values are true or false.


ExternalPower

Indicates whether the PED is connected to an external power source (e.g. a AC adapter). Values are true or false.


ApplicationName

The name of the application running on the payment terminal.


ApplicationVersion

A version string of the form major.minor.build”(e.g. 1.2.118).


ErrorMessage

Description of the error, if any.


RecoveredTransaction

Indicates that the transaction result is a recovered transaction. The key is only included if value is true.


CmdIds

card reader Status messages Value List

Status messages received from the payment terminal:

Possible values

EFT_PP_STATUS_SUCCESS
EFT_PP_STATUS_INVALID_DATA
EFT_PP_STATUS_PROCESSING_ERROR
EFT_PP_STATUS_COMMAND_NOT_ALLOWED
EFT_PP_STATUS_NOT_INITIALISED
EFT_PP_STATUS_CONNECT_TIMEOUT
EFT_PP_STATUS_CONNECT_ERROR
EFT_PP_STATUS_SENDING_ERROR
EFT_PP_STATUS_RECEIVING_ERROR
EFT_PP_STATUS_NO_DATA_AVAILABLE
EFT_PP_STATUS_TRANS_NOT_ALLOWED
EFT_PP_STATUS_UNSUPPORTED_CURRENCY
EFT_PP_STATUS_NO_HOST_AVAILABLE
EFT_PP_STATUS_CARD_READER_ERROR
EFT_PP_STATUS_CARD_READING_FAILED
EFT_PP_STATUS_INVALID_CARD
EFT_PP_STATUS_INPUT_TIMEOUT
EFT_PP_STATUS_USER_CANCELLED
EFT_PP_STATUS_INVALID_SIGNATURE
EFT_PP_STATUS_WAITING_CARD
EFT_PP_STATUS_CARD_INSERTED
EFT_PP_STATUS_APPLICATION_SELECTION
EFT_PP_STATUS_APPLICATION_CONFIRMATION
EFT_PP_STATUS_AMOUNT_VALIDATION
EFT_PP_STATUS_PIN_INPUT
EFT_PP_STATUS_MANUAL_CARD_INPUT
EFT_PP_STATUS_WAITING_CARD_REMOVAL
EFT_PP_STATUS_TIP_INPUT
EFT_PP_STATUS_SHARED_SECRET_INVALID
EFT_PP_STATUS_SHARED_SECRET_AUTH
EFT_PP_STATUS_WAITING_SIGNATURE
EFT_PP_STATUS_CONNECTING
EFT_PP_STATUS_SENDING
EFT_PP_STATUS_RECEIVEING
EFT_PP_STATUS_DISCONNECTING
EFT_PP_STATUS_PIN_INPUT_COMPLETED
EFT_PP_STATUS_POS_CANCELLED
EFT_PP_STATUS_REQUEST_INVALID
EFT_PP_STATUS_CARD_CANCELLED
EFT_PP_STATUS_CARD_BLOCKED
EFT_PP_STATUS_REQUEST_AUTH_TIMEOUT
EFT_PP_STATUS_REQUEST_PAYMENT_TIMEOUT
EFT_PP_STATUS_RESPONSE_AUTH_TIMEOUT
EFT_PP_STATUS_RESPONSE_PAYMENT_TIMEOUT
EFT_PP_STATUS_ICC_CARD_SWIPED
EFT_PP_STATUS_REMOVE_CARD
EFT_PP_STATUS_SCANNER_IS_NOT_SUPPORTED
EFT_PP_STATUS_SCANNER_EVENT
EFT_PP_STATUS_BATTERY_TOO_LOW
EFT_PP_STATUS_ACCOUNT_TYPE_SELECTION
EFT_PP_STATUS_BT_IS_NOT_SUPPORTED
EFT_PP_STATUS_PAYMENT_CODE_SELECTION
EFT_PP_STATUS_PARTIAL_APPROVAL
EFT_PP_STATUS_AMOUNT_DUE_VALIDATION
EFT_PP_STATUS_INVALID_URL
EFT_PP_STATUS_WAITING_CUSTOMER_RECEIPT
EFT_PP_STATUS_PRINTING_MERCHANT_RECEIPT
EFT_PP_STATUS_PRINTING_CUSTOMER_RECEIPT
EFT_PP_STATUS_WAITING_HOST_MSG_TO_HOST
EFT_PP_STATUS_WAITING_HOST_MSG_RESP
EFT_PP_STATUS_INITIALISATION_COMPLETE

Status strings

Status as NSString Value List

An NSString containing the status message - can be one of the following:

Possible values

Success
Invalid data
Processing error
Not allowed
Not initialized
Connect timeout
Connect error
Sending error
Receiveing error
No data available
Transaction not allowed
Unsupported currency
No host available
Card reader error
Card reading failed
Invalid card
Input timeout
User cancelled
Invalid signature
Waiting card
Card inserted
Application selection
Application confirmation
Amount validation
PIN input
Manual card input
Waiting card removal
Tip input
Shared secret invalid
Connecting
Sending
Receiving
Disconnecting
PIN entry completed
Merchant cancelled the transaction
Request invalid
Card cancelled the transaction
Blocked card
Request for authorisation timed out
Request for payment timed out
Response to authorisation request timed out
Response to payment request timed out
Please insert card in chip reader
Remove the card from the reader
This device does not have a scanner
Scanner is not supported
Scanner event

Process details

The following table contains result codes that can occur in the COMMAND response STATUS field (see section 1.3 above).

In addition the following table contains the text information presented in the StatusMessage field that is part of the FinancialTransactionResponse Xml response object.

All values are in hex in the following table.

Status IDValueStatusMessageDetails
EFT_SUCCESS0001One of the following: "" (an empty string) "AUTH CODE #" "REFUND ACCEPTED" "REVERSAL ACCEPTED"Operation completed successfully. No further actions required.
EFT_INVALID_DATA0002"Invalid data"Invalid COMMAND request object, from the POS App, at the start of an operation. Please retry the operation. If the issue persists please contact technical support and provide card reader logs.
EFT_PROCESSING_ERROR0003"Processing error"An unexpected error occurred during processing. Please retry the operation. If the issue persists please contact technical support and provide card reader logs.
EFT_COMMAND_NOT_ALLOWED0004"Command not allowed"The card reader is currently busy processing another command. Please retry the operation once the current operation has completed.
EFT_NOT_INITIALISED0005"Device is not initialized"The current operation can’t be completed because there is a pending software update that must be applied before processing can continue. Please retry the operation after the card reader has restarted itself.
EFT_CONNECT_TIMEOUT0006"Connection time out detected"The back end connection timed out during an update. Please retry the operation. If the issue persists please contact technical support and provide card reader logs.
EFT_CONNECT_ERROR0007"Connection error"It was not possible to establish a connection to the back end system during an update operation. Please retry the operation. If the issue persists please contact technical support and provide card reader logs.
EFT_SENDING_ERROR0008"Send error"A failure was detected during communication with the back end system. If a SALE or a REFUND transaction was in progress when this occurred then you MUST contact technical support and verify whether the transaction went through or not. If you fail to do so then you may be liable for any costs incurred due to any double charges. Note: You may be asked to provide the card reader logs. Once verified please retry the operation.
EFT_RECEIVING_ERROR0009"Receiving error"A failure was detected during communication with the back end system. If a SALE or a REFUND transaction was in progress when this occurred then you MUST contact technical support and verify whether the transaction went through or not. If you fail to do so then you may be liable for any costs incurred due to any double charges. Note: You may be asked to provide the card reader logs. Once verified please retry the operation.
EFT_NO_DATA_AVAILABLE000A"No data available"The POS App is trying to fetch the card reader log file but there is no data stored in the log file. If logs are required then please set the log level to an appropriate value and retry the operation.
EFT_TRANS_NOT_ALLOWED000B"Transaction not allowed"Currently not used
EFT_UNSUPPORTED_CURRENCY000C"Currency not supported"A currency has been selected that the card reader has not been configured for. Please select the correct currency and retry the operation. Alternatively, please contact technical support and ask for the specific currency to be supported.
EFT_NO_HOST_AVAILABLE000D"No host configuration found"An update was initiated but the card reader could not find any host information for the back end system, even though it otherwise contains valid configuration. This is indicative of an invalid hostBlock block with in the HostList block in this device configuration, which was placed on the card reader during a previous update. Please contact technical support and provide card reader logs and ask for a replacement device. The card reader will be unable to update itself and must be replaced.
EFT_CARD_READER_ERROR000E"Card reader error"Error detected in the chip reader or the magnetic stripe reader. Please retry the operation. If the issue persists please contact technical support and provide them with the card reader logs as well as asking for a replacement reader.
EFT_CARD_READING_FAILED000F"Failed to read card data"The card reader could not read any data from the card. Please retry the operation. If the issue persists the card may be faulty, please try another card. If the issue still persists the card reader may require replacement, please contact technical support.
EFT_INVALID_CARD0010"INVALID CARD"The card reader detected invalid card data. Please retry the operation. If the issue persists the card may be faulty, please try another card. If the issue still persists the card reader may require replacement, please contact technical support.
EFT_INPUT_TIMEOUT0011"Timeout waiting for user input"The card reader timed out while waiting for a user action. No further actions required.
EFT_USER_CANCELLED0012"TRANSACTION VOID" "User cancelled the transaction"The current operation was cancelled by card holder. No further actions required.
EFT_SHARED_SECRET_INVALID001D"Shared Secret invalid"The card reader believes that the POS App has an incorrect shared secret. No financial operations will be possible (e.g. SALE, REFUND). Please type the correct shared secret into the POS App or contact technical support for further assistance.
EFT_SHARED_SECRET_AUTH001E"Authenticating POS"The card reader is about to challenge the POS App for a correct shared secret. No further actions are required.
REPORT STATUS SPECIFIC
EFT_INVALID_SIGNATURE0013"TRANSACTION VOID"The merchant indicated that the signature provided by the card holder was invalid. No further actions are required.
EFT_WAITING_CARD0014"Waiting for card"The card reader is waiting for a card to be inserted into the chip reader or for a card to be swiped (only applies to card readers with external MSR). Insert or swipe a card to continue with the transaction.
EFT_CARD_INSERTED0015"Card detected"Currently not used
EFT_APPLICATION_SELECTION0016"Waiting for application selection"The card reader is waiting for the card holder to select a card application to be used for the transaction. The card holder must select an application for use (e.g. VISA, MASTERCARD, etc.) and should then press either the OK button to continue. Press the C/Cancel button to abort the transaction.
EFT_APPLICATION_CONFIRMATION0017"Waiting for application confirmation"The card reader is waiting for the card holder to confirm that the displayed card application should be used for the transaction. The card holder should press either the OK or the C/Cancel button.
EFT_AMOUNT_VALIDATION0018"Waiting for amount validation"The card reader is waiting for the card holder to confirm that the amount presented is correct. The card holder should press either the OK or the C/Cancel button.
EFT_PIN_INPUT0019"Waiting for PIN entry"The card reader is waiting for the card holder to enter his/her PIN. The card holder should enter his PIN and then press the OK button to continue. For PIN bypass press the OK button without entering any PIN digits (this will trigger signature fallback). Press the C/Cancel button to abort the transaction. Note: It is not possible to cancel this operation from the POS App.
EFT_MANUAL_CARD_INPUT001A"Waiting for manual card data"Currently not used
EFT_WAITING_CARD_REMOVAL001B"Waiting for card removal"A card was detected in the card reader at the start of a transaction, presumably left there from a previous transaction. Please remove the card and restart the operation.
EFT_TIP_INPUT001C"Waiting for gratuity"The card reader is waiting for the card holder to enter/confirm tip/gratuity information.
EFT_WAITING_SIGNATURE001F"Waiting for signature"The card reader is waiting for confirmation from the merchant that the card holder signature is valid. The merchant should press either the Accepted or Declined/Cancel in the POS App. Pressing Cancel or OK on the card reader will not have any effect.
EFT_WAITING_HOST_CONNECT0020"Connecting to host"The card reader is establishing a connection to the back end system. No further actions are required.
EFT_WAITING_HOST_SEND0021"Sending data to host"The card reader is sending data to the back end system. No further actions are required.
EFT_WAITING_HOST_RECEIVE0022"Waiting for data from host"The card reader is waiting for data from to the back end system. No further actions are required.
EFT_WAITING_HOST_DISCONNECT0023"Disconnecting from host"The card reader is disconnecting from the back end system. No further actions are required.
EFT_PIN_INPUT_COMPLETED0024"PIN entry completed"PIN entry has been completed. No further actions required.
EFT_POS_CANCELLED0025"TRANSACTION VOID"The current operation was cancelled by merchant. No further actions required.
EFT_REQUEST_INVALID0026"Request invalid"Card not allowed with this transaction type.
EFT_CARD_CANCELLED0027"TRANSACTION VOID"The chip on the card cancelled the transaction. No further actions required.
EFT_CARD_BLOCKED0028"CARD BLOCKED"
EFT_REQUEST_AUTH_TIMEOUT0029"Request for authorisation timed out"Indicates that the card reader detected a communication failure between itself and the back end system during the authorization phase. Please make sure the phone/pc has an internet connection and then retry the operation. If the problem persists then please contact technical support. Note: You may be asked to provide the card reader logs.
EFT_REQUEST_PAYMENT_TIMEOUT002A"Request for payment timed out"Indicates that the card reader detected a communication failure between itself and the back end system during the payments phase. Please make sure the phone/pc has an internet connection and then retry the operation. If the problem persists then please contact technical support. Note: You may be asked to provide the card reader logs.
EFT_RESPONSE_AUTH_TIMEOUT002B"Response to authorisation request timed out"Indicates that the card reader detected a communication failure between itself and the back end system during the authorization phase. Please make sure the phone/pc has an internet connection and then retry the operation. If the problem persists then please contact technical support. Note: You may be asked to provide the card reader logs.
EFT_RESPONSE_PAYMENT_TIMEOUT002C"Response to payment request timed out"Indicates that the card reader detected a communication failure between itself and the back end system during the payments phase. You MUST contact technical support and verify whether the transaction went through or not. If you fail to do so then you may be liable for any costs incurred due to any double charges. Note: You may be asked to provide the card reader logs. Once you have verified that the transaction did not go through then please make sure the phone/pc has an internet connection and then retry the operation.
EFT_ICC_CARD_SWIPED002D"Please insert card in chip reader"Currently not used
EFT_REMOVE_CARD002E"Remove the card from the reader"Currently not used
EFT_SCANNER_IS_NOT_SUPPORTED002F"This device does not have a scanner"Bar-code scanner hardware is not present on this card reader. No further actions are required.
EFT_SCANNER_EVENT0030""Bar-code data was just read with the bar-code scanner and returned to the POS App. No further actions are required.
EFT_BATTERY_TOO_LOW0031"Operation cancelled, the battery is too low. Please charge."An operation was started, but the battery charge level is too low to complete the operation. Please recharge the card reader.
EFT_ACCOUNT_TYPE_SELECTION0032"Waiting for account type selection"The card reader is waiting for the card holder to choose an account type for the transaction (i.e. default, credit, cheque/debit or savings).