Full-Integration Implementation Guide - USCA V1.03.00 - 20240816
Full-Integration Implementation Guide - USCA V1.03.00 - 20240816
V1.03.00
20240816
The Programs (which include both the software and documentation) contain proprietary information; they are
provided under a license agreement containing restrictions on use and disclosure and are also protected by
copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or
decompile of the Programs, except to the extent required to obtain interoperability with other independently
created software or as specified by law, is prohibited.
The information contained in this document is subject to change without notice. If you find any problems in the
documentation, please report them to us in writing. This document is not warranted to be error-free. Except as
may be expressly permitted in your license agreement for these Programs, no part of these Programs may be
reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose.
Security Notice: No part of this publication may be copied, distributed, stored in a retrieval system,
translated into any human or computer language, transmitted, in any form or by any means,
without the prior written consent of PAX Technology, Inc.
PAX is a registered trademark of PAX Corporation and/or its affiliates. Other names may be trademarks of their
respective owners.
Technical Support
If you encounter a problem while installing, registering or operating this product, please make sure that you have
read the documentation. If you cannot resolve the Issue, please contact us.
Web: https://developer.pax.us
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -2-
Revision History
Date Version Author Description
2024/8/16 1.03.00 Joyce Zhao 1. Add Peripheral Device Information in Initialize command
response.
2. Add AES 192 and AES 256 DUKPT for Input Account With
EMV, Authorize Card, Get PIN Block and MAC Calculation
command.
3. Add command Printer and Printer Data Definition.
4. Add WITHDRAWAL, VWITHDRAW to CREDIT EDC.
5. Add msgTitle and returnedBinLength in Get Variable and
Set Variable list.
6. Add Control Character for Text Showing for the title of Show
Dialog.
7. Add LineItemAction to request of Show Message.
8. Add Description of AccountNumber for Get PIN Block
command.
9. Add Description of Title for Input Text command.
10. Add Description of IssuerAuthenticationData, IssuerScript1
and IssuerScript2 for Complete Online EMV command.
11. Add Custom Data, Custom MAC Information and Fallback
to Manual Entry Flag to the Request of Input Account With
EMV.
12. Remove ReportStatus to the Request of Input Account With
EMV.
13. Add Show Item command.
14. Add Invert the color style and \4,\5,\6 font size for Control
Character for Text Showing.
15. Update Android Terminal list.
16. Changed Paypass, Paywave, JSpeedy contactless
specification name in Appendix.
17. Update Android Terminal EMV Kernel Version.
2022/5/26 1.02.00 Keenan Wu 1. Update EDC Type Definition and Transaction Type
Definition.
2. Add TransType list for EDC table.
3. Update document format.
4. Add sample code for Initialize, Get Variable, Set Variable,
Input Account With EMV, Authorize Card and Get PIN Block.
5. Add screenshot for Show Message, Show Dialog, Show
Textbox and ShowMessageCenter.
6. Add AuthorizeCard Flow, CompleteOnlineEMV Flow and
GetPinblock Flow.
7. Update InputAccountWithEMV Flow.
8. Removed Q25 from Classic Terminal list.
2022/3/11 1.01.06 Jack Zhang 1. Add GetFormList command
2. Add GetVatList command
3. Add SetVarList command
4. Add RunForm command
2022/2/23 1.01.05 Jack Zhang Rename ShowThankYou to ShowMessageCenter
2021/11/18 1.01.04 Jack Zhang 1. Update the Full-Integration solution introduction
2. Modify the terminal information
2021/10/14 1.01.03 Jack Zhang 1. Add UploadFTP command
2. Add ShowThankYou command
3. Update the init response information
4. Update Android Terminal EMV Kernel version
2021/8/18 1.01.02 Jack Zhang 1. Add “KSN Flag” to Get PIN Block, AuthorizeCard, Input
AccountwithEMV.
2. Add AES DUKPT Key type to command Get PED
Information
3.Add Luhn Validation Result to support Luhn check
4. Update GetVar/SetVar parameters
5. Add Apple Pay VAS and Google Smart Tap command
6. Add terminal information by app supported
2021/6/28 1.01.01 Jack Zhang 1. Support MACCalculation command
2. Support GetPEDInformation command
3. Support IncreaseKSN command
2021/4/23 1.01.00 Jack Zhang Support TermLink Manager application
2021/3/6 1.00.01 Jack Zhang 1. Add the partial EMV flow
2. Add the Encrypted Sensitive TLV Data Format Definition
3. Add the callback flow and example
4. Add Offline Data Verification For Contactless
2020/10/15 1.00.00 Jack Zhang First version
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -2-
Contents
Preface ...................................................................................................................................................................................... 2
Contents ..................................................................................................................................................................................... I
1 Overall Description................................................................................................................................................................... 1
1.4 TermLink Manager Application (Only used in Android TermLink external calling) ........................................................2
4 Commands ............................................................................................................................................................................... 9
Description ...................................................................................................................................................................9
Request .........................................................................................................................................................................9
Response.......................................................................................................................................................................9
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -I-
Description .................................................................................................................................................................10
Request .......................................................................................................................................................................10
Response.....................................................................................................................................................................10
Description .................................................................................................................................................................12
Request .......................................................................................................................................................................12
Response.....................................................................................................................................................................13
Description .................................................................................................................................................................14
Request .......................................................................................................................................................................14
Response.....................................................................................................................................................................15
Screenshot ..................................................................................................................................................................15
Description .................................................................................................................................................................15
Request .......................................................................................................................................................................15
Response.....................................................................................................................................................................15
Request .......................................................................................................................................................................16
Response.....................................................................................................................................................................16
Description .................................................................................................................................................................16
Request .......................................................................................................................................................................16
Response.....................................................................................................................................................................17
Screenshot ..................................................................................................................................................................18
Description .................................................................................................................................................................18
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - II -
Request .......................................................................................................................................................................18
Response.....................................................................................................................................................................18
Description .................................................................................................................................................................19
Request .......................................................................................................................................................................19
Response.....................................................................................................................................................................19
Description ...............................................................................................................................................................19
Request .....................................................................................................................................................................19
Response...................................................................................................................................................................20
Description ...............................................................................................................................................................20
Request .....................................................................................................................................................................20
Response...................................................................................................................................................................20
Description ...............................................................................................................................................................20
Request .....................................................................................................................................................................20
Response...................................................................................................................................................................20
Description ...............................................................................................................................................................21
Request .....................................................................................................................................................................21
Response...................................................................................................................................................................22
Description ...............................................................................................................................................................24
Request .....................................................................................................................................................................24
Response...................................................................................................................................................................24
Description ...............................................................................................................................................................25
Request .....................................................................................................................................................................25
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - III -
Response...................................................................................................................................................................25
Description ...............................................................................................................................................................26
Request .....................................................................................................................................................................27
Response...................................................................................................................................................................27
Description ...............................................................................................................................................................27
Request .....................................................................................................................................................................27
Response...................................................................................................................................................................28
Description ...............................................................................................................................................................31
Request .....................................................................................................................................................................31
Response...................................................................................................................................................................32
Description ...............................................................................................................................................................32
Request .....................................................................................................................................................................32
Response...................................................................................................................................................................33
Description ...............................................................................................................................................................33
Request .....................................................................................................................................................................33
Response...................................................................................................................................................................33
Description ...............................................................................................................................................................33
Request .....................................................................................................................................................................33
Response...................................................................................................................................................................34
Description ...............................................................................................................................................................34
Request .....................................................................................................................................................................34
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - IV -
Response...................................................................................................................................................................37
Description ...............................................................................................................................................................43
Request .....................................................................................................................................................................44
Response...................................................................................................................................................................44
Screenshot ................................................................................................................................................................45
Description ...............................................................................................................................................................45
Request .....................................................................................................................................................................45
Response...................................................................................................................................................................46
Description ...............................................................................................................................................................46
Request .....................................................................................................................................................................46
Response...................................................................................................................................................................46
Description ...............................................................................................................................................................47
Request .....................................................................................................................................................................47
Response...................................................................................................................................................................48
Description ...............................................................................................................................................................48
Request .....................................................................................................................................................................48
Response...................................................................................................................................................................48
Description ...............................................................................................................................................................49
Request .....................................................................................................................................................................49
Response...................................................................................................................................................................49
Description ...............................................................................................................................................................49
Request .....................................................................................................................................................................49
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -V-
Response...................................................................................................................................................................49
Description ...............................................................................................................................................................50
Request .....................................................................................................................................................................50
Response...................................................................................................................................................................50
Description ...............................................................................................................................................................50
Request .....................................................................................................................................................................50
Response...................................................................................................................................................................50
Description ...............................................................................................................................................................51
Request .....................................................................................................................................................................51
Response...................................................................................................................................................................51
Screenshot ................................................................................................................................................................52
Description ...............................................................................................................................................................52
Request .....................................................................................................................................................................52
Response...................................................................................................................................................................53
Screenshot ................................................................................................................................................................53
Description ...............................................................................................................................................................54
Request .....................................................................................................................................................................54
Response...................................................................................................................................................................54
Description ...............................................................................................................................................................55
Request .....................................................................................................................................................................55
Response...................................................................................................................................................................55
4.36 SetVarList........................................................................................................................................................................55
Description ...............................................................................................................................................................55
Request .....................................................................................................................................................................55
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - VI -
Response...................................................................................................................................................................55
4.37 RunForm..........................................................................................................................................................................55
Description ...............................................................................................................................................................55
Request .....................................................................................................................................................................55
Response...................................................................................................................................................................56
Manual ........................................................................................................................................................................59
MSR ...........................................................................................................................................................................59
CC/NFC ......................................................................................................................................................................59
API .............................................................................................................................................................................80
7.2 Android BroadPOS P2PE/TermLink App External Calling (Need Install TermLink Manager Application)..................81
UI Customization .......................................................................................................................................................81
8 Appendix ................................................................................................................................................................................ 90
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - VIII -
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - IX -
1 Overall Description
1.1 Full-Integration Solution Introduction
Picture 1 Full-Integration
Note: The difference between BroadPOS P2PE and TermLink is that BroadPOS P2PE requires that the data
must be encrypted (the encryptionFlag must be entered and not zero), but TermLink can set the value
of encryptionFlag to 0(data is not encrypted).
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -1-
1.3 BroadPOS P2PE/TermLink Application Features
BroadPOS P2PE/TermLink application include Android and Classic version, currently supports
InputAccountWithEMV, AuthorizeCard, GetPINBlock, CompleteOnlineEMV and other No-EMV function
commands. With these product features, users can get PAN, PIN and other card information from swiping the
card, inserting the card, taping the card or manually typing in the card number, this helps users complete their
transaction.
TermLink Manager is an application that evokes BroadPOS P2PE/TermLink service and manages the way
app communicates with POS. The terminal will remain idle unless closed with a password. The application
includes three parts: Operation, Communication and System. In the operation, we can set the idle display with the
current communication type, set the password, and support UI customization. In Communication, we can choose
different types of communication, including Bluetooth, UART, USB, and Ethernet (the communication protocol
currently supports TCP/SSL/HTTP/HTTPS). In the system, we can get the current BroadPOS P2PE/TermLink
service version number and the device SN, and other information.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -2-
Picture 2 TermLink Manager Screen
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -3-
2 Transaction Flow
2.1 Manual Flow
StartTrans
Call InputAccountWithEMV
Manual Flag = 1
Input Account
Input CVV
No
Finish
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -4-
2.2 Swipe Flow
StartTrans
Call InputAccountWithEMV
Swipe Card
No
Customer Processing
Finish
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -5-
2.3 Contact EMV Flow
Start
Call InputAccountWithEMV
Call AuthorizeCard
Authorization
Result = 2(ARQC)
Yes
No
Call CompeletOnlineEMV
Call RemoveCard
End
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -6-
2.4 Contactless EMV Flow
Start
Call InputAccountWithEMV
Authorization
No
Result = 2(ARQC)
Yes
Online PIN
No
Flag =1
Yes
Call GetPINBlcok
Customer Processing
End
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -7-
3 Communication Type
3.1 Android BroadPOS P2PE/TermLink Application
Internal Calling Model
A customer can choose internal calling when the POSLink and BroadPOS P2PE/TermLink app are integrated on
the same terminal, BroadPOS P2PE/TermLink app only support AIDL communication with POSLink.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -8-
4 Commands
4.1 Initialize
Description
This command is used to initialize the PAX terminal. The PAX terminal will do internal test/check and initialize the
terminal for transactions. It is supported on both classic and Android terminals. Typically, this command is used to
get device information.
Request
Command Field Description
Init Null Null
Response
Command Field Description
Init App Name App name
App version App version
SN Terminal SN
Model Name Model Name.
OS Version OS Version.
MAC Address MAC address for LAN module in text.
LinesPerScreen Number of lines per screen for ShowMessage command.
CharsPerLine Number of characters per line for ShowMessage command.
WifiMac Wifi Mac address
Touchscreen Indicates whether terminal use a touchscreen
Y: Use
N: Not use
Hardware Support Bitmap Determines what hardware is supported on the device. Please
see Hardware Bitmap Definition for details.
Peripheral Device The external device information group. Please see Peripheral
Information Device Information for details.
Code Example
It should be noted that the following code is not suitable for running in the main thread.
1. Init.InitResponse initResponse = Init.init(context,commSetting);
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. -9-
1. PosLink posLink = new PosLink();
2. ManageRequest manageRequest = new ManageRequest();
3. manageRequest.TransType = manageRequest.ParseTransType("INIT");
4. posLink.ManageRequest = manageRequest;
5. ProcessTransResult result = posLink.ProcessTrans();
6. if (result.Code == ProcessTransResult.ProcessTransResultCode.OK) {
7. ManageResponse manageResponse = posLink.ManageResponse;
8. }
Request
Command Field Description
GetVariable EDC Type EDC Type
VarName The name of the variable
VarName 1 The name of the variable
VarName 2 The name of the variable
VarName 3 The name of the variable
VarName 4 The name of the variable
Response
Command Field Description
GetVariable Result Code Result Code
Result txt If local error message exists, this field is mandatory.
VarValue The value of the variable, if the value exists, this field is
mandatory.
VarValue 1 The value of the variable, if the value exists, this field is
mandatory.
VarValue 2 The value of the variable, if the value exists, this field is
mandatory.
VarValue 3 The value of the variable, if the value exists, this field is
mandatory.
VarValue 4 The value of the variable, if the value exists, this field is
mandatory.
Code Example
It should be noted that the following code is not suitable for running in the main thread.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 10 -
1. Variable.GetVariableRequest getVariableRequest = new Variable.GetVariableRequest();
2. getVariableRequest.setVariableName("param_name");
3. Variable.GetVariableResponse getVariableResponse = Variable.getVariable(context,getVariableRequest,commonSet-
ting);
Parameter Define
Parameter Name Description
contactRetryBeforeFallback The number of contact chip retries before fallback swipe
e2eeIdentityString The ID String used for Voltage E2EE Encryption
InitializationVector The initialization vector for DUKPT encryption.
When the algorithm is DUKPT DES, the length is 16.
When the algorithm is DUKPT AES, the length is 32.
If the value is empty, the initialization vector will be filled with 0
e2eeEncryptionMode The mode used to determine which voltage encryption format terminal
should use. Valid values are TEP1X, TEP2X, TEP4.
binWhitelist The string used to enable and disable BIN Whitelist
Y: Enabled
N: Disabled
quickChipMode Enable or disable quick chip mode.
Y: Enable
N: Disable
quickChipPlaceholderAmount When quickChipMode is enabled, this will be the default amount to
process the ICC if the transaction amount is set to zero.
contactlessReadBeep Enable or disable the beep when contactless read
Y: Enable
N: Disable
emvCardRemoveBeepForContactless Enable or disable EMV Card Remove Beep For Contactless
Y: Enable
N: Disable
emvCardRemoveBeep EMV Card Remove Beep
0: No Beep
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 11 -
1: One Beep
2: Continuous Beep
swipeTapPriority The response priority of Swipe or Tap for the terminals which
contactless reader near the magnetic stripe reader. In these terminals,
such as A920, A920pro, A77, A30, we might get both swipe and tap
signal when user swipe.
S: Swipe First
T: Tap First
KeyPeriod The injected E2EE key will expire after a certain period of time. This
parameter specifies the time span(days).
Scope: [1, 365]
autoShowSecuredKeyboard Auto show secured keyboard when manual input Account and CVV.
N: Never
Y: Always
A: Only manual entry
lineEncryptionMode The encryption mode for the communication between A80 and SP30.
When use BroadPOS P2PE, this parameter must be Y(enable).
N: Disabled
A: Auto
Y: Enabled
EMVContactVersion Get information about Kernel version of Contact EMV
PaywaveVersion Get information about Kernel version of VCPS
PaypassVersion Get information about Kernel version of MCL
DPASVersion Get information about Kernel version of D-PAS
ExpresspayVersion Get information about Kernel version of Expresspay
JSpeedyVersion Get information about Kernel version of JCB CL
QPBOCVersion Get information about Kernel version of QPBOC
FlashVersion Get information about Kernel version of Flash
returnedBinLength Sets the default returned BIN length of masked PAN (complies with
PCI DSS Standards). The default value is 6.
6: Return the 6 digits BIN.
8: Return the 8 digits BIN.
msgTitle The title for the show message command. The default value is
“Message”.
Request
Command Field Description
SetVariable EDC Type EDC Type
VarName The name of the variable
VarValue The value of the variable
VarName 1 The name of the variable
VarValue 1 The value of the variable
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 12 -
VarName 2 The name of the variable
VarValue 2 The value of the variable
VarName 3 The name of the variable
VarValue 3 The value of the variable
VarName 4 The name of the variable
VarValue 4 The value of the variable
Response
Command Field Description
SetVariable Result Code Response code
Response Message If local error message exists, this field is mandatory.
Code Example
It should be noted that the following code is not suitable for running in the main thread.
1. Variable.SetVariableRequest request = new Variable.SetVariableRequest();
2. request.setVariableName("param_name");
3. request.setVariableValue("param_value");
4. Variable.SetVariableResponse response = Variable.setVariable(context,request,commonSetting);
Parameter Define
Parameter Name Description
contactRetryBeforeFallback The number of contact chip retries before fallback swipe
e2eeIdentityString The ID String used for Voltage E2EE Encryption
InitializationVector The initialization vector for DUKPT encryption.
When the algorithm is DUKPT DES, the length is 16.
When the algorithm is DUKPT AES, the length is 32.
If the value is empty, the initialization vector will be filled with 0
e2eeEncryptionMode The mode used to determine which voltage encryption format terminal
should use. Valid values are TEP1X, TEP2X, TEP4.
binWhitelist The string used to enable and disable BIN Whitelist
Y: Enabled
N: Disabled
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 13 -
quickChipMode Enable or disable quick chip mode.
Y: Enable
N: Disable
quickChipPlaceholderAmount When quickChipMode is enabled, this will be the default amount to
process the ICC if the transaction amount is set to zero.
contactlessReadBeep Enable or disable the beep when contactless read
Y: Enable
N: Disable
emvCardRemoveBeepForContactless Enable or disable EMV Card Remove Beep For Contactless
Y: Enable
N: Disable
emvCardRemoveBeep EMV Card Remove Beep
0: No Beep
1: One Beep
2: Continuous Beep
swipeTapPriority The response priority of Swipe or Tap for the terminals which
contactless reader near the magnetic stripe reader. In these terminals,
such as A920, A920pro, A77, A30, we might get both swipe and tap
signal when user swipe.
S: Swipe First
T: Tap First
KeyPeriod The injected E2EE key will expire after a certain period of time. This
parameter specifies the time span(days).
Scope: [1, 365]
autoShowSecuredKeyboard Auto show secured keyboard when manual input Account and CVV.
N: Never
Y: Always
A: Only manual entry
lineEncryptionMode The encryption mode for the communication between A80 and SP30.
When use BroadPOS P2PE, this parameter must be Y(enable).
N: Disabled
A: Auto
Y: Enabled
returnedBinLength Sets the default returned BIN length of the masked PAN (complies
with PCI DSS Standards). The default value is 6.
6: Returns the first 6 digits of the BIN.
8: Returns the first 8 digits of the BIN.
msgTitle The title for the show message command. The default value is
“Message”.
Request
Command Field Description
ShowDialog Title Please refer to Control Character for Text Showing
Button name 1 The name of button1 on terminal
Button name 2 The name of button2 on terminal
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 14 -
Button name3 The name of button3 on terminal
Button name 4 The name of button4 on terminal
Timeout Timeout in 100ms for waiting text input. Valid value should be
[0, 9999]. The value of “” means waiting till user canceled or
confirmed. The value of “0” means non-blocking mode, only
valid when no button.
Continuous Screen ‘0’ default.
‘1’ indicate the terminal does not go to idle screen but wait for
the next command.
Response
Command Field Description
ShowDialog Result code Result code
Result message If local error message exists, this field is mandatory.
Button number The button number of selection.
Screenshot
Request
Command Field Description
GetSignature Null Null
Response
Command Field Description
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 15 -
GetSignature Result code Result code
Result message If local error message exists, this field is mandatory.
Signature Data According to the signature data to generate image
4.6 Printer
It is used to print the receipt refer to the data generated by POS system.
Request
Command Field Description
Printer PrintCopy Number of copies to be printed.
Default is 1.
PrintData Variable length is up to 4000.
Refer to the section of Print Data Definition for how to format the print
data.
The ASCII characters in the range from 0x40 to 0x7F is printable.
Response
Command Field Description
Printer Result code Response code
Result message If local error message exists, this field is mandatory.
Request
Command Field Description
ShowMessage Title Title, Please refer to Control Character for Text Showing
DisplayMessage The message needs to be display, it can be controlled to be
displayed in different area using different font size. Please refer to
Control Character for Text Showing
DisplayMessage2 The message needs to be display, it can be controlled to be
displayed in different area using different font size. Please refer to
Control Character for Text Showing
Topdown Text pushed in top down or bottom up.
Y: top down
N: bottom up.
Default as Y, and the value is only effective at the initial request.
TaxLine Tax line to be displayed. Conditional for models with different screen
size.
TotalLine Total line to be displayed. Conditional for models with different screen
size.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 16 -
ImageName Product image name. The image is preloaded on the terminal.
Conditional for models with different screen size and terminal
capability
ImageDescription Product name or description, Conditional for models with different
screen size and terminal capability.
LineItemAction Line item action:
0: add(default value)
1: update
2: delete
ItemIndex Use to reference to a line when added.
Response
Command Field Description
ShowMessage Result code Response code
Result message If local error message exists, this field is mandatory.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 17 -
Screenshot
Request
Command Field Description
ClearMessage Null Null
Response
Command Field Description
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 18 -
ClearMessage Result code Response code
Result message If local error message exists, this field is mandatory.
4.9 Reset
Description
“Reset” command resets the terminal screen to idle state. It is supported on both classic and Android terminals.
Request
Command Field Description
Reset Null Null
Response
Command Field Description
Reset Result code Result code
Result message If local error message exists, this field is mandatory.
Request
Command Field Description
UpdateResource ResourcePath The path of resource
FileType 0: Resource file(Default). A zip package which contains multiple files.
Terminal will replace the files according to the file names.
1: Offline RKI key file. A zip package which contains the file which used
to inject offline RKI key.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 19 -
Response
Command Field Description
UpdateResource Result code Result code
Result message If local error message exists, this field is mandatory.
4.11 Do Signature
Description
This command is used to do signature in the terminal. It is supported on both classic and Android terminals.
Request
Command Field Description
DoSignature EDCType EDC Type
HRefNum Which transaction need do signature.
This parameter may be used that upload flag is 1.
Timeout This is timeout for doing signature. The timeout unit is 100ms. The
valid value should be from 150 to 9999.
If value is null, it means no timeout and waiting for user cancelation or
confirmation.
Continuous Screen ‘0’ default.
‘1’ indicate the terminal does not go to idle screen but waiting for the
next command.
Response
Command Field Description
DoSignature Result code Result code
Result message If local error message exists, this field is mandatory.
4.12 Reboot
Description
Reboot the terminal. It is supported on both classic and Android terminals.
Request
Command Field Description
Reboot Null Null
Response
Command Field Description
Reboot Result code Result code
Result message If local error message exists, this field is mandatory.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 20 -
4.13 Get PIN Block
Description
This command is used to input PIN and calculate pin block. It is supported on both classic and Android terminals.
Request
Command Field Description
GetPINBlock AccountNumber The length of the account number must from 13 to 19.
Account Number requirements:
1.Account Number can be used after executing the
"InputAccountWithEMV" command and obtained via manual entry,
tap, or swipe of the card. The format of the Account Number can be a
masked PAN, the last 4 digits of the PAN, or the complete PAN.
2.PinBlock can be obtained by inputting the complete account
number without executing the "InputAccountWithEMV" command if
the account number is listed in the whitelist.
3.Account Number can be set to null when the value of
"PINAlgorithm" is 1.
EncryptionType 1: DES DUKPT
2: Master Session DES/TDES TPK
3: AES 128 DUKPT
4: AES 192 DUKPT
5: AES 256 DUKPT
KeySlot Key slot number, start from 1. Default to 1.
PinMinLength The value must be not less 4 and must be not more than pin max
length. Default to 4.
PinMaxLength The value must be not less pin min length and must be not more than
12. Default to 12.
PIN Bypass The value is as below, default to 0:
0: not allowed
1: allowed.
PINAlgorithm The value is as below, default to 0:
0: ISO9564_0
1: ISO9564_1
3: ISO9564_3
4: ISO9564_4 (For AES DUKPT Only)
Timeout Timeout in 100ms for waiting PIN entry. Valid value should be [0,
3000]. The value of “” or 0 means waiting till user canceled or
confirmed.
EDCType EDC Type
TransType Transaction Type
Title The title that to be displayed, default as “Amount: $0.00”.
Pinpad Type 0: Internal Pinpad. (Default)
1: External Pinpad. (A80 only, if use other device will return param
error)
2: RNIB Pinpad.
KSN Flag Indicate whether to increase KSN.
Default KSN flag is 1(Increase)
0: Not increase.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 21 -
1: Increase.
Response
Command Field Description
GetPINBlock Result code Result code
Result message If local error message exists, this field is mandatory.
PinBlock The PIN block value.
KSN The KSN value.
Pinpad Type 0: Internal Pinpad.
1: External Pinpad.
Code Example
Callback
To achieve the complete transaction process, the user should implement the following CallBack to monitor the
events in the transaction process.
1. GetPINBlock.CurrentStepCallback currentStepCallback =
2. new GetPINBlock.CurrentStepCallback() {
3. @Override
4. public void onSuccess() {
5. // Current step input completed
6. }
7. @Override
8. public void onFail(String code, String message) {
9. //The currently step failed
10. }
11. };
Code 7 GetPINBlock.CurrentStepCallback
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 22 -
1. GetPINBlock.EnterPinCallBack enterPinCallBack = new GetPINBlock.EnterPinCallBack() {
2. @Override
3. public void onAddedPinCharacter() {
4. //When a PIN char is added, this method will be called back,
5. // and you can customize the UI displayeffect for this
6. }
7. @Override
8. public void onClearPin() {
9. //When a PIN char is deleted, this method will be called back
10. }
11. };
Code 8 GetPINBlock.EnterPinCallback
If additional callback methods are needed, you can change EnterPinCallBack to EnterPinCallBackExpand.
1. GetPINBlock.GetPINBlockCallback getPINBlockCallback = new GetPINBlock.GetPINBlockCallback() {
2. @Override
3. public void onEnterPinStart() {
4. // Prompt the customer to start input PIN.
5. // You can monitor some status information bycalling handleInputPinStart.
6. GetPINBlock.getInstance().handleInputPinStart(enterPinCallBack,currentStepCallback);
7. }
8. };
Code 9 GetPINBlockCallback
1. BasePOSLinkCallback<GetPINBlock.GetPINBlockResponse> posLinkCallback =
2. new BasePOSLinkCallback<GetPINBlock.GetPINBlockResponse>() {
3. @Override
4. public void onFinish(GetPINBlock.GetPINBlockResponse getPINBlockResponse) {
5. //Run when GetPINBlock finished.
6. }
7. };
Call GetPINBlock
You can call a GetPINBlock transaction by the following methods. It should be noted that the following code is not
suitable for running in the main thread.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 23 -
1. GetPINBlock.GetPINBlockRequest getPINBlockRequest = new GetPINBlock.GetPINBlockRequest();
2. getPINBlockRequest.setAccountNumber("account_number");
3. getPINBlockRequest.setEncryptionType("1"); //1-DUKPT DES
4. getPINBlockRequest.setKeySlot("1");
5. getPINBlockRequest.setPinAlgorithm("1");
6. GetPINBlock.getPinBlock(context,getPINBlockRequest,commSetting,posLinkCallback,getPINBlockCallback);
Request
Command Field Description
ResetMSR Null Null
Response
Command Field Description
ResetMSR Result code Result code
Result message If local error message exists, this field is mandatory.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 24 -
4.15 Input Text
Description
This command is used to get text input. It is supported on both classic and Android terminals.
Request
Command Field Description
InputText Title The title that to be displayed, default as empty.
It must be defined in str_list.l. Please see Input Text Tile File in
details.
InputType Input type. Default as 0.
0 for Alpha-Numeric string.
1 for Numeric string.
2 for date in MMDDYYYY format.
3 for time in HHMMSS format.
4 for currency in XXXXXX.XX format.
5 for password format.
6 for phone number as “(xxx) xxx-xxxx”.
MINLength MIN length. Default to 0. Valid value [0, 32].
MAXLength MAX length. Default to 32. Valid value [1, 32].
DefaultValue Default input value. Valid if ”InputType” is 0 or 1.
Timeout Timeout in 100ms for waiting text input. Valid value should be [1,
9999]. The value of “” means waiting till user canceled or confirmed.
ContinuousScreen ‘0’ default.
‘1’ indicate the terminal not go to idle screen but waiting for the next
command.
Response
Command Field Description
InputText Result code Result code
Result message If local error message exists, this field is mandatory.
Text Text input by customer.
For currency input, 10000 will be returned if the customer input
$100.00 on device.
Response
Command Field Description
CheckFile Result code Result code
Result message If local error message exists, this field is mandatory.
“OK” with Response Code “000000”means file existed
Checksum The algorithm is MD5.
Request
Command Field Description
AuthorizeCard Amount Amount Information(Not include Cash Back)
CashBackAmount The cash back amount, $$$$$$CC, if the field is NULL,
and the switch on terminal turn on, terminal will prompt
dialog to enter it.
MerchantDecision Merchant decision to the current transaction. The default
value is 0.
0: default (no merchant decision)
1: force online
2: force decline
EncryptionType This field is effective only when ONLINE PIN is required
The value is as below:
1: DES DUKPT
2: Master Session DES/TDES TPK
3: AES 128 DUKPT
4: AES 192 DUKPT
5: AES 256 DUKPT
KeySlot This field is effective only when ONLINE PIN is required
PINMinLength This field is effective only when PIN is required.
The value must be not less 4 and must be not more than
pin max length. Default to 4.
PINMaxLength This field is effective only when PIN is required.
The value must be not less pin min length and must be
not more than 12. Default to 12.
PINBypass The value is as below, default to 0:
0: not allow PIN Bypass
1: bypass offline PIN automatically
2: bypass online PIN automatically
3: bypass both offline and online PINs automatically.
4: allow user to bypass both offline and online PINs
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 27 -
PINAlgorithm The value is as below, default to 0:
0: ISO9564_0
1: ISO9564_1
3: ISO9564_3
4: ISO9564_4 (For AES DUKPT Only)
EmvKernelConfigurationSelection EMV Kernel Configuration Type
Response
Command Field Description
AuthorizeCard Result code Result code
Result message If local error message exists, this field is mandatory.
AuthorizationResult Indicate the transaction result after 1st GAC:
0: transaction offline approved
1: transaction offline declined
2: transaction online authorization needed
SignatureFlag Indicate that if signature is needed
0: Signature NOT needed
1: Signature needed
PINBypassStatus 0: False
1: True
PIN Block This field is effective only when the CVM type ONLINE PIN is
applied.
The pin block value.
KSN This field is effective only when the CVM type ONLINE PIN is
applied.
The KSN value for online PIN encryption.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 28 -
EMVTLVData EMV TLV data will be returned in consecutive TLV format data
based on the Tag List filed in the request message.
CVM Cardholder Verification Method (CVM) Codes,
0 - Fail CVM processing
1 - Plaintext Offline PIN Verification
2 - Online PIN
3 - Plaintext Offline PIN and Signature
4 - Enciphered Offline PIN Verification
5 - Enciphered Offline PIN Verification and Signature
6 - Signature
7 - No CVM Required
8 - On Device CVM
Pinpad Type 0: Internal Pinpad.
1: External Pinpad.
Code Example
Callback
To achieve the complete transaction process, the user should implement the following CallBack to monitor the
events in the transaction process.
1. AuthorizeCard.EnterPinCallBack enterPinCallBack = new AuthorizeCard.EnterPinCallBack() {
2. @Override
3. public void onAddedPinCharacter() {
4. //When a PIN char is added, this method will be called back,
5. // and you can customize the UI displayeffect for this
6. }
7. @Override
8. public void onClearPin() {
9. //When a PIN char is deleted, this method will be called back
10. }
11. };
Code 13 AuthorizeCard.EnterPINCallback
If additional CallBacks are needed, regardless of whether the screen is touched, you can change
EnterPinCallBack to EnterPinCallBackExpand.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 29 -
1. AuthorizeCard.CurrentStepCallback currentStepCallback =
2. new AuthorizeCard.CurrentStepCallback() {
3. @Override
4. public void onSuccess() {
5. // Current step input completed
6. }
7. @Override
8. public void onFail(String code, String message) {
9. //The currently step failed
10. }
11. };
Code 15 AuthorizeCallback
1. BasePOSLinkCallback<AuthorizeCard.AuthorizeResponse> posLinkCallback =
2. new BasePOSLinkCallback<AuthorizeCard.AuthorizeResponse>() {
3. @Override
4. public void onFinish(AuthorizeCard.AuthorizeResponse authorizeResponse) {
5. //Run when AuthorizeCard finished.
6. }
7. };
Call AuthorizeCard
You can call a AuthorizeCard transaction by the following methods. It should be noted that the following code is
not suitable for running in the main thread.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 30 -
1. AuthorizeCard.AuthorizeRequest authorizeRequest = new AuthorizeCard.AuthorizeRequest();
2. authorizeRequest.setAmount("100");
3. authorizeRequest.setPinEncryptionType("1");
4. authorizeRequest.setKeySlot("1");
5. authorizeRequest.setTimeOut(300);
6. AuthorizeCard.authorize(context,authorizeRequest,commSetting,posLi nkCallback,authorizeCallback);
Request
Command Field Description
CompleteOnlineEMV OnlineAuthorizationResult 0: transaction approved online
1: transaction declined online
2: connect host failed
3: request partial EMV
ResponseCode Host authorization response code, tag 8A.
i.e. Contact tag 8A:
Y1: Offline approved
Y3: Unable to go online, offline approved
Z1: Offline declined
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 31 -
Z3: Unable to go online, offline declined
Other: Online approved or declined
AuthorizationCode EMV tag 89, Value generated by the authorization
authority for an approved transaction.
IssuerAuthenticationData The value is mandatory if "issuer authentication data
(TAG91)" has been returned by the host. The value is
required for this field, but the TAG and LEN are not
required.
IssuerScript 1 The value is mandatory if "issuer script (tag 71)" has been
returned by the host. The value is required for this field, but
the TAG and LEN are not required.
IssuerScript 2 The value is mandatory if "issuer script (tag 72)" has been
returned by the host. The value is required for this field, but
the TAG and LEN are not required.
Tag List EMV tag list to be returned in EMV TLV data in response
message.
Continuous Screen ‘0’ default.
‘1’ indicate the terminal does not go to idle screen but
waiting for the next command.
Response
Command Field Description
CompleteOnlineEMV Result code Result code
Result message If local error message exists, this field is mandatory.
AuthorizationResult Indicate the below transaction result after 2nd GAC:
0: transaction approved
1: transaction declined
Indicate the below transaction result for partial EMV only.
2: partial EMV approve
3: partial EMV decline
EMVTLVData EMV TLV data will be returned in consecutive TLV format data
based on the Tag List filed in the request message.
IssuerScriptResults Issuer script results, HEX format.
Request
Command Field Description
RemoveCard Message 1 Default message is “Please remove card”
Message 2 Default message is NULL
Continuous ‘0’ default.
Screen ‘1’ indicate the terminal does not go to idle screen but waiting for
the next command.
Pinpad Type 0: Internal Pinpad. (Default)
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 32 -
1: External Pinpad. (A80 only, if use other device will return param
error)
Response
Command Field Description
RemoveCard Result code Result code
Result message If local error message exists, this field is mandatory.
Pinpad Type 0: Internal Pinpad.
1: External Pinpad.
Request
Command Field Description
GetEMVTLVData TLV Type 00 for EMV contact
01 for EMV contactless
Tag List List of requested tags. All the tags are consecutive without any
separators.
Response
Command Field Description
GetEMVTLVData Result code Result code
Result message If local error message exists, this field is mandatory.
EMVTLVData If contact EMV card is read successfully, some related EMV data
will be returned in consecutive TLV format data
Request
Command Field Description
SetEMVTLVData TLVType 00 for EMV contact
01 for EMV contactless
EMVTLVData If contact EMV card is read successfully, some related EMV data
will be returned in consecutive TLV format data.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 33 -
Response
Command Field Description
SetEMVTLVData Result Code Result Code
Result message If local error message exists, this field is mandatory
Tag List List of tags which have been set successfully. All the tags are
consecutive without any separators.
Request
Command Field Description
InputAccountWithEMV EDCType EDC Type
TransType Transaction Type
Amount Amount Information(Not include Cash Back)
CashBackAmt Cash back amount information
MagneticSwipeEntryFlag Whether magnetic card swipe is allowed. Default as 0.
0 : not allowed.
1 : Internal Pinpad.
2 : External Pinpad. (A80 only, if use other device will
return param error)
3: External Pinpad first. If external pinpad is present, use
external pinpad. If not, use internal pinpad. (A80 only, if
use other device will return param error)
ManualEntryFlag Whether manual entry is allowed. Default as 0.
0 for not allowed.
1 for allowed.
ContactlessEntryFlag Whether contactless entry is allowed. Default as 0.
0 : not allowed.
1 : Internal Pinpad.
2 : External Pinpad. (A80 only, if use other device will
return param error)
3: External Pinpad first. If external pinpad is present, use
external pinpad. If not, use internal pinpad. (A80 only, if
use other device will return param error)
ContactEMVEntryFlag Whether contact EMV entry is allowed. Default as 0.
0 : not allowed.
1 : Internal Pinpad.
2 : External Pinpad. (A80 only, if use other device will
return param error)
3: External Pinpad first. If external pinpad is present, use
external pinpad. If not, use internal pinpad. (A80 only, if
use other device will return param error)
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 34 -
FallbackSwipeEntryFlag Whether fallback swipe is allowed after reading EMV card
failed. Default as 0.
0 for not allowed.
1 for allowed.
FallbackInsertEntryFlag Whether fallback Insert is allowed after reading EMV card
failed. Default as 0.
0 for not allowed.
1 for allowed.
2: Prompt: Bypass Not Allowed
ScannerFlag Whether laser scanner entry is allowed. Default as 0.
0 for not allowed.
1 for allowed.
ExpiryDatePrompt Whether expiry date needs to be prompted during manual
entry. Default as 0.
0: not need to prompt.
1: need to prompt.
2: Prompt: Bypass Not Allowed
CVVPrompt Whether Zip code need to prompt during manual entry,
Default as 0:
0: not need to prompt.
1: need to prompt.
2: Prompt: Bypass Not Allowed
ZipCodePrompt Whether Zip code need to prompt during manual entry,
Default as 0:
0: Do not prompt.
1: Prompt.
2: Prompt: Bypass Not Allowed
EncryptionFlag Data Encryption flag. Default as 0.
Padding Char This is used to indicate what value needs to pad on data
string before encryption.
0: padding 0x00;
F: padding 0xFF;
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 35 -
The default padding char is 0. Only valid when
DatEncryption Flag is 1, 2 or 3.
MIN Account Length MIN account length. Default to 10. Valid value [1, 32].
Manual Entry only
MAX Account Length MAX account length. Default to 19. Valid value [1, 32].
Manual Entry Only
EMV Kernel EMV Kernel Configuration Selection
Configuration Selection
Transaction Date Transaction Date (use terminal date by default)
Format is YYMMDD.
Transaction Time Transaction Time (use terminal time by default) format is
HHMMSS.
Currency Code Transaction Currency Code (“840” by default)
Currency Exponent Transaction Currency Exponent ("02” by default)
Merchant Category Merchant Category Code(“0001” by default)
Code
Transaction CVM Limit Configure the limit value of CVM for current transaction.
(Only for Visa VCPS and only for command Input Account
with EMV)
Tag List For EMV TRANSACTION ONLY:
EMV tag list to be returned in EMV TLV data in response
message.
Timeout Timeout in 100ms for waiting account entry. Valid value
should be [200, 9999].
Continuous Screen ‘0’ default.
‘1’ indicate the terminal does not go to idle screen but
waiting for the next command.
Fallback Insert Entry Whether fallback insert is allowed after reading
Flag contactless card failed. Default as 0.
0 for not allowed.
1 for allowed.
KSN Flag Indicate whether to increase KSN.
Default KSN flag is 1(Increase)
0: Not increase.
1: Increase.
Custom Data Custom Data: Custom data string to be encrypted, used to
define special formats for sensitive data (PAN, Track2,
etc). Use ‘|’ to separate multiple strings. Custom data
must be in hexadecimal format. Placeholder strings
should not be converted to hex.
Placeholder format:
• ${PARAMETER NAME}
• ${VARIABLE NAME, FORMAT, PADLEN}
Response
Command Field Description
InputAccountWithEMV Result Code Result Code
Result Message If local error message exists, this field is mandatory.
EntryMode 0: Manual
1: Swipe
2: Contactless
3: Laser scanner
4: Chip
5: Chip Fall Back Swipe
6: Front camera
7: Rear camera
Track1Data Track1 data or tag 56, will be encrypted if the data encryption
is enabled.
Track2Data Track2 data or tag 57 (Track 2 Equivalent Data), will be
encrypted if the data encryption is enabled.
Track3Data Track3 data, will be encrypted if the data encryption is enabled.
PAN Account Number or tag 5A (PAN), will be encrypted if the data
encryption is enabled.
MaskedPAN First 6 and last 4
Example: 5454545****5454
BarcodeType Barcode Type
‘0’- QRCode
‘1’ – 2D-barcode
‘2’ – 3Dbarcode
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 37 -
Encryption Encryption Transmission Block.
Transmission Block Only valid when Encryption Flag as 4(Voltage E2EE).
Contactless For CONTACTLESS TRANSACTION ONLY:
Transaction Path The first character represents the card type
10 - contactless MCL (MSD)
11 - contactless MCL (MCHIP)
20 - contactless VCPS (MSD)
21 - contactless VCPS (QVSDC)
22 - contactless VCPS (CONTACT)
23 - contactless VCPS (WAVE2)
24 - contactless VCPS (MSD_CVN17)
25 - contactless VCPS (MSD_LEGACY)
26 - contactless VCPS (VSDC)
30 - contactless DPAS (MSD)
31 – contactless DPAS (EMV)
32 – contactless DPAS (ZIP)
40 - contactless EXPRESSPAY (MSD)
41 - contactless EXPRESSPAY (EMV)
50 - contactless JCB (MSD)
51 - contactless JCB (EMV)
52 - contactless JCB (LEGACY)
53 - contactless JCB (WAVE2)
60 - contactless qPBOC (QVSDC)
61 - contactless qPBOC (VSDC)
70 - contactless Flash (EMV)
AuthorizationResult For CONTACTLESS TRANSACTION ONLY:
Indicate the transaction result:
0: transaction offline approved
1: transaction offline declined
2: transaction online authorization needed
SignatureFlag For CONTACTLESS TRANSACTION ONLY:
Indicate that if signature is needed
0: Signature is NOT needed
1: Signature is needed
OnlinePINFlag For CONTACTLESS TRANSACTION ONLY:
Indicate that if online PIN is needed
0: Online PIN is NOT needed
1: Online PIN is needed
EMVTLVData For EMV TRANSACTIONs ONLY:
EMV TLV data will be returned in consecutive TLV format data
based on the Tag List filed in the request message.
Encrypted EMV Encrypted field 40 EMV TLV Data.
TLV Data
Encrypted Sensitive Encrypted Sensitive data.
TLV Data Please see the definition format of Encrypted Sensitive TLV
Data.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 38 -
CVV Code The CVV code, will be encrypted if the data encryption is
enabled.
Zip Code The zip code
CVM Cardholder Verification Method (CVM) Codes,
0 - Fail CVM processing
1 - Plaintext Offline PIN Verification
2 - Online PIN
3 - Plaintext Offline PIN and Signature
4 - Enciphered Offline PIN Verification
5 - Enciphered Offline PIN Verification and Signature
6 - Signature
7 - No CVM Required
8 - On Device CVM
VASCODE VAS response code. refer to section VAS Code Definition
VASDATA Tokens returned from card. Separated by <RS>. Please see
note.
NDEFDATA Google Smart Tap response data in format of NDEF, the
message will be encoded with Base64.
Pinpad Type 0: Internal Pinpad
1: External Pinpad
Luhn Validation If terminal does not support, this field is empty. Otherwise, it
Result will use following value.
0: Not performed
1: Passed
2: Failed
Please note:
1. Not all card support Luhn. So please make sure the card
support Luhn before you use this field. If the card does not
support Luhn, this value is invalid.
2. Terminal will verify Luhn only when entry mode is Manual or
Swipe.
Code Example
Callback
To achieve the complete transaction process, the user should implement the following CallBack to monitor the
events in the transaction process.
1. BasePOSLinkCallback<InputAccount.InputAccountResponse> posLinkCallback =
2. new BasePOSLinkCallback<InputAccount.InputAccountResponse>() {
3. @Override
4. public void onFinish(InputAccount.InputAccountResponse inputAccountResponse) {
5. //Run when InputAccountWithEMV finished.
6. }
7. };
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 39 -
1. InputAccount.CurrentStepCallback currentStepCallback =
2. new InputAccount.CurrentStepCallback() {
3. @Override
4. public void onSuccess() {
5. // Current step input completed
6. }
7. @Override
8. public void onFail(String code, String message) {
9. //The currently entered information does not meet the specifications,
10. // for example, the length of the CVV is incorrect.
11. }
12. };
1. InputAccount.CardEventListener cardEventListener =
2. new InputAccount.CardEventListener() {
3. @Override
4. public void onEvent(String event) {
5. //Used to receive the status of card processing,
6. //Such as contactless light, FALLBACK, etc.
7. //see ${com.pax.poslink.constant.CardEvent}
8. }
9. };
Code 21 CardEventListener
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 40 -
1. InputAccount.InputAreaParams areaParams = new InputAccount.InputAreaParams();
2. areaParams.height = 100;
3. areaParams.width = 500;
4. areaParams.offsetX = 100;
5. areaParams.offsetY = 300;
6. areaParams.hint = "Please Input XXX";
7. InputAccount.getInstance().sendInputArea(areaParams, new InputAccount.EnterSecuri-
tyCallBack() {
8. @Override
9. public void onAddedSecurityCharacter() {
10. //When a character is added, this method will be called back,
11. // and you can customize the UI displayeffect for this
12. }
13. @Override
14. public void onDeletedSecurityCharacter() {
15. //When a character is deleted, this method will be called back
16. }
17. });
Code 22 SendInputArea
1. InputAccount.ProcessingMessageUpdateCallback processingMessageUpdateCallback =
2. new InputAccount.ProcessingMessageUpdateCallback() {
3. @Override
4. public void onUpdate(String s, String s1) {
5. // Modify the content of the prompt here.
6. }
7. };
Code 23 ProcessingMessageUpdateCallback
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 41 -
1. InputAccount.InputAccountCallback inputAccountCallback = new InputAccount.InputAccountCallbackCompat() {
2. @Override
3. public void onInputAccountStart() {
4. // Prompt the customer to start reading the card.
5. // You can monitor some status information in the EMV process by calling handleInputAccount.
6. InputAccount.getInstance().handleInputAccount(currentStepCallback, cardEventListener);
7. // If you need to manuallyinput, you can displaya security flow textbox by calling sendInputArea.
8. // After completing the input, the following method needs to be called:
9. InputAccount.getInstance().handleInputCardNum(null, currentStepCallback);
10. }
11. @Override
12. public void onEnterExpiryDate() {
13. // Prompt the user to enter the ExpiryDate manually.
14. // After completing the input, the following method needs to be called:
15. InputAccount.getInstance().handleInputExpiry("MMYY", currentStepCallback);
16. }
17. @Override
18. public void onEnterZip() {
19. // After completing the input, the following method needs to be called:
20. InputAccount.getInstance().handleInputZip("zip_data", currentStepCallback);
21. }
22. @Override
23. public void onEnterCVV() {
24. // You can displaya security flow textbox by calling sendInputArea.
25. // After completing the input, the following method needs to be called:
26. InputAccount.getInstance().handleInputCVV(null, currentStepCallback);
27. }
28. @Override
29. public void onSelectEMVApp(List<String> list) {
30. // When the AID needs to be manuallyselected in the EMV process,
31. // you need to prompt the user to select here
32. // Once the selection is complete, you need to inform which one was selected.
33. InputAccount.getInstance().handleSelectEMVApp(list.get(selectIndex), currentStepCallback);
34. }
35. @Override
36. public void onProcessing(String code, String message) {
37. // Displaysome necessarystatus information here.
38. // Some content may change, so you need to call the following methods to monitor
39. // whether the content changes, or end the prompt.
40. InputAccount.getInstance().handleProcessing(processingMessageUpdateCallback, currentStepCallback);
41. }
42. @Override
43. public void onWarnRemoveCard() {
44. // Prompt the user to move the card here, and listening remove status bycall this method:
45. InputAccount.getInstance().handleWarnRemoveCard(currentStepCallback);
46. }
47. };
Code 24 InputAccountCallback
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 42 -
Call InputAccountWithEMV
You can call an InputAccountWithEMV transaction by the following methods. It should be noted that the following
code is not suitable for running in the main thread.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 43 -
Request
Command Field Description
ShowTextBox Title The title on terminal, See CONTROL-CHARACTER-FOR-TEXT-
SHOWING for supported special characters.
Text The text to be displayed. Limitation depends on terminal screen size and
font size, generally as many as 10 pages can be displayed on terminal.
See CONTROL-CHARACTER-FOR-TEXT-SHOWING for supported
special characters.
Button1 The name of button1 on terminal
Buttoncolor1 Please use the hexadecimal to represent the color.
For example, ffffff which represent the white color.
00ff00 which means the green color. If this value not to be set, the default
value will be used.
Button2 The name of button2 on terminal
Buttoncolor2 Please use the hexadecimal to represent the color.
For example, ffffff which represent the white color.
00ff00 which means the green color. If this value not to be set, the default
value will be used.
Button3 The name of button3 on terminal
Button color3 Please use the hexadecimal to represent the color.
For example, ffffff which represent the white color.
00ff00 which means the green color. If this value not to be set, the default
value will be used.
Timeout Timeout in 100ms for waiting text input. Valid value should be [0, 9999].
The value of “” means waiting till user canceled or confirmed. The value
of “0” means non-blocking mode, only valid when no button or signature
box.
ButtonKey1 The hard key to be mapped for Button 1
ButtonKey2 The hard key to be mapped for Button 2
ButtonKey3 The hard key to be mapped for Button 3
EnableHardKey Whether to disable virtual button displaying.
1 – Enable Hard Key only.
0 – Enable both virtual button and hard keys.
0 as Default.
HardKeylist Hard keys separated by <SPACE>, like “KEY0 KEY1”.
SignatureBox Signature Box:
0 – no signature box(default value)
1 – show signature box
ContinuousScreen ‘0’ default.
‘1’ indicate the terminal does not go to idle screen but waiting for the next
command
BarcodeType It can be empty or 7 (QRCODE)
BarcodeData Barcode data. For QRCODE, the data length scope is [1, 126]
Response
Command Field Description
ShowTextBox Result Code Result Code
Result Message If local error message exists, this field is mandatory.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 44 -
Button number The button number of selection.
SignStatus Signature status:
1: done the signature.
Signature Data Signature data.
Screenshot
Request
Command Field Description
CardInsertDetection Null Null
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 45 -
Response
Command Field Description
CardInsertDetection Result Code Result Code
Result Message If local error message exists, this field is mandatory.
CardInsertStatus 0 means no card inserted.
1 means an EMV card is inserted.
2 means a card is inserted, but it is not an EMV card (Prolin Only).
Request
Command Field Description
SessionKeyInject SourceKeyType Support Key Type:
TMK(Terminal Master Key) = 1;
Note: Now only supports TMK.
SourceKeyIndex If source key type = TMK, the source key index should be [1,99].
DestinationKeyType TPK(Terminal PIN Key) = 0;
TAK(Terminal MAC Key) = 1;
TDK(Terminal DES Key) = 2;
DestinationKeyIndex The destination key index should be [1, 99].
DestinationKeyValue Destination key plaintext or the cipher test, for DES keys, the
destination key is the ciphertext which encrypted by the source
key in the mode of 3DES ECB.
Valid the length of key value is 8, 16, 24.
Note: key data must be in ASCII format. For example, the 8
bytes binary array “\x11\x22\x33\x44\x55\x66\x77\x88” can be
converted into “1122334455667788”.
CheckMode 0: No KCV check
1: Perform DES/TDES encryption on 8 bytes 0x00 and use first 4
bytes as KCV.
CheckBuffer If check mode = 0, PED won’t check KCV, this data is not
meaning.
If check mode = 1, the KCV length should be 4 bytes.
Note: the data must be in ASCII format. For example, the 4 bytes
binary array “\x11\x22\x33\x44” can be converted into
“11223344”.
Response
Command Field Description
SessionKeyInject Result Code Result Code
Result Message If local error message exists, this field is mandatory.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 46 -
4.26 MAC Calculation
Description
This command is used for MAC Calculation. It is supported on both classic and Android terminals.
Request
Command Field Description
MACCalculation Input Data The data used for MAC Calculation.
The data can be divided into several parts by vertical bar (‘|’).
Use ‘Encryption Bitmap’ to indicate which parts is encrypted.
Terminal will remove the vertical bars (‘|’) and decrypt the cipher
text, then MAC will be calculated using the decrypted data.
The data is represented in hexadecimal. For example:
3031|4a4b|6061.
Encryption Bitmap Indicate which parts of input data are encrypted.
0: Plaintext
1: Ciphertext
For example: if input data contain 5 parts. 00101 means the third
and the fifth part are ciphertext.
Default is 0, means this part is plaintext.
MAC Key Slot Key Index in PED: range is [1, 99].
MAC Work Mode MAC calculation mode:
Default is 0.
0: ANSI X9.9.
1: Hypercom Fast Mode.
2: ANSI X9.19.
Encryption Key Slot The key slot used to encrypt input data parts. The key can’t be
DUKPT key.
Padding Char This is used to indicate what value had been padded on data
when encryption. Terminal will remove the padding chars first
when calculate MAC.
0: padding 0x00;
F: padding 0xFF;
If this field is empty, terminal won’t remove the padding chars.
MAC Key Type The type of the key which is used to calculate MAC value.
Default MAC key type is 0(TAK)
0: Master Session DES TAK
1: DES DUKPT
2: AES 128 DUKPT
3: AES 192 DUKPT
4: AES 256 DUKPT
KSN Flag Indicate whether to increase KSN, when MAC key type is
1(DUKPT Key)
Default KSN flag is 0(Not increase)
0: Not increase.
1: Increase.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 47 -
Response
Command Field Description
MACCalculation Result Code Result Code
Result Message If local error message exists, this field is mandatory.
Result Data The MAC result, represented in hexadecimal
KSN KSN Value
Request
Command Field Description
GetPEDInformation Key Type 1 = Master Key
2 = Session Key
3 = DES DUKPT Key
4 = AES DUKPT Key
Empty value means all key information.
If you want to specify Key Slot, you need to specify key type first
Key Slot Slot, Slots or Range of Slot; Use Comma (,) to separate slot
numbers and Dash ( - ) to indicate range
Empty value means all slot.
Response
Command Field Description
GetPEDInformation Result Code Result Code
Result Message If local error message exists, this field is mandatory.
Available Key Slots Number of key slots remaining available for use, each Key type
Count has its own key slot.
Separate by a “,” (comma). The sequence is Master key,
Session key, DES DUKPT key.
Session keys include Terminal PIN Key, Terminal MAC Key, and
Terminal DES Key.
If only specify key type, other values should be empty. For
example, if key type in request is 2(session key), this field will be
like “,90”.
If specify key type and key slot, this field value will be the
available key slots count in the specified scope.
Master Key Info Terminal Master Key info group. See M/S Key Detail Information
Definition.
Session Key Info Session Key Info. See Session Key Information Definition.
DES DUKPT Key DUKPT Key Info group. See DUKPT Key Information Definition.
Info
AED DUKPT Key AES DUKPT Key Info group. See
Info AES DUKPT Key Information Definition
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 48 -
4.28 Increase KSN
Description
This command is used to get increase KSN. It is supported on both classic and Android terminals.
Request
Command Field Description
IncreaseKSN Key Type 3 = DES DUKPT Key
4 = AES DUKPT Key
Key Slot Key slot
Response
Command Field Description
IncreaseKSN Result Code Result Code
Result Message If local error message exists, this field is mandatory.
KSN KSN value after increasing
Request
Command Field Description
VasSetMerchanParameters Vas Program ‘1’ – Apple Pay VAS
‘2’ – Google Smart Tap
VAS Mode VAS Mode
0 --- VAS_ONLY
1 --- VAS_AND_PAYMENT
2 --- VAS_OR_PAYMENT
3 --- PAYMENT_ONLY
Apple VAS specific data please refer to section Apple Pay VAS Definition
for detail
Google VAS specific data please refer to section Google Smart Tap
Definition for detail
Response
Command Field Description
VasSetMerchanParameters Result Code Result Code
Result Message If local error message exists, this field is mandatory.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 49 -
4.30 VAS Push Data
Description
This command is used to configure the parameters of Google Smart Tap to push data from terminal to mobile,
such as merchant info. It is supported on both classic and Android terminals.
Request
Command Field Description
VasPushData Vas Program Reserve
Must set this field to 2 (Google Smart Tap)
VAS Mode VAS Mode
0 --- VAS_ONLY
1 --- VAS_AND_PAYMENT
2 --- VAS_OR_PAYMENT
3 --- PAYMENT_ONLY
VAS Push Data Google Smart Tap Push Service. Please refer to Google
Smart Tap Push Service Definition for detail.
Response
Command Field Description
VasPushData Result Code Result Code
Result Message If local error message exists, this field is mandatory.
Request
Command Field Description
UploadFTP Null Null
Response
Command Field Description
UploadFTP Result Code Result Code
Result Message If local error message exists, this field is mandatory.
SFTP Parameter Encrypted by CBC TDES. Hexadecimal
Upload Status Upload log files status.
0 - OK
1 - COMM ERROR
2 - ABORTED
3 - CONNECT ERROR
4 - UNKNOW ERROR
5 - SFTP COMM ERROR
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 50 -
6 - NO DATA TO UPLOAD
4.32 ShowMessageCenter
Description
This command is used to show message center aligned, the default title is “Transaction Approved,” and the
default message is "Thank You". It is supported on both classic and Android terminals.
Request
Command Field Description
ShowMessageCenter Title The title of thank you screen.
Message1 The message1 of thank you screen. See CONTROL-CHARACTER-
FOR-TEXT-SHOWING for supported special characters.
Message2 The message2 of thank you screen. See CONTROL-CHARACTER-
FOR-TEXT-SHOWING for supported special characters.
TimeOut Timeout in 100ms. Valid value should be [0, 9999].
The value of “0” means non-blocking mode.
PinpadType 0: Internal Pinpad. (default).
1: External Pinpad. (A80 only, if use other device will return param
error).
3: External Pinpad first. If external pinpad is present, use external
pinpad. If not, use internal pinpad. (A80 only, if use other device will
return param error).
Icon Type 0: No icon is displayed. (Default)
1: Approved icon is displayed.
2: Declined icon is displayed.
Response
Command Field Description
ShowMessageCenter Result Code Result Code
Result Message If local error message exists, this field is mandatory.
PinpadType 0: Internal Pinpad. (default).
1: External Pinpad. (A80 only, if use other device will return param
error).
3: External Pinpad first. If external pinpad is present, use external
pinpad. If not, use internal pinpad. (A80 only, if use other device will
return param error).
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 51 -
Screenshot
Request
Command Field Description
ShowItem Title Title, Please refer to Control Character for Text Showing
Topdown Text pushed in top down or bottom up.
Y: top down
N: bottom up.
Default as Y, and the value is only effective at the initial request.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 52 -
Tax Line Tax line to be displayed. Conditional for models with different
screen size.
Total Line Total line to be displayed. Conditional for models with different
screen size.
Item Detail Support more than one item.
Please refer to section Item Detail-Production Information.
Please note:
1. If the items in one request lager than the capability of screen
can display, it only displays the latter items.
2. It should be empty when line item action is delete.
Line Item Action Line item action:
0: add(default value)
1: update
2: delete
Item Index Use to reference to a line when added. A line can be updated or
deleted using this index as reference.
Multiple lines can be added/updated/deleted at once using a single
command. Each index is separated with a vertical bar (“|”) as
separator. For example: “1|2|5” (This will affect lines with index 1, 2
and 5).
If an Item Index is specified when the first item is added, Indexed
Mode will be activated. In Indexed Mode, each time an item is
added, an Item Index must be provided otherwise an error will be
returned. This allows lines to be updated or deleted.
If an Item Index is not specified when the first item is added, Non-
Indexed Mode will be activated. In Non-Indexed Mode, Item Index
will be ignored. Lines cannot be updated or deleted.
Response
Command Field Description
ShowItem Result code Response code
Result message If local error message exists, this field is mandatory.
Screenshot
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 53 -
4.34 GetFormList
Description
This command is designed for Dual Browser TermLink App, it is supported on Q20/IM20 terminal.
Request
Command Field Description
GetFormList FormType “0” for external forms
“1” for internal forms
Response
Command Field Description
GetFormList Result Code Result Code
Result Message If local error message exists, this field is mandatory.
FormList Form List in format:
form1, form2, form3,……
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 54 -
4.35 GetVarList
Description
This command is designed for Dual Browser TermLink App, it is supported on Q20/IM20 terminal.
Request
Command Field Description
GetVarList VarNameList It uses comma to separate each field Format: varName1,
varName2,...
Response
Command Field Description
GetVarList Result Code Result Code
Result Message If local error message exists, this field is mandatory.
VarList Return a list of variable and value pair. JSON format:
{“VARNAME1”:”VARVALUE1”,”VARNAME2”:”VARVALUE2”,……}
4.36 SetVarList
Description
This command is designed for Dual Browser TermLink App, it is supported on Q20/IM20 terminal.
Request
Command Field Description
SetVarList VarList It uses JSON format:{"VARNAME1":"VARVALUE1",
"VARNAME2":"VARVALUE2"}
Response
Command Field Description
SetVarList Result Code Result Code
Result Message If local error message exists, this field is mandatory.
4.37 RunForm
Description
This command is designed for Dual Browser TermLink App, it is supported on Q20/IM20 terminal.
Request
Command Field Description
RunForm formName Form name that wants to run
timeOut Timeout in 100ms, valid value should be [0, 9999]
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 55 -
"" – no timeout, wait till user cancel
"0" – non-blocking mode
Continuous Screen ‘0’ default.
‘1’ indicate the terminal does not go to idle screen but waiting for the
next command.
Response
Command Field Description
RunForm Result Code Result Code
Result Message If local error message exists, this field is mandatory.
Result Result in format:
“RESULT1|RESULT2|RESULT3|RESULT4|RESULT5”
maximum 5 results in one API call.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 56 -
5 Data Define
5.1 EDC Type Definition
EDC Type Value Description
All 00 All EDC type
CREDIT 01 Credit card
DEBIT 02 Debit card
EBT 03 EBT card(The same rule as Credit)
GIFT 04 Gift card(The same rule as Credit)
LOYALTY 05 Loyalty(The same rule as Credit)
CASH 06 Cash(The same rule as Credit)
CHECK 07 Check(The same rule as Credit)
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 57 -
UNLOAD 28 DEFAULT VALUE - Tag 9C: 00(Sale)
RENEW 29 DEFAULT VALUE - Tag 9C: 00(Sale)
GET CONVERT DETAIL 30 DEFAULT VALUE - Tag 9C: 00(Sale)
CONVERT 31 DEFAULT VALUE - Tag 9C: 00(Sale)
TOKENIZE 32 DEFAULT VALUE - Tag 9C: 00(Sale)
INCREMENT AUTH 33 DEFAULT VALUE - Tag 9C: 00(Sale)
BALANCE WITH LOCK 34 DEFAULT VALUE - Tag 9C: 00(Sale)
REDEMPTION 35 DEFAULT VALUE - Tag 9C: 00(Sale)
REWARDS 36 DEFAULT VALUE - Tag 9C: 00(Sale)
REENTER 37 DEFAULT VALUE - Tag 9C: 00(Sale)
ADJUSTMENT 38 DEFAULT VALUE - Tag 9C: 00(Sale)
TRANSFER 39 DEFAULT VALUE - Tag 9C: 00(Sale)
REVERSAL 99 DEFAULT VALUE - Tag 9C: 00(Sale)
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 58 -
10 Unattend √ √ √ × × “Signature” and “No CVM” are
ed disabled.
11 Unattend √ × × × × Only “Online PIN” is ENABLED.
ed
12 Unattend × √ √ × √ “Signature” and “Online PIN” are
ed disabled.
MSR
Tag Data Object Description Format Examples
DFA004 Private Raw magstripe ascii Raw
Track2 including Track2: ;4055010000000005=151250254321987123
start and end 45?
sentinel TLV:
\xDF\xA0\x04\x39;4055010000000005=1512502543
2198712345?
DFA005 Private Raw magstripe ascii
(optional ) Track1 including
start and end
sentinel
CC/NFC
Tag Data Object Description Format Examples
57 Track 2 Contains the data elements b TLV:
Equivalent of track 2 according to \x57\x19\x47\x61\x73\x90\x01\x01\x00\x
Data ISO/IEC 7813, excluding 10\xD1\x81\x22\x01\x11\x43\x87\x80\x01
start sentinel, end sentinel, \x 62\x9F
and Longitudinal
Redundancy Check (LRC)
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 59 -
5A Application Valid cardholder account cn TLV: \x5A\x08\x47\x61\x73\x90\x01\x
Primary number. 01\x00\x10
Account
Number
(PAN)
9F6B Track 2 Data Contains the data objects of Optional
(optional) the Track 2 according to b
(ISO/IEC 7813), excluding
start sentinel, end sentinel
and LRC.
Optional.
MasterCard Only.
56 Track1 Data Track 1 Data contains the Optional
(optional) data objects of the track 1 ans
according to [ISO/IEC 7813]
Structure B, excluding start
sentinel, end sentinel and
LRC. The Track 1 Data may
be present in the file read
using the READ RECORD
command during a mag-
stripe mode transaction.
9F1F Track 1 Discretionary part of track 1 Optional
(optional) Discretionary according to ISO/IEC 7813 ans
Data
9F20 Track 2 Discretionary part of track 2 Optional
(optional) Discretionary according to ISO/IEC 7813 cn
Data
b - These data elements consist of either unsigned binary numbers or bit combinations that are defined elsewhere
in the specification. Binary example: The Application Transaction Counter (ATC) is defined as “b” with a length of
two bytes. An ATC value of 19 is stored as Hex '00 13'.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 60 -
5.6 Key Information Definition
DUKPT Key Information Definition
Field Description
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 63 -
Bitmaps for the various capabilities that the ECR supports.
Google Smart Tap CAP Please see Google Smart Tap Capabilities Bitmap Definition
Default value is “00000000000000000000000000000000”
Collect ID A predefined number specific to the merchant
Service Usage Please refer to Google Service Usage Definition.
Please refer to Google Service Update Definition.
Service Update
Must specify one of
New Service Please refer to Google New Service Definition
0 --- Normal flow (default)
End Tap
1 --- Stop tap session
Note: Service usage/ Service update/ New service can’t be all empty.
Example:
command: \$Logomt30_ad0 or \$Logomt30_ad0\n
print image:
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 67 -
\$BARD,<code Use this command for print Fields are separated by comma (,).
enum>,<size>,<data bar code. Bar code will be printed in a new line and center
aligned.
length>,<data> Example:
1, Get the data by data length:
\$BARD,1,1,8,12345678
Barcode example:
Enum1, CODE39:
\$BARD,1,1,6,123456
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 68 -
Enum 3, EAN13 :
\$BARD,3,1,12,123456789012
Enum 4, EAN128:
\$BARD,4,1,12,[3102]000035
Enum 5, PDF417:
\$BARD,5,2,8,12345678
Enum 7, QRCODE:
\$BARD,7,8,8,12345678
Size:
Value can only be set to: 1, 2, 4, 8, 12, or 16 and
other values are invalid.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 69 -
Please refer to Limited Length for Barcode Data for more
details.
\1 Small font Print text small size takes effect until next control
character, \n or new line.
Example:
\1Small
Small
\2 Normal font(default) Print text normal size (default) takes effect until
next control character, \n or new line.
Example:
\2Normal or Normal
Normal
\3 Big font Print text big size takes effect until next control
character, \n or new line.
Example:
\3Big
Big
\$Disclaimer Standard disclaimer Print the standard disclaimer.
It will generate a new line, center align.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 70 -
11\13\15\17 10 Numeric
30\37 5-26 Numeric
310n 12 Numeric
400\401 6-26 Numeric
410 18 Numeric
PDF417 5 2 -- 1-74 AlphaNumeric
QRCODE 7 8 -- 1-126 AlphaNumeric
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 71 -
6 Response Code
6.1 Response code for EMV
Code Message Description
000000 OK The result is OK
100003 1-Chip Malfunction IC card reset failed
100003 2–Chip Read Error IC card command failed
100003 3–Chip Blocked IC card blocked
100003 4–Chip Error Return code of IC card command is error
100003 5–Chip Blocked EMV Application is blocked
100003 6–Chip Not Accepted No matching EMV Application in the IC card
6-ChipNotAccept
100003 7–User Abort User canceled current operation or transaction
100003 8–User Timeout User’s operation timed out
100003 9–Data Error IC card data error
100003 10–Chip Not Accepted Transaction is not accepted
10-ChipNotAccept
100003 11-Chip Reject Transaction should be declined by devices according to spec.
100003 12–CAPK Expired CAPK Key Expired
100003 13–PIN Pad Error There’s No PIN Pad or PIN Pad can’t be used
100003 14–PIN Pad Error No PIN Pad or PIN Pad can’t be used
100003 15–General Error Sum of Key Verify is incorrect
100003 16–General Error Unable to find Appointed Data Element
100003 17–General Error There is no data in the appointed Data Element
100003 18–General Error Memory is overflow
100003 19–General Error No transaction log present
100003 20–General Error Appointed log does not exist
100003 Appointed Label does not exist in current log record
21–General Error
100003 22-Chip Error Receive Returned Status Code of 6985 in GPO response.
100003 23–Tap Not Accepted Prompt for card entry method other than contactless
23-TapNotAccept
100003 24–General Error EMV File error.
100003 25–Tap Terminated Must terminate the transaction right now.
100003 26–Tap General Error Contactless failed.
26–TapGeneralErr
100003 27-Tap Decline Transaction should be declined by devices according to spec.
100003 28–Tap Not Accepted Try another card (DPAS and AMEX).
28–TapNotAccept
100003 30–Param Error Parameter error = EMV_PARAM_ERR
100003 31–Tap General Error International transaction(for VISA AP VCPS Level2 IC card use)
31–TapGeneralErr
100003 32–Tap General Error Wave2 DDA response TLV format error
32–TapGeneralErr
100003 33–Tap General Error US card(for VISA AP VCPS L2 IC card use)
33–TapGeneralErr
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 72 -
100003 34–Tap General Error Need to use IC card for the transaction(for VISA VCPS IC card
34–TapGeneralErr use)
100003 35–Tap General Error Need to redo the EMV Application Select.
35–TapGeneralErr
100003 36–Card Expired Contactless IC card has expired
100003 37–Tap General Error No application is supported(Select PPSE error)
37–TapGeneralErr
100003 38–Tap General Error Contactless PBOC
38–TapGeneralErr
100003 39–Tap CVM Fail CVM result in decline for AE
100003 40-See Phone Command response with 6986
100003 41–Tap General Error The last read record command error.
41–TapGeneralErr
100003 42–Tap General Error Wrong order API calls.
42–TapGeneralErr
100003 48–Tap General Error Try Tap Again
48–TapGeneralErr
100003 PIN Pad Timeout PED Timeout
100003 PIN Pad Failure PED Failure
100003 105-Declined Contactless offline declined
100003 108-Too many cards present Too many cards present.
100003 CLSS ERROR General contactless error
100003 TERMINAL PARAMETER The terminal parameter file is corrupted
ERROR
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 73 -
100506 ENCRYPTION KEY TYPE the encryption key type dismatch the specified algorithm
DISMATCH
100507 PED PARAMETER ERROR PED parameter error
100508 PED GENERAL ERROR PED general error
100509 PED UNKNOWN ERROR PED unknown error
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 74 -
7 Best Practice (Only for Android App)
7.1 Android BroadPOS P2PE/TermLink App Internal Calling
Internal Calling Model
Users can put TermLink and POSLink-integrated applications in a terminal to Standalone mode.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 75 -
Transaction Flow With Callback
InputAccountWithEMV Flow
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 76 -
AuthorizeCard Flow
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 77 -
GetPinblock Flow
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 78 -
CompleteOnlineEMV Flow
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 79 -
Callback with Single Activity Only
The structure for InputAccount.InputAccountCallback:
1. public interface InputAccountCallback {
2. ......
3. onInputAccountStart
4. onEnterExpiryDate
5. onSelectEMVApp
6. onProcessing
7. onWarnRemoveCard
8. ......
9. }
Use EventBus
EventBus is a Java library that simplifies communication between Activities, Fragments, Threads, Services,
etc.
Users can get details from https://github.com/greenrobot/EventBus
As mentioned above, there are lots of callbacks in InputAccountCallback, so users can separate the
callbacks from the user’s Activity and use EventBus to communicate between InputAccountCallback and the
user’s Activity.
API
Please see the POSLink Java document for details.
The main functions are in the package com.pax.poslink.fullintegration. The Class in which the main functions
of full-Integration are listed below.
Model Command Package and class
INIT com.pax.poslink.fullIntegration.Init
GETVAR com.pax.poslink.fullIntegration.Variable
SETVAR com.pax.poslink.fullIntegration.Variable
SHOWDIALOG com.pax.poslink.formManage.ShowDialog
GETSIGNATURE com.pax.poslink.formManage.DoSignature
DOSIGNATURE com.pax.poslink.formManage.DoSignature
UPDATEIMAGE/UPATERESOURCE com.pax.poslink.fullIntegration.UpdateResource
CHECKFILE com.pax.poslink.fullIntegration.CheckFile
REBOOT com.pax.poslink.PosLink
GETPINBLOCK com.pax.poslink.fullIntegration.GetPinBlock
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 80 -
RESETMSR com.pax.poslink.PosLink
INPUTTEXT com.pax.poslink.formManage.InputText
AUTHORIZECARD com.pax.poslink.fullIntegration.AuthorizeCard
COMPLETEONLINEEMV com.pax.poslink.fullIntegration.CompleteOnlineEMV
REMOVECARD com.pax.poslink.fullIntegration.RemoveCard
GETEMVTLVDATA com.pax.poslink.fullIntegration.EMVTLVData
SETEMVTLVDATA com.pax.poslink.fullIntegration.EMVTLVData
INPUTACCOUNTWITHEMV com.pax.poslink.fullIntegration.InputAccount
SHOWTEXTBOX com.pax.poslink.formManage.InputText
CARDINSERTDETECTION com.pax.poslink.PosLink
VASSETMERCHANTPARAMETERS com.pax.poslink.fullIntegration.VasSetMerchantParameters
VASPUSHDATA com.pax.poslink.fullIntegration.VasPushData
SESSIONKEYINJECTION com.pax.poslink.PosLink
UI Customization
In addition to the built-in UI, our application also supports customer-defined UI.
How to use:
You need enable the customUI support first.
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 81 -
For Example:
1. CommSetting commSetting = new CommSetting();
2. commSetting.setCommType();
3. commSetting.setBaudRate();
4. commSetting.setPort();
5. commSetting.setCustomerUISupport(true);
6. ConnectManager.getInstance(this).startListeningService(commSetting, connectionCallBack);
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 82 -
com.pax.us.pay.action.ENTER_ZIP_CODE com.pax.us.pay.ui.category.TEXT
com.pax.us.pay.action.SELECT_AID com.pax.us.pay.ui.category.OPTIO
com.pax.us.pay.action.SELECT_LANGUAGE N
SHOWTEXTBOX com.pax.us.pay.action.SHOW_TEXT_BOX com.pax.us.pay.ui.category.MANA
GER
SHOWMESSAGECEN com.pax.us.pay.action.SHOW_MESSAGE_C com.pax.us.pay.ui.category.MANA
TER ENTER GER
Let your Activity implements IUIListener interface and create a ActionHelper to process the message and
callback. The ActionHelper will use IRespStatus to callback the transaction event and the user can use the
function sendNext() and sendAbort() to go to the next step or cancel the transaction.
For Example:
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 83 -
1. protected void onCreate(@Nullable Bundle savedInstanceState) {
2. super.onCreate(savedInstanceState);
3. mHelper = new EnterPinHelper(this, new IRespStatus() {
4. @Override
5. public void onAccepted() {
6. //when trans accepted. Usuallyclose the current activity
7. }
8. @Override
9. public void onDeclined(long code, @Nullable String message) {
10. //when trans declined with error message.
11. }
12. @Override
13. public void onMessage(@Nullable String message) {
14. //when trans need to send some message.
15. }
16. @Override
17. public void onReset() {
18. //when execute the reset command.
19. }
20. @Override
21. public void onClearMsg() {
22. //when execute the clearMessage command.
23. }
24. });
25. }
26. private void testOperate(){
27. mHelper.sendNext();//goto the next step for this transaction.
28. mHelper.sendAbort();//to cancel the current transaction.
29. }
30. @Override
31. public void onShowAmount(long amount) {
32. //set amount to textview or your label.
33. }
34. @Override
35. public void onShowCurrency(@Nullable String currency, boolean isPoint) {
36. //set currency symbol to textview or your label.
37. }
38. @Override
39. public void onShowMessage(@Nullable String transName, @Nullable String message) {
40. //set message to textview or your label.
41. }
42. @Override
43. public void onShowPin(@Nullable String pinStyles, boolean isOnline, boolean isPinBypass) {
44. //show your pin textbox or message.
45. }
46. @Override
47. public void showDetail(String msg) {
48. //you can show the detail message here.
49. }
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 84 -
The support ActionHelper for each action command like this:
Command Action Helper UI Listener Recommand Activity
Name
SHOWDIALOG SelectOptionsHelper ISelectOptionListener ShowDialogActivity
DOSIGNATURE SignatureHelper ISignatureListener DoSignatureActivity
GETPINBLOCK EnterPinHelper IEnterPinListener EnterPINActivity
INPUTTEXT InputTextHelper IInputTextListener InputTextActivity
AUTHORIZECARD EnterPinHelper IEnterPinListener EnterPINActivity
INPUTACCOUNTWITHEM SearCardHelper ISearchCardListener SearchCardActivity
V EnterExpiryDateHelpe IEnterExpiryDateListene EnterExpiryDateActivity
r r
SecurityHelper ISecurityListener EnterCVVActivity
EnterZipCodeHelper IEnterZipCodeListener EnterZipActivity
SelectOptionsHelper ISelectOptionListener SelectOptionActivity
SHOWTEXTBOX ShowTextBoxHelper IShowTextBoxListener ShowTextBoxActivity
SHOWMESSAGECENTER ShowMessageHelper IEnterAmountListener ShowMessageCenterActivit
y
The user can create a static BroadcastReceiver to receive the broadcast and set the intent-filter.
1. <receiver android:name=".cusui.receiver.StatusReceiver">
2. <intent-filter>
3. <action android:name="com.pax.us.pay.CARD_PROCESS_STARTED" />
4. <action android:name="com.pax.us.pay.CARD_PROCESS_ERROR" />
5. <action android:name="com.pax.us.pay.CARD_PROCESS_COMPLETED" />
6.
7. <category android:name="com.pax.us.pay.status.category.CARD" />
8. </intent-filter>
9. <intent-filter>
10. <action android:name="com.pax.us.pay.REMOVE_CARD_STARTED" />
11. <action android:name="com.pax.us.pay.REMOVE_CARD_FINISHED" />
12.
13. <category android:name="com.pax.us.pay.status.category.MANAGER" />
14. </intent-filter>
15. </receiver>
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 85 -
1. <receiver android:name=".cusui.receiver.ClssStatusReceiver">
2. <intent-filter>
3. <action android:name="com.pax.us.pay.CLSS_LIGHT_NOT_READY" />
4. <action android:name="com.pax.us.pay.CLSS_LIGHT_IDLE" />
5. <action android:name="com.pax.us.pay.CLSS_LIGHT_READY_FOR_TXN" />
6. <action android:name="com.pax.us.pay.CLSS_LIGHT_PROCESSING" />
7. <action android:name="com.pax.us.pay.CLSS_LIGHT_REMOVE_CARD" />
8. <action android:name="com.pax.us.pay.CLSS_LIGHT_COMPLETED" />
9. <action android:name="com.pax.us.pay.CLSS_LIGHT_ERROR" />
10. <action android:name="com.pax.us.pay.CLSS_LIGHT_BLUE_ON" />
11. <action android:name="com.pax.us.pay.CLSS_LIGHT_BLUE_OFF" />
12. <action android:name="com.pax.us.pay.CLSS_LIGHT_BLUE_BLINK" />
13. <action android:name="com.pax.us.pay.CLSS_LIGHT_YELLOW_ON" />
14. <action android:name="com.pax.us.pay.CLSS_LIGHT_YELLOW_OFF" />
15. <action android:name="com.pax.us.pay.CLSS_LIGHT_YELLOW_BLINK" />
16. <action android:name="com.pax.us.pay.CLSS_LIGHT_GREEN_ON" />
17. <action android:name="com.pax.us.pay.CLSS_LIGHT_GREEN_OFF" />
18. <action android:name="com.pax.us.pay.CLSS_LIGHT_GREEN_BLINK" />
19. <action android:name="com.pax.us.pay.CLSS_LIGHT_RED_ON" />
20. <action android:name="com.pax.us.pay.CLSS_LIGHT_RED_OFF" />
21. <action android:name="com.pax.us.pay.CLSS_LIGHT_RED_BLINK" />
22.
23. <category android:name="com.pax.us.pay.status.category.VIRTUAL_CLSS_LIGHT" />
24. </intent-filter>
25. </receiver>
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 86 -
1. <receiver android:name=".cusui.receiver.PinStatusReceiver">
2. <intent-filter>
3. <action android:name="com.pax.us.pay.PIN_CLEARED" />
4. <action android:name="com.pax.us.pay.PIN_ENTER_COMPLETED" />
5. <action android:name="com.pax.us.pay.PIN_ENTER_ABORTED" />
6. <action android:name="com.pax.us.pay.PIN_ENTERING" />
7. <action android:name="com.pax.us.pay.PIN_RNIB_TOUCH" />
8. <action android:name="com.pax.us.pay.SECURITY_ENTERING" />
9. <action android:name="com.pax.us.pay.SECURITY_DELETE" />
10. <action android:name="com.pax.us.pay.SECURITY_FORMAT_ERROR" />
11. <action android:name="com.pax.us.pay.SECURITY_LUHN_CHECK_ERROR" />
12. <action android:name="com.pax.us.pay.SECURITY_LUHN_CHECK_OK" />
13.
14. <category android:name="com.pax.us.pay.status.category.PIN" />
15. <category android:name="com.pax.us.pay.ui.category.SECURITY" />
16. </intent-filter>
17. </receiver>
The user can use the EventBus or other ways to notify your activity to display a dialog box or process related
content.
For Example:
In BroadcastReceiver
In Activity
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 87 -
1. @override
2. protected void onCreate(@Nullable Bundle savedInstanceState) {
3. super.onCreate();
4. EvensBus.getDefault().register(this);
5. }
6.
7. @Override
8. protected void onDestroy() {
9. EventBus.getDefault().unregister(this);
10. super.onDestroy();
11. }
12.
13. @Subscribe(threadMode = ThreadMode.MAIN)
14. public void onEventAsync(String action) {
15. switch (action) {
16. case PINStatus.PIN_ENTERING:
17. Log.i("EnterPinEvent", "PINStatus.PIN_ENTERING");
18. pinLen++;
19. String star = "*";
20. StringBuilder sb = new StringBuilder();
21. for (int i = 0; i < pinLen; i++) {
22. sb.append(star);
23. }
24. pwdInputText.setText(sb.toString());
25. break;
26. case PINStatus.PIN_ENTER_CLEARED:
27. Log.i("EnterPinEvent", "PINStatus.PIN_ENTER_CLEARED");
28. pinLen = 0;
29. pwdInputText.setText("");
30. break;
31. case PINStatus.PIN_RNIB_TOUCH:
32. Log.i("EnterPinEvent", "PINStatus.PIN_RNIB_TOUCH");
33. break;
34. }
35. }
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 89 -
8 Appendix
In this documentation, PayPass, PayWave, and J/Speedy are referred to by their new names: MCL, VCPS, and
JCB Contactless, respectively.
Run below contactless kernel in PAX BroadPOS P2PE Applications, version 1.xx.xx, and PAX TermLink
Application, version 1.xx.xx
• F WAVE LIB v353
• F MC LIB v552_01
• F DPAS LIB v151_1
• F AE LIB v250_03
• F QPBOC v351
• F JCB LIB v151_1
• F FLASH LIB v250
Run below contact kernel in PAX BroadPOS P2PE Applications, version 1.xx.xx, and PAX TermLink
Application, version 1.xx.xx
• EMV_LIB_v653
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 90 -
Run below contactless kernel in PAX BroadPOS P2PE Applications, version 1.xx.xx, and PAX TermLink
Application, version 1.xx.xx
• F WAVE LIB v356
• F MC LIB v557_01
• F DPAS LIB v154_01
• F AE LIB v251
• F QPBOC v352
• F JCB LIB v152
• F FLASH LIB v252
Run below contact kernel in PAX BroadPOS P2PE Applications, version 1.xx.xx, and PAX TermLink
Application, version 1.xx.xx
• EMV_LIB_v657
MCL:
Only support the CDA, the <SecurityCapability> bit 4 can set the CDA.
VCPS:
Only support the fDDA, the specification requires that fDDA must be turned on for terminals that support
offline, it cannot be turned off by APP now.
ExpressPay:
Support SDA and CDA, the <TerminalCapability> B3b4 to set CDA, and the B3b8 to set SDA. the
specification requires that CDA and SDA must be turned on for terminals, the risk of closing SDA and CDA is
borne by the customer.
D-PAS:
Only support the CDA, the specification requires that CDA must be turned on for terminals, it cannot be
turned off.
JCB CL:
Legacy Mode and Magstripe Mode does not support CDA, only EMV mode support CDA. The
<CombinationOptions> B1b6 to set CDA, the specification requires that CDA must be turned on for terminals, the
risk of closing SDA and CDA is borne by the customer.
QPBOC:
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 91 -
Only support the fDDA, the specification requires that fDDA must be turned on for terminals that support
offline, it cannot be turned off by APP now.
Classic Terminal
Terminal Release Date
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 93 -
S300 2019/8
Q30 2019/10
PX5 2019/10
PX7 2019/10
IM300 2019/12
IM20 2020/1
Q20 2020/9
D190 2020/10
IM500 2021/5
IM700 2021/5
NOTE: This document is CONFIDENTIAL and must be used exclusively for the operation of PAX programs. It may not
be duplicated, published, or disclosed without PAX prior written permission. - 94 -