All pages
Powered by GitBook
1 of 1

Loading...

IDevice

cancelTransaction

This function cancels a transaction. A transaction can only be cancelled before a card is presented.

boolean IDevice.cancelTransaction();

Return Value: Returns true if cancelled. Otherwise, returns false.

getCapabilities

This function retrieves the capabilities of the device.

IDeviceCapabilities IDevice.getCapabilities();

Return Value: Returns IDeviceCapabilities

getConnectionInfo

This function retrieves the connection information of the device.

ConnectionInfo IDevice.getConnectionInfo();

Return Value: Returns ConnectionInfo

getConnectionState

This function retrieves the connection state of the device.

ConnectionState IDevice.getConnectionState();

Return Value: Returns CaptureType

This enum refers to the type of customer information to capture.

Enum
Description

This function allows the host to get an IDeviceConfiguration to configure the device.

Return Value: Returns IDeviceConfiguration.

This function retrieves the device control interface to the device.

Return Value: Returns IDeviceControl

This function returns an information class of the device.

Return Value: Returns DeviceInfo.

This function returns the name of the device assigned from createDevice().

String IDevice.Name();

Return Value: Returns the name of the device.

This function prompts the user to present their card and enter a PIN. A card is presented so that the device can retrieve the PAN, which is used for Format blocks requiring a PAN. The encrypted PIN block (EPB) will be returned in the event OnEvent. The data byte array may be passed to builder function PANDataBuilder.GetPANData();

For DynaFlex devices, this function starts a PIN session on the first call and shall be called again to send the PIN status to the device for completing the PIN session.

Parameter
Type
Description
Parameter
Type
Description

Return Value: Returns true if successful. Otherwise, returns false.

This function prompts the user to enter a PIN. The host must supply the PAN if the Format block selected requires a PAN. The encrypted PIN block (EPB) will be returned in the event OnEvent. The data byte array may be passed to builder function PINDataBuilder.GetPINData();

For DynaFlex devices, this function starts a PIN session on the first call and shall be called again to send the PIN status to the device for completing the PIN session.

Parameter
Type
Description

Return Value: Returns true if successful. Otherwise, returns false.

This function prompts the user to enter a signature. The response data will be returned in the event OnEvent.

Return Value: Returns true of successful. Otherwise, returns false.

This function sends the Authorization Response Code (ARPC) blob to the device. The response data will be returned in the event OnEvent. See EMV Transaction Flow for how to process an EMV transaction.

Parameter
Description

Return Value: Returns true if successful. Otherwise, returns false.

This function sends a command to a NFC Mifare Classic Tag type 2. The NFC tag must first be activated by calling startTransaction() with NFC enabled.

Parameter
Description

Return Value: Returns true if successful. Otherwise, returns false.

Command
Length
Field Value
Tag
Len
Value / Description

If unencrypted:

Tag
Len
Value / Description

If encrypted:

Tag
Len
Value / Description

Example Unencrypted Payload

Example Encrypted Payload for Fast Read

This function sends a command to an NFC Mifare DESFire Tag Type 4. The NFC tag must first be activated by calling startTransaction() with NFC enabled.

Parameter
Description

Return Value: Returns true if successful. Otherwise, returns false.

Tag
Len
Value / Description
Tag
Len
Value / Description
Tag
Len
Value / Description

This function send a user selection to the device.

Parameter
Description

Return Value: Returns true if successful. Otherwise, returns false.

This function send a user selection to the device.

Parameter
Description

Return Value: Returns true if successful. Otherwise, returns false.

This function starts a transaction. This function will automatically handle the opening and closing of a device. The transaction will be processed through multiple calls to the event OnEvent. See EMV Transaction Flow for how to process an EMV transaction.

Parameter
Description

Return Value: Returns true if the transaction started successfully. Otherwise, returns false.

This function allows the host to be notified of all events sent by the device.

Parameter
Description

Return Value: Returns true if successful.

This function allows the host to no longer receive any events sent by the device.

Parameter
Description

Return Value: Returns true if successful.

Unavailable

Capture unavailable

PhoneNumber

Capture the phone number

SocialSecurityNumber

IDeviceConfiguration IDevice.getDeviceConfiguration();
IDeviceControl IDevice.getDeviceControl();
DeviceInfo IDevice.getDeviceInfo();
boolean IDevice.requestPAN(PANRequest panRequest, PINRequest pinRequest);

Timeout

byte

Wait time in seconds.

PaymentMethods

List of PaymentMethod

Timeout

byte

Wait time in seconds.

PINMode

byte

boolean IDevice.requestPIN(PINRequest pinRequest);

Timeout

byte

Wait time in seconds.

PINMode

byte

boolean IDevice.requestSignature();
boolean IDevice.sendAuthorization(IData data);

data

Contains ARPC blob.

boolean IDevice.sendClasicNFCCommand( 
    IData data, 
    boolean lastCommand, 
    boolean encrypt);

data

Command to send to the NFC tag. For details of the command see NFC Classic commands table below or D998200383 DynaFlex Family Programmer’s Manual (COMMANDS) section NFC/Mifare Pass Through Commands

