Professional Documents
Culture Documents
(PointTerminal)
Document Type
Version
Date
Confidentiality
By
This Document is the property of Point Transaction Systems A/S. It is transferred under the conditions of
Active Non-Disclosure.
Use of this document is subject to the terms of this NDA (Non Disclosure Agreement).
This document will be returned under request to Point Transaction Systems A/S.
PointTerminal OCX
Side 1
Index
1. POINTTERMINAL
2. INTERFACE
2.1 Types
2.1.1 Configuration id Types
2.1.2 Return Codes
2.1.3 Terminal Return Codes
2.1.4 Transaction Types
2.1.5 Currency Codes
2.1.6 Card Transaction Return Codes
2.1.7 Administration Types (functions)
2.1.8 Callback Types (event ids)
2.1.9 Token Data Types
2.1.10 Properties Command Types
2.1.11 Extended Amount
2.1.12 Key Entry of carddata
8
8
8
8
9
9
9
9
10
11
11
11
11
2.2. Methods
2.2.1 SetConfiguration
18. Contactless
19. SetAuthCode
2.2.2 OpenTerminal
2.2.3 CloseTerminal
2.2.4 DisconnectTerminal
2.2.5 CardTransaction
2.2.6 AbortTransaction
2.2.7 Administration
2.2.8 SelectAdministration
2.2.10 PreviousTransaction
2.2.11 AboutBox
2.2.12 VersionInfo
2.2.13 PrintFile
2.2.14 PrintLatestReceipt
2.2.15 GetLatestReceiptIndex
2.2.16 ReadToken
2.2.17 AdminProperties
12
12
18
18
19
20
20
21
23
24
25
27
27
27
28
28
28
29
29
31
31
32
32
32
32
33
33
33
34
34
34
35
35
35
36
PointTerminal OCX
Side 2
4. FLOW
4.1 Transaction Flow
4.2 External Card Transaction flow
36
37
37
37
37
39
40
40
40
42
42
43
APPENDIX A, PRINTING
45
46
APPENDIX C, TOKENS
47
APPENDIX D, TRACE
48
PointTerminal OCX
Side 3
1. PointTerminal
This section describes the interface between Point payment terminals using PointTerminal.
PointTerminal is an ActiveX control for application implementation in the Windows XP (32-bit)
environment, developed and supported by Point A/S, and its main purpose is to simplify the
interface to the SMASH/XENTA terminal, and comply with the PBS OTRS 2.5 specifications.
PointTerminal ActiveX interface handles the certification requirements regarding:
Populate and display terminal dialog-interfaces.
Enabling the user to abort a transaction.
Handles advanced issues like verify signature and advice transfer flag.
Handles token transactions e.g. Original Authorization transaction
Can optionally do the receipt printings.
Implements an optional transaction preresult callback to ensure the application is alive.
PointTerminal includes a method that can call user selected administrative functions.
In addition PointTerminal also include a management method that supports all administrative
functions available in the terminal.
The objective for PointTerminal is to give the ECR access to do the basics:
Make different types of transactions.
Handle administrative functions e.g. to do the end of day settlement.
Create reports
Handle printing and backup of receipts
PointTerminal OCX
Side 4
PointTerminal OCX
Side 5
PointTerminal OCX
Side 6
2. Interface
The ActiveX control communicates with the user ECR application using a dispatch map and a
number of methods and an event interface.
PBS
(Dialog)
ECR
Application
dll lib
Terminal
Control
Engine
ActiveX
Process Overview
The overview shows that the terminal connects to the ActiveX Engine part through the
FlexDriver.dll (implemented as a lib). The Engine communicates with the ActiveX Control part
through the dispatch map.
The Control part is controlled by the user ECR application through the methods, the event
interface, and handling of the dialogs.
Note that the Engine runs in its own windows thread (normal priority), and that the Control part
runs in the user ECR applications thread.
Since the dialogs are displayed in the user thread and are required to be displayed a number of
seconds; the user ECR application must make sure the Control code can execute proper.
With the addition of a stronger typelib from version 2.4.x.x, type check for e.g. transaction type,
administration functions and callback ids must be added to application code.
Some methods and functions require that the terminal is configured to include these. E.g. the
extra receipt information (binary receipt) is only transmitted from the terminal if configured to
transmit the extra overhead information. The terminal and/or NETS and/or the credit/payment
card do not support all transaction types. Consult Point, NETS and/or the card issuer for more
information.
PointTerminal OCX
Side 7
2.1 Types
2.1.1 Configuration id Types
typedef enum Configuration {
Connection=0,
Printing,
Card,
SetAmount,
DialogOkTimeout,
Trace,
GetAmountFee,
SetAmountFee,
ExtendedReceiptInfo,
GetStanPan,
Timer,
SetAmountGratuity,
PreResult,
ReceiptBackup,
DialogErrorTimeout,
PrinterQueueDelay,
SetExtendedAmount,
GetExtendedAmount,
Contactless,
SetAuthCode,
SetEIEdataReceived,
SetEIEdata2Host,
} ConfigurationType;
2.1.2 Return Codes
typedef enum ReturnCode{
OK=0,
NotOK,
} ReturnCodeType;
2.1.3 Terminal Return Codes
typedef enum TerminalReturnCode {
Success=0,
Error,
FileReadError,
PortInitError,
SwVersionError,
NoResponseError,
ComPortError,
DatalinkError,
InternalError,
CommunicationTimeoutError,
LicenceError,
ConnectError,
SystemError,
NoReceiptState=19,
(will not appear from terminal SW version 3.4)
GeneralError=255,
} TerminalReturnCodeType;
PointTerminal OCX
Side 8
UnlockReceipt,
(not relevant from terminal SW version 3.4)
PbsSync,
PointSync,
SendLog,
ClearDataStore,
ProgramDownload,
ParameterDownload,
PanTableDownload,
TlcmdbTableDownload,
TlcmdbTableRestore,
ContrastUp,
ContrastDown,
RestartTerminal,
BackLightOn = 23,
BackLightOff,
NetworkReport,
DccRatesReport,
GratuityReceipt,
DeleteDataStoreAdvice,
AdviceForward,
File5StatusReport,
UpdateDccRates = 33,
UpdatePSAM,
IpRoutingIdel
UpdateSalt,
PctReport,
TcsReport,
TpropsCVSreport,
EventReport,
Idle,
} AdministrationType;
2.1.8 Callback Types (event ids)
typedef enum CallBack {
DataForPrint=0,
AcceptCard=2,
ChangeAmount,
TransactionResult,
ChangeAmountFee,
ReceiveAmountFee,
ExtendedReceipt,
StanPan,
TransactionStatus,
TimerTick,
ChangeAmountGratuity,
GetAuthorisation,
PutAuthorisation,
StopList,
TerminalId,
TransactionPreResult,
DccAmount,
AdminResult,
ChangeExtendedAmount,
ChangeCurrency,
PointTerminal OCX
Side 10
EIEdataReceived,
EIEdata2Host,
DialogIsClosing = 255,
} CallbackType;
2.1.9 Token Data Types
typedef enum TokenData {
Tokendata,
AdditionalData,
DccData,
} TokenDataType;
2.1.10 Properties Command Types
typedef enum PropertyFunc
{
PropsNone,
PropsGet,
PropsPrereceipt,
PropsdeleteDataStoreAdvice,
PropsInternal,
PropsAdviceReport,
PropsSetBatchNumber,
} PropertyCommandType;
2.1.11 Extended Amount
typedef enum ExtendedAmount
{
AmountAmount,
AmountFee,
AmountGratuity,
AmountVat,
} AmountType;
2.1.12 Key Entry of carddata
typedef enum KeyEntryT
{
KeyEntryOff,
KeyEntryOn=0x80,
} KeyEntryType;
PointTerminal OCX
Side 11
2.2. Methods
The PointTerminal.ocx ActiveX component implements a number of methods derived from
Windows ActiveX (OLE) environment, like ProductName, ProductVersion, CompanyName, and
its own methods described in the following.
2.2.1 SetConfiguration
SetConfiguration transfers required configuration parameters to the ActiveX Control. The user
application must configure all mandatory parameters, before using other methods of the ActiveX
control; otherwise the control process will fail. The parameters are outlined below, and they are
explained in further details in subsequent section. Bold indicates default setting.
If the SetConfiguration function returns false (0), then the process logs the event and the
parameters in the trace file.
NOTE: To enable trace it is important that the SetConfiguration Trace option is called as the first
SetConfiguration call in the start of the application. Using the following sequence ensure that
trace files are valid:
SetConfiguration(1,0,c:\\kasseXXXpath\\bon.txt,);
SetConfiguration(5,6,,);
Other SetConfiguration calls.
Method:
SetConfiguration - configure
Conf_ID.
0: Connection parameters.
Connection to terminal using Serial interface (RS232) or Ethernet (TCP/IP).
This parameter is mandatory.
parm1
parm2
parm3
Examples:
PointTerminal OCX
Side 12
2: Card options.
The user application will receive the first eight digits of the card number and the crc as
an event during the transaction flow.
When set options for cards are enabled the user application can accept (return 1) or
reject the card number (return 0).
When disabled the ActiveX engine always replies accept to the terminal, and the PCI
padded cardnumber is saved in the specified card number file. This parameter is
optional.
parm1 = 0: card confirm disabled, 1= card confirm enabled.
parm2 = Full path and filename of card number file, c:\card.txt
parm3 = Not used
Example:
<ActiceX object_>SetConfiguration (2,1,C:\card.txt,)
PointTerminal OCX
Side 13
3: SetAmount.
Set options for transaction amount. If enabled the user application has the option to
change the transaction amount by returning a new amount value in event id 3.
This event arrives after the card number is available giving the option to change the
amount based on the card number and overrule the amount set in CardTransaction.
This parameter is optional.
parm1 = 0: set amount is disabled, 1: set amount is enabled.
parm2 = Not used
parm3 = Not used
Example:
<ActiveX object_>SetConfiguration(3,1,,)
4: TimeOutOK
Set dialog timeout of the transaction dialog for transaction OK (approved).
If not set the dialog will automatically close after 3 seconds.
If set to 0 (zero) the dialog will not close automatically. (See parameter 14 for timeout
when transaction not approved).
This parameter is optional.
parm1 = 3 (seconds).
parm2 = Not used
parm3 = Not used
Example:
SetConfiguration (4,3,,) (default 3 seconds)
5: Trace
Set trace options. If enabled trace files are generated.
PointOcxTrace2500.txt traces at the ActiveX level 1-3.
PtFxDrTr2300.txt traces on the dll level 2-3.
flxComTrace.txt traces the RS232/IP low level interface (if selected) 3.
Trace 4 enables traces trace files is reset by the OpenTerminal method.
Trace 5 enables traces appended to files (no reset).
Trace files are placed in the directory defined by printer options parm2.
This parameter is optional, but called as the first configuration parameter if used.
parm1 = 0: OCX Trace disabled (only PtFxDrTr2300.txt enabled, disable with 16)
1-3: Trace enabled,
4: Trace plus enabled (flxComTrace.txt append)
5: Trace plus append enabled (PointOcxTrace2500.txt append)
6: Trace plus (all files and append)
parm2 = Not used
parm3 = Not used
Example:
SetConfiguration (5,4,,)
PointTerminal OCX
Side 14
NOTE: The terminal must be configured to support trace ([FLXTRACE] in param.ini contact Point). For best result and traces for Point use Trace plus (4);
Example:
SetConfiguration (9,1,,)
10: Get dll timer event
Get dll timer event implements a call-back from the low level communication layer in
event number is 10, and is intended to avoid total blocking in case of communication
errors (timeouts). If used the application must close and disconnect the terminal before
unloading the ocx object.
This parameter is optional.
parm1 = 0: Get timer event disabled, 1: get timer event enabled.
parm2 = Not used
parm3 = Not used
Example:
SetConfiguration (10,1,,)
11: Set Amount Gratuity
Set amount gratuity options. If enabled the user application can add a transaction
gratuity for OriginalSignatureAuthorization transactions in event number 11.
This parameter is optional.
parm1 = 0: Set amount gratuity is disabled, 1: set amount gratuity is enabled.
parm2 = Not used
parm3 = Not used
Example:
SetConfiguration (11,1,,)
12: PreResult option.
PreResult is used to tell the terminal that the user application (ECR) is alive before the
receipt is sent to the user application (ECR).
The application must send a response (161 decimal) to this event indicating alive;
otherwise the transaction will be rejected.
When disabled the ActiveX engine handles the response.
This parameter is optional.
parm1 = 0: preresult disabled, 1= preresult enabled.
parm2 = Not used
parm3 = Not used
Example:
<ActiceX object_>SetConfiguration (12,1,,)
PointTerminal OCX
Side 16
Backup is used to automatically backup receipts. Note that administrative reports (e.g.
terminal rapport) are treated as receipts.
If enabled the ActiveX will save a copy of the latest number of receipts in files named as
the receipt file concatenated with a number. If the receipt file is defined to, c:\bon.txt,
then the first backup file is c:\bon.txt1, next c:\bon.txt2 and so on.
At start-up the ActiveX will first overwrite the oldest backup file. The index to the latest
backup file is found using the GetLatestReceiptIndex() method.
If Autoprint is selected the minimum number of backupfiles is 4.
This parameter is optional.
parm1 = 0: Backup disabled, 1= backup enabled.
parm2 = Number of backups.
parm3 = Not used
Example:
<ActiceX object_>SetConfiguration (13,1,8,)
14: TimeOutError
Set dialog timeout of the transaction status dialog if an Advice is received.
The status dialog will automatically close after the specified time in seconds if set. If not
set the dialog will not close automatically.
This parameter is optional.
parm1 = 6 (seconds).
parm2 = Not used
parm3 = Not used
// 6 is specified in OTRS
Example:
SetConfiguration (14,6,,) (0 not allowed)
PointTerminal OCX
Side 17
PointTerminal OCX
Side 18
2.2.2 OpenTerminal
OpenTerminal connects the ActiveX control to the terminal and opens it, i.e. the terminal
displays change from Lukket to Terminalen er klar.
Best practice is that the application keeps track of the connection status of the terminal, and
issues the correct method sequence: OpenTerminal, CloseTerminal and DisconnectTerminal.
Its important in error handling situations not to include these methods in program loops.
(Note that if the terminal is not connected when the OpenTerminal function is called, then the
PointTerminal automatically tries to connect to the terminal). See Appendix C.
Method:
OpenTerminal -
as TerminalReturnCode
0 Connect/open successful
1 file error
2 file read error
3 Port initialising error
4 Software not compatible
5 Terminal not responding
6 Com port already open error
7 Datalink error (no connection)
8 Internal function error
9 Communication timeout
10 Connect licence available in terminal
11 Internal connect error
12 System Error (e.g. No PSAM)
19 Terminal Open but in No receipt state (not relevant
from terminal SW version 3.4)
255 - General internal OCX connect/open error
PointTerminal OCX
Side 19
2.2.3 CloseTerminal
CloseTerminal closes the terminal, i.e. the terminal display change from Terminalen er klar to
Velkommen.
Method:
CloseTerminal
as TerminalReturnCode
0 Connect/close successful
1 Connect/close error.
12 SystemError (e.g. no PSAM)
2.2.4 DisconnectTerminal
DisconnectTerminal disconnects the ActiveX control from the terminal, i.e. the terminal display
change from Velkommen to Lukket.
Method:
DisconnectTerminal
as TerminalReturnCode
0 Disconnect successful
1 Disconnect error
12 SystemError (e.g. no PSAM)
PointTerminal OCX
Side 20
2.2.5 CardTransaction
CardTransaction is the method to initiate and start a payment transaction.
Transaction type 0, 2, 3, 4, and 10 are mandatory. If KeyEntryOn is added to the transaction
type, the terminal will ask for card data card number, expiration date and card verification.
Method:
CardTransaction
as CardTransactionReturnCode
0
Transaction started successful
11 Receipt file exist
12 transaction type not valid
254 OCX state error
255 General OCX state error.
type:
The following transaction types are supported for the debit/credit applications.
The OCX translates the type to defined OTRS transaction-type and merchant-initiative.
See the OTRS 2.5 specification for further descriptions of transaction-type, merchant-initiative
and transaction tokens.
0: Default EMV Transaction
Transaction-type = 0x00, merchant-initiative = 0x00
1: Forced PIN Transaction
Transaction-type = 0x00, merchant-initiative = 0x81
2: Forced Signature Transaction
Transaction-type = 0x00, merchant-initiative = 0x82
3: Refund Transaction
Transaction-type = 0x01, merchant-initiative = 0x00
4: Offline Transaction
Transaction-type = 0x00, merchant-initiative = 0x60
5: Original PIN Authorization Transaction
Transaction-type = 0x02, merchant-initiative = 0x00
6: Original Signature Authorization Transaction
Transaction-type = 0x02, merchant-initiative = 0x82
PointTerminal OCX
Side 21
Currency:
ISO 4217 Currency code:
DKK = 208
ISK = 352
JPY = 392
NOK = 578
SEK = 752
CHF = 756
GBP = 826
USD = 840
EUR = 978
// DK Kroner
// IS Kroner
// JP Yen
// N Kroner
// S Kroner
// SW Francs
// GB Pound
// US Dollar
// Euro
If the transaction is started successful the immediate return code is 0, then the final transaction
result is returned in the CallBack event function with eventId 4.
NOTE: It is important that the ECR implementation do not display dialogs during the transaction.
PointTerminal OCX
Side 22
2.2.6 AbortTransaction
AbortTransaction is the method for the user application to abort a transaction previously started
with the CardTransaction method. Only during the first part of the transaction flow, aborting is
possible. This method is handled by the ActiveX control status dialog, and only exposed to the
user application for historical reasons.
Method:
AbortTransaction -
true
false
PointTerminal OCX
Side 23
2.2.7 Administration
Administration is the method for the user application to initiate administrative functions on the
terminal. All the listed administrative functions are implemented in this method.
Functions 1, 12 and 20 are mandatory in the user application. The rest are optional but consider
which ones are practical for everyday use.
Method:
Administration -
as ReturnCode
0 function successful
1 function error
65539 Terminal in No receipt state (not relevant
from terminal SW version 3.4)
Function:
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21-22:
23 :
24 :
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
PointTerminal OCX
Side 24
38:
39:
40:
41:
42:
Pct Report
Tcs Report
Tprops CVS report
Print EventReport
Idle
NOTE: It is important that the implementation do not display dialogs during an administrative
procedure. If extra receipt information is enabled its event will include information for function 7
and 8, and zero for functions creating reports.
RECOMENDATION: Install all functions its a great help during instalation and in case of service
on a terminal. Hide the more technical functions from the daily user, allowing only superusers,
service users or tech. users access to all functions.
2.2.8 SelectAdministration
The SelectAdministration method implements the selection of an administrative function listed
above, as a dialog including a combo-box list that include all administrative functions.
Implementing this function unlocks all administrative functions for the user.
Use the Administrative method if some administrative functions should remain locked (password
protected) for the user.
Method:
SelectAdministration
as AdministrationType
0 - no or nonexistent function selected
Selected function as listed above.
RECOMENDATION: Always password protect this function, only super users, service users or
tech. users, should be allowed to access all administrative functions.
PointTerminal OCX
Side 25
2.2.9 CompleteExtCardTransaction
The CompleteExtCardTransaction method completes an external (local) card transaction.
Method:
CompleteExtCardTransaction
as ReturnCode
0 - method completed successful
1 - method not completed successful
PointTerminal OCX
Side 26
2.2.10 PreviousTransaction
The PreviousTransaction method (called TransactionStatus in earlier versions) returns the
status of a previous transaction.
This method is used in conjunction with the SetConfiguration id 9, Get card number and
transaction reference.
For terminals configured with PSAM version 50 and later, data of the last eight approved
transactions are saved in the PSAM. The data of these transactions are retrieved using the
unique transaction reference (stan), as search key.
The data are returned as event, CallBack, id 9.
Method:
PreviousTransactionStatus -
as CardTransactionReturnCode
0
Command started successful
12 KeyT error
254 OCX state error
255 General OCX state error.
2.2.11 AboutBox
AboutBox displays the About dialog with version information.
Method:
AboutBox -
2.2.12 VersionInfo
The VersionInfo method returns the version number of the ActiveX as an integer, where the
most significant 8 bits is the product version MS, etc. E.g. version 2.3.0.0 is returned as hex
value 0x02030000, or decimal 33751040.
Another method to get version information is to use the inherited windows method
ProductVersion that returns a string with version information.
Method:
VersionInfo -
version as integer
PointTerminal OCX
Side 27
2.2.13 PrintFile
The PrintFile method is active when Autoprint is enabled. Use PrintFile to print a generated
receipt or report file. The file encoding shall be in the ISO-8859-15 format.
Method:
2.2.14 PrintLatestReceipt
The PrintLastReceipt method is active when Autoprint is enabled, or when Backup is configured.
The receipt is always printed with the Header **** KOPI ****.
Method:
Input: Index
- index to backup receipt file (0 for all)
Footer - Footer to add to print
Return:
2.2.15 GetLatestReceiptIndex
The GetLatestReceiptIndex method returns the index to the latest receipt backup.
Method:
GetLatestBackupIndex -
PointTerminal OCX
Side 28
2.2.16 ReadToken
The ReadToken method reads a token from a file and returns its data as a comma-separated
string. The token is identified by its filename not its reference number. See Callback event id 12.
Get Token reference number for an explanation about token reference and token filename.
Method:
Input: what
Tokendata returns data from token format:
<type>,<ver>,<pan|aid>,<amount>,<curr>,<exp>,<VPKca>,
<VK>,<ALGH>,<Merchant>,**
AdditionalData returns additional data from token format:
<pan>,<cvm>,<OriginalRef>,
DccData returns dcc data from token (if any)
<dccamount>,<dccamountfee>,<dccamountextra>,
<dcccurr>,<exp>,<dccrate>,<clerkid>,
tokenfile filename of token
Return:
Example:
TokenData: 'EMV,1,A0000000031010,457,USD,2,02,01,01,0107601100,'
AdditionalTokenData: '4761739001010010,4,000468,'
DccData: '1903,0,0,DKK,2,0.1880,0,'
** See OTRS for more information
2.2.17 AdminProperties
The AdminProperties method extends the Administration method and is used when it is
necessary to get or set properties.
Method:
Input: cmd
Props for cmd
PropsGet
PropsPrereceipt
PropsDatastore
PointTerminal OCX
Side 29
PropsInternal
PropsAdvice
PropsSetBatchNumber
PropsSendEventLog
PropsRemoveEventLog
:
:
:
:
:
<PARAM1>,<PARAM2>,..,<PARAMX>
<ADVICE_FILE_INDEX>
<BATCHNR>,<CURRENCY or DCC>
<IPADDRESS>
<IPADDRESS>
Return: ReturnCodeType
PointTerminal OCX
Side 30
Not all events are optional. In any case all events must give a return (pResult) value, e.g. use
default or else in select or switch statements, and return 1 if not otherwise stated.
An implementation using a select (or switch) statement is recommended.
In this VB example a DoEvents is called to avoid blocking other threads.
Private Sub PointTerminal1_CallBack( _
ByVal eventID As Long, _
ByVal code As Long, _
ByVal text As String, _
pResult As Long)
On Error Resume Next
DoEvents
Select Case eventID
Case 0 'Data ready for print
Case 2 'PCI padded Cardnumber available
.
Case 255 'Dialog is closing
Case Else
End Select
Exit Sub
ErrorHandler:
End Sub
PointTerminal OCX
Side 31
System codes:
0x10000 (65536) Unknown error
0x10001 (65537) Terminal is not ready
0x10002 (65538) Connection is broken (unconnected)
0x10003 (65539) Terminal in no receipt state, not relevant from terminal SW version 3.4.
If code is 0 then the transaction completed successfully, but the
receipt is missing or not printed.
0x10004 (65540) Software is not compatible and the transaction not started
0x10005 (65541) No licence in terminal. Contact Point Customer Service
0x10006 (65542) Error in token transaction
0x10008 (65544) System error
0x10009 (65545) Internal state error
0x1000a (65546) Error in token
0x1000b (65546) Ip routing error (cannot connect)
Remark
As an option the PointTerminal can play a wav file in the transaction flow:
SoundOK.wav will play in case of a successful transaction.
SoundError.wav will play in case of a unsuccessful transaction.
SoundAlert.wav will play in case of question in the dialog during the transaction.
That is also the case of a advice transfer flag or verify signature request.
The sound files are optional, and only played if present in the same directory where the
ActiveX is excecuted.
EventID 5: Set Amount Fee
If Set Amount Fee is configured to active, this event is used to return the fee amount of
the transaction, by setting pResult to the fee amount. This amount value will overrule
the fee amount calculated by the terminal. The function is mandatory if SetAmountFee is
configured active.
EventID 6: Get Amount Fee
If Get Amount Fee is configured to active, this event returns the fee amount calculated
by the terminal, to the user application. The fee amount is presented as an ASCII string
in text, e.g. 50.
EventID 7: Get extra receipt information
If Get Extra Receipt Info is configured to active, this event returns extra receipt
information, to the user application. The information is returned as a separated string (;)
in text and includes the following tokens for each receipt:
Timestamp - Timestamp (the OCX time of transaction) yyyy-mm-dd hh:mm
PAN,
- PCI padded card number (primary account number)
Total,
- Total amount in smallest currency unit in merchant currency
Extra,
- Extra amount in smallest currency unit (not used)
Fee, - Fee amount in smallest currency unit in merchant currency
Gratuity, - Gratuity amount in smallest currency unit in merchant currency
Currency,- ISO 4217 Currency code if dcc the selected currency code
STAN, - Unique transaction reference number
PSAMCrator - PSAM Creator
PointTerminal OCX
Side 33
PSAM, - PSAM id
Action Code, - Transaction result code
Asw1Asw2 - PSAM return code
Cvm Status, - Cardholder verification method see EMV specs
Aut. Code, - PBS authorization code
Card Name, - Card name
Term Id, - Terminal identification number
Number, - Merchant PBS number
Name, - Merchant name
City, - Merchant city
Address, - Merchant address
Zip,
- Merchant zip code
Phone, - Merchant phone number
cvr,
- Merchant cvr number
Ref. Nr.
- User application reference number supplied with the CardTransaction method.
DCCrate - DCC rate if dcc used else rate is 1.0000.
CRC
- Card reconciliation number
Batch
- batch number
Cancel - cancellation of current transaction allowed or not
Vat
- Vat amount (if active) in merchant currency
eReceipt E receipt token (if active)
Note that the terminal must be configured to send extra receipt information, and that rejected
transactions creating no receipts generates empty strings, e.g. 1970-01-01 01:00;;0;0;0;0..
PointTerminal OCX
Side 34
e.g.: "1000,USD,2"
// USD 10.00
PointTerminal OCX
Side 37
It is the responsibility of the application to save this information for later retrieval of tokens.
CallBack pResult must be set to 1.
See OTRS 3.3 and Issuer documentation for more details.
This method is mandatory if performing EIE transactions.
PointTerminal OCX
Side 38
PointTerminal OCX
Side 39
PointTerminal OCX
Side 40
From version 2.4 a stronger Type Library is added to the PointTerminal.ocx. If changing
application code and using the newer ActiveX version please change code to reflect the stronger
type check.
You may have to build a new Type Library, e.g. by remove the old ActiveX from your
development environment and adding the new. You may use the Microsoft utility OleView to
inspect the type library
You may also use the Windows Forms ActiveX Control Importer (Aximp.exe).
Consult your development environment documentation for more information.
The type check include these typedefs
ReturnCode, TerminalReturnCode, CardTransactionReturnCode, CallbackType,
ConfigurationType, TransactionType, CurrencyType, AdministrationType
and affect these methods
SetConfiguration, OpenTerminal, CloseTerminal, CardTransaction, Administration,
CompleteExtCardTransaction, SelectAdministration, TransactionStatus, DisconnectTerminal,
ConnectTerminal, CallBack
PointTerminal OCX
Side 41
4. Flow
4.1 Transaction Flow
PointTerminal OCX
Side 42
A Local Card Transaction is an option available only if activated through a parameter download,
meaning that the option requires a special setup in Points Terminal Management System, and
that these settings are downloaded into the terminal through a parameter download.
If a local pan-file is present in the terminal, and a card number used in a transaction match one
of the card ranges defined in this file, then the transaction is handled as a local card
transaction.
As an extra option the cardholder can be prompted to confirm the amount via the terminal
display. In this case the user application must return 3 in the CallBack EventId, otherwise the
application returns 1 for not acknowledge and 0 for acknowledge of the transaction.
PointTerminal OCX
Side 43
PointTerminal OCX
Side 44
APPENDIX A, Printing
The ActiveX is approved to handle Windows printers. The printer driver must be configured to
use the windows print spooler queue, to start printing immediately, and to use hardware
handshake. Note that Point cannot support drivers and some drivers are difficult to install.
When the ActiveX is configured to Autoprint the receipts, all output to the printer bypass the
printer driver and sends it directly to the defined local or networked printer. The ActiveX will
automatically backup the four latest receipts in files named as the receipt file, concatenated with
number 1 to 4, and an internal index will point to the latest (newest) file. E.g. if the receipt file
name is C:\bon.txt, the backup files are named C:\bon.txt1, C:\bon.txt2, C:\bon.txt3, and
C:\bon.txt4.
Note that administrative reports are treated as receipts, and also backed up and that some
transactions (e.g. signature) use two backup files.
The ActiveX uses character encoding according to ISO 8859-15. A translation and command
table is supported, intended for simplifying configuration of POS printers with simple control and
character translation. The table defines control commands (e.g. ESC/POS) send to the printer
before and after the receipt, and can translate the characters of the receipt text.
The table is named ExtendedAsciiPrint.txt and if present, it must be located in the same
directory as your ECR application, (the application using the ActiveX).
The table entries define entries for indexes > 127 to value (in hex) and sends value to printer.
Format: <index> <value>[,<value>,..] , where value is a two char hex value, 00 to FF.
If index is PRO (prologue) or EPI (epilogue) the value (up to 250 hex bytes, comma separated in
one line) is send (not translated) to the printer before (pro) and after (epi) the (translated) receipt
data.
This example shows the table contents for an Epson TM-T88III printer.
BD
PRO 1B,40,1B,74,10
EPI 1D,56,01,30
BC 8C ;
9C ;
The PRO part 1B, 40 (ESC, @) initialises the printer and 1B, 74,10 selects code table WPC1252.
The EPI part 1D, 56,01,30 execute a partial cut of the receipt.
The character entries BC 8C etc. defines character translation.
Since WPC1252 is similar to ISO 8859-15 these entries are only shown as an example, and are
not complete.
PointTerminal OCX
Side 45
The buttons and background of the dialogs are user configurable, by placing bitmap files in the
same directory as the ActiveX e.g. c:\Windows\System32\) and naming them:
PointTerminalOk.bmp
PointTerminalOkD.bmp
PointTerminalStop.bmp
If present PointTerminal.ocx will use the button bitmap files during dialog painting, using a BitBlt
function, copying the button bitmap to the corresponding dialog button.
The dialog background is painted using a StretchBlt function. In the Status Dialog the
background of the four status lines are painted using the upper left quarter of the bitmap with a
StrechBlt function. The StretchBlt function stretches or compresses the bitmap to fit the size of
the dialog item.
PointTerminal OCX
Side 46
APPENDIX C, Tokens
The output from an Authorization transaction (pin, signature, key or prepaid) is called a Token.
A Token is a string of data created by the PSAM for later use as input to the Capture
(Supplemental or Reversal) transaction. The first part of the token is in plaintext and includes the
necessary information that enables the ECR to handle the token. The actual token is enciphered
and signed.
The terminal adds additional information to the end of the token before sending the token to the
ECR, and removes this information before sending the token to the PASM. The additional
information includes extra information about the transaction including any dcc information.
The ActiveX saves the token automatically in the directory specified by configuration. The
filename is composed by combining the terminals id and the unique transaction reference
number to form a string like 00990198_000872.tok, terminal 00990198 and transaction
reference 000872.
When using the token for later capture (Supplemental or Reversal) the ECR uses the reference
number to identify the token, and the ActiveX compose the token filename using the terminals id.
If a token is used on another of the merchants terminal, the ECR must rename the token file to
include the new terminals id. E.g. rename to 0099199_000872.tok if used on terminal with id
0099199.
The ActiveX provide a method (ReadToken(..)) for reading the plaintext and additional data from
the token. The method uses the full tokenfilename to identify the token (not the transaction
reference number).
PointTerminal OCX
Side 47
APPENDIX D, Trace
Trace files is generated if the trace level is different from 16. Trace level is set by using
the SetConfiguration (5,4,,) method, or by configuring the terminals param.ini (contact
Point).
Value set in the terminal is overruled by value set in
SetConfiguration().
The table shows the trace file property for different levels.
File PtFxDrTr@XXXX.txt
flxComTrace.txt
Level
0
Cyclic
Inactive
Inactive
2
Cyclic
Reset
Inactive
3
Cyclic
Reset
Reset
4
Cyclic
Append
Reset
5
Cyclic
Reset
Append
6
Cyclic
Append
Append
16
Inactive
Inactive
Inactive
PointOcxTraceXXXX.txt
PointTerminal OCX
Side 48