PAX CLSS L2 API Programming Guide For Common Definition
PAX CLSS L2 API Programming Guide For Common Definition
Programming Guide
For Common Definition
Version 1.1.7
I
Copyright © 2020-2025 PAX Computer Technology (Shenzhen) Co., Ltd.
All rights reserved. No part of the contents of this document may be reproduced or
transmitted in any form without the written permission of PAX Computer Technology
(Shenzhen) Co., Ltd.
The information contained in this document is subject to change without notice.
Although PAX Computer Technology (Shenzhen) Co., Ltd. has attempted to ensure
the accuracy of the contents of this document, this document may include errors or
omissions. The examples and sample programs are for illustration only and may not
be suited for your purpose. You should verify the applicability of any example or
sample program before placing the software into productive use.
II
Revision History
III
2. Add the macro definitions of
JCB/D-PAS transaction mode. Refer to
2.5.
CLSS_TRY_ANOTHER_CARD
CLSS_FILE_NOT_FOUND
CLSS_TRY_AGAIN
2. Add kernel type :KERNTYPE_PURE
3. Update structure Clss_PreProcInfo and
Clss_PreProcInterInfo
IV
2018-10-30 V1.1.3 1. Add kernel type definition: wangsy
KERNTYPE_RUPAY
V
Contents
1 Introduction ......................................................................................................................... 1
1.1 Purpose ..................................................................................................................... 1
1.2 Abbreviation ............................................................................................................. 1
1.3 Document Conventions ............................................................................................ 1
2 Macro Definitions ................................................................................................................ 3
2.1 Return Code .............................................................................................................. 3
2.2 Kernel Application Type .......................................................................................... 7
2.3 Transaction Online Result ........................................................................................ 8
2.4 CVM Method ............................................................................................................ 8
2.5 Transaction Path Used by CLSS Kernel ................................................................... 9
2.6 Reader Supported Application Type....................................................................... 10
2.7 ACtype .................................................................................................................... 11
2.8 Other ....................................................................................................................... 11
2.9 The Outcome of Transaction .................................................................................. 12
2.10 Outcome Parameter Set Related Definition ........................................................ 12
3 Data Structure Definitions ................................................................................................. 14
3.1 EMV_CAPK ........................................................................................................... 14
3.2 EMV_REVOCLIST ............................................................................................... 15
3.3 Clss_PreProcInfo .................................................................................................... 16
3.4 Clss_PreProcInfoEx ................................................................................................ 18
3.5 Clss_PreProcInterInfo ............................................................................................. 20
3.6 Clss_TransParam .................................................................................................... 22
3.7 Clss_ReaderParam .................................................................................................. 22
3.8 Clss_SchemeID_Info .............................................................................................. 24
3.9 Clss_VisaAidParam ................................................................................................ 25
3.10 Clss_PbocAidParam ............................................................................................ 26
3.11 Clss_MCAidParam.............................................................................................. 27
VI
3.12 Clss_ProgramID .................................................................................................. 29
3.13 Clss_ProgramID_II ............................................................................................. 30
3.14 EMV_APPLIST .................................................................................................. 32
3.15 Clss_PbocTornConfig ......................................................................................... 34
VII
PAX CLSS L2 API Programming Guide
1 Introduction
1.1 Purpose
This document describe definitions of macros and data structure which are used in L2
Kernel Library JCB、PayPass、payWave、qPBOC、AE、ZIP/DPAS、Flash、EFTPOS
and so on. All of these Macros definitions are defined in CL_common.h . In order to
use these definitions, application program need to include CL_common.h.
1.2 Abbreviation
Table 1 Abbreviation
Abbreviation Description
CLSS Contactless
1
PAX CLSS L2 API Programming Guide
2
PAX CLSS L2 API Programming Guide
2 Macro Definitions
3
PAX CLSS L2 API Programming Guide
user
4
PAX CLSS L2 API Programming Guide
5
PAX CLSS L2 API Programming Guide
6
PAX CLSS L2 API Programming Guide
7
PAX CLSS L2 API Programming Guide
8
PAX CLSS L2 API Programming Guide
9
PAX CLSS L2 API Programming Guide
CLSS_JCB_WAVE2 8 SCHEME_JCB_WAVE_2Path
10
PAX CLSS L2 API Programming Guide
2.7 ACtype
AC_TC 0x01 TC
2.8 Other
11
PAX CLSS L2 API Programming Guide
12
PAX CLSS L2 API Programming Guide
CLSS_OC_NA 0xF0 NA
13
PAX CLSS L2 API Programming Guide
3.1 EMV_CAPK
EMV_CAPK
typedef struct{
unsigned char RID[5];
unsigned char KeyID;
unsigned char HashInd;
unsigned char ArithInd;
unsigned char ModulLen;
unsigned char Modul[248];
unsigned char ExponentLen;
unsigned char Exponent[3];
unsigned char ExpDate[3];
unsigned char CheckSum[20];
}EMV_CAPK;
Parameters Description
14
PAX CLSS L2 API Programming Guide
Modul Module
Exponent Exponent
3.2 EMV_REVOCLIST
EMV_REVOCLIST
typedef struct{
unsigned char ucRid[5];
unsigned char ucIndex;
unsigned char ucCertSn[3];
}EMV_REVOCLIST;
Parameters Description
15
PAX CLSS L2 API Programming Guide
3.3 Clss_PreProcInfo
Clss_PreProcInfo
typedef struct CLSS_PREPROCINFO
{
unsigned long ulTermFLmt;
unsigned long ulRdClssTxnLmt;
unsigned long ulRdCVMLmt;
unsigned long ulRdClssFLmt;
unsigned char aucAID[17];
unsigned char ucAidLen;
unsigned char ucKernType;
unsigned char ucCrypto17Flg;
unsigned char ucZeroAmtNoAllowed;
unsigned char ucStatusCheckFlg;
unsigned char aucReaderTTQ[5];
unsigned char ucTermFLmtFlg;
unsigned char ucRdClssTxnLmtFlg;
unsigned char ucRdCVMLmtFlg;
unsigned char ucRdClssFLmtFlg;
unsigned char aucRFU[5];
}Clss_PreProcInfo;
Parameters Description
16
PAX CLSS L2 API Programming Guide
KERNTYPE_JCB: JCB.
KERNTYPE_MC: MASTERCARD.
KERNTYPE_VIS: VISA.
KERNTYPE_PBOC: qPBOC.
KERNTYPE_AE: American Express.
KERNTYPE_ZIP: ZIP/DPAS
KERNTYPE_FLASH: Flash
KERNTYPE_EFT: EFT POS
17
PAX CLSS L2 API Programming Guide
3.4 Clss_PreProcInfoEx
Clss_PreProcInfo
typedef struct CLSS_PREPROCINFOEX
{
unsigned char aucTermFLmt[6];
unsigned char aucRdClssTxnLmt[6];
unsigned char aucRdCVMLmt[6];
unsigned char aucRdClssFLmt[6];
unsigned char aucAID[17];
unsigned char ucAidLen;
unsigned char ucKernType;
unsigned char ucCrypto17Flg;
unsigned char ucZeroAmtNoAllowed;
unsigned char ucStatusCheckFlg;
unsigned char aucReaderTTQ[5];
unsigned char ucTermFLmtFlg;
unsigned char ucRdClssTxnLmtFlg;
unsigned char ucRdCVMLmtFlg;
unsigned char ucRdClssFLmtFlg;
unsigned char aucRFU[5];
}Clss_PreProcInfoEx;
Parameters Description
18
PAX CLSS L2 API Programming Guide
19
PAX CLSS L2 API Programming Guide
3.5 Clss_PreProcInterInfo
CLSS_PREPROC_INTER_FLAG_INFO
typedef struct{
unsigned char aucAID[17];
unsigned char ucAidLen;
unsigned char ucZeroAmtFlg;
unsigned char ucStatusCheckFlg;
unsigned char aucReaderTTQ[5];
unsigned char ucCLAppNotAllowed;
unsigned char ucTermFLmtExceed;
unsigned char ucRdCLTxnLmtExceed;
unsigned char ucRdCVMLmtExceed;
unsigned char ucRdCLFLmtExceed;
unsigned char ucTermFLmtFlg;
unsigned char aucTermFLmt[5];
unsigned char ucCrypto17Flg;
20
PAX CLSS L2 API Programming Guide
Parameters Description
0-not exceed,1-exceed
0-not exceed,1-exceed
0-not exceed,1-exceed
21
PAX CLSS L2 API Programming Guide
3.6 Clss_TransParam
Clss_TransParam
typedefstruct{
unsigned long ulAmntAuth;
unsigned long ulAmntOther;
unsigned long ulTransNo;
unsigned char ucTransType;
unsigned char aucTransDate[4];
unsigned char aucTransTime[4];
}Clss_TransParam;
Parameters Description
3.7 Clss_ReaderParam
Clss_ReaderParam
22
PAX CLSS L2 API Programming Guide
typedefstruct{
unsigned long ulReferCurrCon;
unsigned short usMchLocLen;
unsigned char aucMchNameLoc[257];
unsigned char aucMerchCatCode[2];
unsigned char aucMerchantID[15];
unsigned char AcquierId[6];
unsigned char aucTmID[8];
unsigned char ucTmType;
unsigned char aucTmCap[3];
unsigned char aucTmCapAd[5];
unsigned char aucTmCntrCode [2];
unsigned char aucTmTransCur[2];
unsigned char ucTmTransCurExp;
unsigned char aucTmRefCurCode[2];
unsigned char ucTmRefCurExp;
unsigned char aucRFU[3];
}Clss_ReaderParam;
Parameters Description
23
PAX CLSS L2 API Programming Guide
3.8 Clss_SchemeID_Info
Clss_SchemeID_Info
typedefstruct{
unsigned char ucSchemeID;
unsigned char ucSupportFlg;
unsigned char ucRFU[2];
}Clss_SchemeID_Info;
Parameters Description
24
PAX CLSS L2 API Programming Guide
3.9 Clss_VisaAidParam
Clss_VisaAidParam
typedefstruct{
unsigned long ulTermFLmt;
unsigned char ucDomesticOnly;
unsigned char ucCvmReqNum;
unsigned char aucCvmReq[5];
unsigned char ucEnDDAVerNo;
}Clss_VisaAidParam;
Parameters Description
25
PAX CLSS L2 API Programming Guide
3.10 Clss_PbocAidParam
PBOC_AID_PARAM
typedefstruct{
unsigned long ulTermFLmt;
unsigned char aucRFU[4];
}Clss_PbocAidParam;
Parameters Description
26
PAX CLSS L2 API Programming Guide
3.11 Clss_MCAidParam
MC_AID_PARAM
typedefstruct{
unsigned long FloorLimit;
unsigned long Threshold;
unsigned short usUDOLLen;
unsigned char uDOL[256];
unsigned char TargetPer;
unsigned char MaxTargetPer;
unsigned char FloorLimitCheck;
unsigned char RandTransSel;
unsigned char VelocityCheck;
unsigned char TACDenial[6];
unsigned char TACOnline[6];
unsigned char TACDefault[6];
unsigned char AcquierId[6];
unsigned char dDOL[256];
unsigned char tDOL[256];
unsigned char Version[3];
unsigned char ForceOnline;
unsigned char MagAvn[3];
unsigned char ucMagSupportFlg;
unsigned char ucRFU;
}Clss_MCAidParam;
Parameters Description
Threshold Threshold
27
PAX CLSS L2 API Programming Guide
28
PAX CLSS L2 API Programming Guide
3.12 Clss_ProgramID
Clss_ProgramID
typedefstruct CLSS_PROGRAMID_INFO
{
unsigned long ulRdClssTxnLmt;
unsigned long ulRdCVMLmt;
unsigned long ulRdClssFLmt;
unsigned long ulTermFLmt;
unsigned char aucProgramId[17];
unsigned char ucPrgramIdLen;
unsigned char ucRdClssFLmtFlg;
unsigned char ucRdClssTxnLmtFlg;
unsigned char ucRdCVMLmtFlg;
unsigned char ucTermFLmtFlg;
unsigned char ucStatusCheckFlg;
unsigned char ucAmtZeroNoAllowed;
unsigned char aucRFU[4];
}Clss_ProgramID;
Parameters Description
ulRdClssTxnLmt Reader Contactless Transaction Limit
ulRdCVMLmt Reader CVM Limit
ulRdClssFLmt Reader Contactless Offline Floor Limit
ulTermFLmt Terminal Offline Floor Limit
29
PAX CLSS L2 API Programming Guide
0- Deactivated
1- Active and exist
2- Active but not exist
3.13 Clss_ProgramID_II
Clss_ProgramID_II
typedef struct CLSS_PROGRAMID_II
{
unsigned char aucRdClssTxnLmt[6];
unsigned char aucRdCVMLmt[6];
unsigned char aucRdClssFLmt[6];
unsigned char aucTermFLmt[4];
unsigned char aucProgramId[17];
unsigned char ucPrgramIdLen;
30
PAX CLSS L2 API Programming Guide
Parameters Description
ucDynamicLimitSet Dynamic Limit Set Id. 0xFF - Default DRL Set. Only
used in AMEX transaction.
31
PAX CLSS L2 API Programming Guide
3.14 EMV_APPLIST
EMV_APPLIST
typedefstruct{
unsigned char AppName[33];
unsigned char AID[17];
unsigned char AidLen;
unsigned char SelFlag;
unsigned char Priority;
unsigned char TargetPer;
unsigned char MaxTargetPer;
unsigned char FloorLimitCheck;
unsigned char RandTransSel;
unsigned char VelocityCheck;
unsigned long FloorLimit;
unsigned long Threshold;
unsigned char TACDenial[6];
unsigned char TACOnline[6];
unsigned char TACDefault[6];
unsigned char AcquierId[6];
unsigned char dDOL[256];
unsigned char tDOL[256];
unsigned char Version[3];
unsigned char RiskManData[10];
}EMV_APPLIST;
Name Description
AppName[33] Local application name. The string ends with '\x00' and is
32 bytes in maximum.
Terminal can prompt for the application label or
application preferred name of the IC card EMV application
to let the cardholder to choose. But the language of the
application label or application preferred name may be
English and not convenient for the operator. In order to
display the application name in local language, the kernel
offers the setting of AppName.
If AppName[0]=0, terminal will prompt for the application
label or application preferred name.
32
PAX CLSS L2 API Programming Guide
33
PAX CLSS L2 API Programming Guide
3.15 Clss_PbocTornConfig
Clss_PbocTornConfig
typedefstruct PBOC_TORN_CONFIG
{
long lTornMaxLifeTime;
unsigned short usTornLogMaxNum;
unsigned short usTornSupport; //1 -Support torn Log; 0 - Not
Support.
unsigned char ucTornRFU[4]; //RFU
}Clss_PbocTornConfig;
Parameters Description
34
PAX CLSS L2 API Programming Guide
35
PAX CLSS L2 API Programming Guide