lastCommand

Determines if this is the last NFC command to complete the operation. true = This is the last command. Device will provide a single beep after receiving a successful response from the NFC tag. To send subsequent commands, the NFC tag must be activated by calling startTransaction() with NFC enabled. false = Expect more commands (Default). Either set to true or false, if the NFC tag command fails, device will provide a double beep.

encrypt

Mifare Read

11

Byte 0 – 0x30 – Read Command Byte 1 – Sector Number to Read Byte 2 – Start Block Number Byte 3 – End Block Number Byte 4 – Key Type, 0 = A, 1 = B Byte 5 to 10 = 6 Byte Key

Mifare Write

var

81

var

Tag Response Code Byte 0 = 0x00 = Success Byte 0 = 0x01 = I/O Failed Byte 0 = 0x02 Authentication Failed Byte 1 = 0x01 = Block that Failed (optional)

82

var

FC

var

NFC Data Container

/DF7A

var

/DFDF59

var

Encrypted Data Primitive to be decrypted.

/DFDF50

var

81	0100 (Tag Respons Code)
82	82036D (Encryption Control)
    FC 820369 (NFC Data Container) DF7A 820364 (NFC Data)
        031391010F55047777772E6D616774656B2E636F6DFE00. . .
                www.magtek.com
81	0100 (Tag Response code)
82	820389 (Encryption Control)
    DFDF59 820370 (Encrypted Data Primitive) 
        03679DC03B4CA607E3A7D2B52C8E9F1B5CD3D85E7368425. . .
    DFDF50 0A (Encrypted Data KSN) 
        FFFF9876543210200047
    DFDF51 01 (Encrypted Data Type) 
        80
boolean IDevice.sendDESFireNFCCommand( 
    IData data, 
    boolean lastCommand, 
    boolean encrypt);

data

Command to send to the NFC tag. See DESFire Data Sheet (MF2DLHX0). Should follow ISO 7816-4 APDU format. For details of the command see D998200383 DynaFlex Family Programmer’s Manual (COMMANDS) section NFC/Mifare Pass Through Commands_

lastCommand

Determines if this is the last NFC command to complete the operation. true = This is the last command. Device will provide a single beep after receiving a successful response from the NFC tag. To send subsequent commands, the NFC tag must be activated by calling startTransaction() with NFC enabled. false = Expect more commands (Default). Either set to true or false, if the NFC tag command fails, device will provide a double beep.

encrypt

81

02

Tag Response (SW1 SW2). See DESFire Data Sheet (MF2DLHX0). Should follow ISO 7816-4 APDU format.

FC

var

NFC Data Container

/DF7A

var

/DFDF59

var

Encrypted Data Primitive to be decrypted.

/DFDF50

var

81	0100 (Tag Respons Code)
82	82036D (Encryption Control)
    FC 820369 (NFC Data Container) 
        DF7A 820364 (NFC Data)
            031391010F55047777772E6D616774656B2E636F6DFE00. . .
                    www.magtek.com
81	0100 (Tag Response code)
82	820389 (Encryption Control)
    DFDF59 820370 (Encrypted Data Primitive) 
        03679DC03B4CA607E3A7D2B52C8E9F1B5CD3D85E7368425. . .
    DFDF50 0A (Encrypted Data KSN) 
        FFFF9876543210200047
        DFDF51 01 (Encrypted Data Type) 
                80
boolean IDevice.sendPlusNFCCommand( 
    IData data, 
    boolean lastCommand, 
    boolean encrypt);

Byte 0

Status of User Selection: 0x00 = User Selection Request completed, see Selection Result 0x01 = User Selection Request aborted, cancelled by user 0x02 = User Selection Request aborted, timeout

Byte 1

The menu item selected by the user. This is a single byte zero based binary value.

boolean IDevice.sendSelection(IData data);

Byte 0

Status of User Selection: 0x00 = User Selection Request completed, see Selection Result 0x01 = User Selection Request aborted, cancelled by user 0x02 = User Selection Request aborted, timeout

Byte 1

The menu item selected by the user. This is a single byte zero based binary value.

boolean IDevice.startTransaction(ITransaction transaction);

transaction

An interface that holds the parameters for the transaction.

boolean IDevice.subscribeAll(IEventSubscriber eventCallback);

eventCallback

Name of a class or structure that implements the IEventSubscriber Delegate interface event.

boolean IDevice.unsubscribeAll(IEventSubscriber eventCallback);

eventCallback

Name of a class or structure that implements the interface event.

ConnectionState

getDeviceConfiguration

getDeviceControl

getDeviceInfo

Name

requestPAN

PANRequest

PINRequest

requestPIN

PINRequest

requestSignature

sendAuthorization

Parameter

sendClassicNFCCommand

Parameter

NFC Classic Commands

Response Data For NFC Classic Tag

sendDESFireNFCCommand

Parameter

Response Data For NFC Mifare DESFire Tag Type 4

ECP if unencrypted

ECP if encrypted:

Example Unencrypted Payload

Example Encrypted Payload for Fast Read

sendPlusNFCCommand

Parameter for data

sendSelection

Parameter for data

startTransaction

Parameter

subscribeAll

Parameter

unsubscribeAll

Parameter

Capture the social security number

ZipCode

Capture the zip code

EmployeeID

Capture Employee ID number

BirthDate

Capture birth date in USA format

List of the PaymentMethod enumeration. MSR = For magnetic stripe cards. Contact = For EMV chip cards. Contactless = For NFC contactless cards. ManualEntry = Manually entry, no card. When set, other payment methods must not be included. Barcode = For barcode. BarcodeEncrypted = For barcode with encrypted response. AppleVAS = For Apple VAS. GoogleVAS = For Google Wallet VAS. NFC = For NFC tag.

PIN mode. Usage: 0x00 - Enter PIN 0x01 - Enter PIN Amount 0x02 - Reenter PIN Amount 0x03 - Reenter PIN 0x04 - Verify PIN For DynaFlex devices this is the User Interface Sequence: 0x01 - Present Card / Enter PIN (start session) 0x04 - Present Card / Enter PIN / Enter PIN Again (start session) On the second call to requestPAN(), send the PIN status: 0xFD - Cancel PIN Session (end session) 0xFE - PIN Entry Failed (end session) 0xFF - PIN Entry Successful (end session)

MinLength

byte

Minimum length of accepted PIN (>= 4).

MaxLength

byte

Maximum length of accepted PIN (=< 12).

Tone

byte

Tone to play when prompting for the PIN. Usage: 0x00 - No sound 0x01 - One beep 0x02 - Two beeps

Format

byte

ISO format for the PIN block.

PAN

String

First 12 digits of the Primary Account Number. Leave blank if not required by the ISO format for the PIN block.

PIN mode. Usage: 0x00 - Enter PIN 0x01 - Enter PIN Amount 0x02 - Reenter PIN Amount 0x03 - Reenter PIN 0x04 - Verify PIN For DynaFlex devices this is the User Interface Sequence: 0x00 - Enter PIN (start session) 0x02 - PIN Incorrect, Try Again (continue session) 0x03 - Enter PIN / Enter PIN Again (start session) 0x05 - Enter PIN Again (continue session) On the second call to requestPIN(), send the PIN status: 0xFD - Cancel PIN Session (end session) 0xFE - PIN Entry Failed (end session) 0xFF - PIN Entry Successful (end session)

MinLength

byte

Minimum length of accepted PIN (> 4).

MaxLength

byte

Maximum length of accepted PIN (< 12).

Tone

byte

Tone to play when prompting for the PIN. Usage: 0x00 - No sound 0x01 - One beep 0x02 - Two beeps

Format

byte

ISO format for the PIN block.

PAN

String

First 12 digits of the Primary Account Number. Leave blank if not required by the ISO format for the PIN block.

Determines if data returned is to be encrypted. true = Encrypt data false = Do not encrypt data (Default)

Byte 0 – 0xA0 – Write Command Byte 1 – Sector Number to Write Byte 2 – Start Block Number Byte 3 – End Block Number Byte 4 – Key Type 0 = A, 1 = B Byte 5 to 10 = 6 Byte Key Byte 11 to x = Variable length Byte Data (16 bytes per block)

Mifare Increment

14

Byte 0 – 0xC1 – Increment Command Byte 1 – Source Sector Number Byte 2 – Source Block number Byte 3 – Key Type 0 = A, 1 = B Byte 4 to 9 = 6 Byte Key Byte 10 to 13 = 4 Byte Operand

Mifare Decrement

14

Byte 0 – 0xC0 – Decrement Command Byte 1 – Source Sector Number Byte 2 – Source Block number Byte 3 – Key Type 0 = A, 1 = B Byte 4 to 9 = 6 Byte Key Byte 10 to 13 = 4 Byte Operand

Mifare Restore

10

Byte 0 – 0xC2 – Restore Command Byte 1 – Source Sector Number Byte 2 – Source Block number Byte 3 – Key Type 0 = A, 1 = B Byte 4 to 9 = 6 Byte Key

Mifare Transfer

10

Byte 0 – 0xB0 – Write the value from the Transfer Buffer into destination block number Byte 1 – Destination Sector Number Byte 2 – Destination Block number Byte 3 – Key Type 0 = A, 1 = B Byte 4 to 9 = 6 Byte Key

Encryption Control Payload

NFC Data

Encrypted Data KSN

/DFDF51

01

Encrypted Data Encryption Type

Determines if data returned is to be encrypted. true = Encrypt data false = Do not encrypt data (Default)

Β· SW1 and SW2 of R-APDU

If card is not able to respond: SW1 = 0x64, SW2 = 0x00

Tag

Len

Value / Description

---

---

---

821

var

Encryption Control Payload tag data.

Β· Data of R-APDU**(see tables below)**

NFC Data

Encrypted Data KSN

/DFDF51

01

Encrypted Data Encryption Type