Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

POSLink: Two Way Interface Specification

Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

CONTENTS

REVISION HISTORY ...... 4

INTRODUCTION ...... 8

COMMUNICATIONS PARAMETERS ...... 9 RS232 SERIAL PORT INTERFACE ...... 9 IP INTERFACE ...... 9 MESSAGE FRAMING AND CONTROL CHARACTERS ...... 9 MESSAGE FORMATS ...... 10 DATA FIELD ...... 10

MESSAGING ...... 16 GENERIC ERROR ...... 16 DISPLAY PROMPT ...... 17 STATUS POLL ...... 18 EFTPOS CANCEL ...... 21 INFORMATION ...... 22 CONFIRMATION (ASK) REQUEST ...... 23 PURCHASE, PURCHASE + CASH REQUEST ...... 26 MOTO PURCHASE ...... 29 SIGNATURE REQUIRED TRANSACTION ...... 31 SIGNATURE REQUEST...... 32 CASH OUT ...... 33 REFUND ...... 35 REFUND WITH MANUAL PAN ...... 37 LOGON ...... 38 PARAMETER DOWNLOAD ...... 40 TERMINAL TOTALS ...... 41 SETTLEMENT CUTOVER/CLOSE BATCH ...... 41 SETTLEMENT ENQUIRY / HISTORICAL SETTLEMENT ...... 44 REPRINT LAST RECEIPT ...... 45 QUERY CARD ...... 46 CARD STATUS CHECK...... 48

2 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

PRE-AUTH ...... 50 PRE-AUTH WITH MANUAL PAN ...... 52 PRE-AUTH COMPLETION ...... 54 PRE-AUTH CANCELLATION ...... 56 DELAYED CHARGE ...... 58 ADDITIONAL PRE-AUTH ...... 60

POS RECEIPT PRINTING ...... 62 PRINT POS RECEIPT ON TERMINAL ...... 62 HEADER & FOOTER CONFIGURATION FOR TERMINAL RECEIPTS ...... 64 REPORTS ...... 67 REPORT TYPE DEFINITIONS ...... 69 DIAGNOSTICS ...... 69

COMMANDS NOT SUPPORTED ...... 71

POWER FAIL RECOVERY ...... 71

MESSAGING TIMEOUTS ...... 71

SESSION ID MANAGEMENT ...... 73 SESSION ID CALCULATION ...... 73

DEVELOPER NOTES ...... 73

IP INTEGRATION ...... 74

SAMPLE SOURCE CODE ...... 75 CONTROL CHARACTER HANDLING ON SPECIFIC FIELDS ...... 75

RESPONSE CODES ...... 77

CARD TYPES ...... 81

3 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

REVISION HISTORY

Version Date Comments

1.0 Jun 08 • Release

1.1 Nov 08 • Support for Query Card details. • Added status “POL” message pair.

1.2 May 09 • Included STAN in response message

1.3 Apr 10 • Included truncated PAN in response message • Added support for IP

1.4 Apr 10 • Support for POS Display Prompt message

1.5 Sep 10 • EFTPOS Receipt printing via POS • POS receipt printing via Terminal (PRN) • Added “ID” field to be displayed on terminal • Added section on Messaging Timeouts • Support for new transaction types: ─ Tip Pre-Auth ─ Tip Add ─ Tip Void ─ Upload Tip Batch ─ Open Tab - Store ─ Open Tab - Recall and Close

1.6 Dec 10 • Support for POS handling of comms to bank

1.6.1 Jan 2011 • Re-introduced Query Card with positive table.

1.6.2 Jan 2011 • Include Track 1 in Query Card. • Added receipt data in Purchase response example

1.6.3 Feb 2011 • Account indicator in response • Open Tab – Delete supported • Customer receipt included in transaction response, Merchant receipt included in SIG request • Extended the Control Characters section to include DLE characters. This is required for TTX message, Receipt content and Query Card track data. • Added section for Sample Source Code

2.0 Feb 2011 • Revised Release

2.1 Mar 2011 • Changed “Receipt Config” to Txn Options • Txn Options now includes configurable CRD a/c • Added File (BIN) command for loading and versioning of files e.g. encrypted Card Prefix Table

4 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

2.2 Jun 2011 • Incorporated “ASK” Message for operator confirmation • Included spec version in POL message

2.3 Aug 2012 • Included Serial Number in POL response message

2.4 Nov 2014 • Included Status Flags in POL message • Card Type text included in response (as returned from host) • New command “DIA” for diagnostics retrieval • Added Management commands to support: ─ set TSPID ─ Lock/Unlock Terminal ─ Change Refund Password • Included Gateway IP address and port in TTX message

2.4.1 • Added Management commands to support: ─ Reset Refund Password ─ Parameter Download

2.4.2 Jan 2015 • Standardised order of MGT responses • Included response and display in all MGT responses and DIA • Appended Response (Code) to TTX response message • Added Response “17” to Response field • Extended POL Status Flags to include Keys and Parameters

2.4.3 Apr 2015 • DisplayType indicator added to DSP message • Moved TerminalSWVer from Diagnostic (DIA) to Status Poll (POL) • Added PCI compliant support for “manual” card entry

2.4.3b Apr 2015 • Include TSPID in POL response • Added DSP “DisplayType” values

2.5 Apr 2015 • Extended “Txn Options” parameter to include ─ Inline tipping ─ Surcharging • AdditionalAmount included in response messages • Added support for NFO message • Included POS Name, Version in POL request • Extended “ASK” request to support various inputs • Included Cardholder Name/Track1 in response • Extended BIN command to support offsets and large file capability • Extended PRN response to include Display and failed response example

2.5.1 May 2015 • Include TSPID in POL response • Added DSP “DisplayType” values

5 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

• TODO: Section on password protection, random #,etc • Modified “Txn Options” field

2.5.2 May 2015 • Update to Status Poll message response for serial number from 8 to 9 digits • Included Build, IC EXE, IC GUI, OCX & MARS versions in POL request • Update to Manual Card Entry Request (MCE) to include Mail Order, Telephone Order and Recurring • Update to Vendor Name and version in POL message • Update to Open Tab section to support new Pre-Auth ID for Pre-Auth, Pre-Auth Completion and Pre-Auth Cancellation messages

2.5.5 Jun 2015 • PDL moved out of Management Commands section

2.5.6 Jun 2015 • Clarified Txn Ref contents for TTX messages

2.6 Jul 2015 • Added DSC message

2.6.1 Jul 2015 • Power failure clarification

2.6.3 Sep 2015 • Added flag to various MT commands so that POS can cancel GUI input

2.7 Oct 2015 • Added Additional Purchase Data field

2.7.1 Oct 2015 • Added MT TLV command

2.7.2 Dec 2015 • Added new support for PPA command (Pending Txn)

2.7.3 Dec 2015 • Added new support for TMS Hash for BIN (send) command for 2-Piece PP-> MT Update

2.7.4 Feb 2016 • Added ‘B’ option for Receipt Required field of Txn Option flags

2.7.5 Feb 2016 • Add printer available field to Menu Select to improve transaction startup time.

2.7.6 Mar 2016 • Spec changes from PPM-24774 (DIA, POL request and responses, PPA message clarification)

2.7.8 Apr 2016 • Added Session ID field • Added new status codes • Added Host Response Code

2.7.9 Apr 2016 • Added PHD command to configure optional header and footer for financial receipts • Added flag to MT/CUR command to allow skipping of amount entry

6 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

2.8.1 May 2016 • Revised to 2016 standards incorporating changes to migrate terminals to the Verifone network. • Included commands that are not supported

2.8.2 Jun 2016 • Changed Session ID calculation • Added Pre-Auth commands • Added new report types to PPA command

2.8.3 Sep 2016 • Clarified BIN command field CRC32 size and presence

2.8.4 Dec 2016 • Added new Display Types for DSP command • Added Tipping & Surcharge variants NFO command • Added new Tagged Format for Optional Receipt Data

2.8.5 Jan 2017 • Addition of merchant name and currency prefix to POL responses • Addition of card types

2.8.6 • Added response code 26

2.8.8 May 2017 • Added FDR File Download Request (Mobility)

2.8.9 Jun 2017 • Clarified where Pre-Auth ID comes from in hospitality requests • Added PAN field to QCD response (AU Mobility)

2.8.10 Jun 2017 • Added Session ID to QCD request (AU Mobility)

2.8.11 Sep 2017 • Added DSP type for Application Selection

2.8.12 Sep 2017 • Added DSP types for Expiry and CVV entry

2.8.13 Oct 2017 • Added response code 84 for low battery error

2.8.14 Feb 2018 • Clarified removal of (all) Mobility Device IDs – TSP command

2.8.15 Mar 2018 • Clarified expectation POL unique sequence reference

7 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

INTRODUCTION

This document has been created to describe the technical requirements for POS and terminal to provide a two-way EFTPOS interface where: • POS initiates a transaction request • Transaction details are captured by the EFTPOS terminal • Transaction is sent to host for processing • Transaction outcome returned to POS for completion. The following diagram illustrates at high-level the message flow between devices.

As a minimum, the POS system MUST support the POL, PURCHASE, REPRINT and ASK message sets. If the POS supports Pre-Auth reports such as Print Pending, support must also be given to the PPA message type. Ensure the section on “Developer Notes” is reviewed. Failure to do so may impede chances of a successful certification.

8 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

COMMUNICATIONS PARAMETERS RS232 SERIAL PORT INTERFACE

The following table describes the default serial port communications protocol.

Baud Rate 9600 Parity None Data 8 bits, 1 stop bit Retries 3 retries Timeouts 3 seconds

IP INTERFACE

The POS system is to create a socket connection to the EFTPOS device upon initiation of EFTPOS tender type. For implementations not providing host comms (TTX) via POS, completion of the EFTPOS leg of the transaction will result in the POS system immediately closing the socket connection to the EFTPOS device. This will free the device for use with other POS systems. Please note that this is a mandatory requirement and failure to comply will result in a certification fail. For further integration requirements, please refer to IP Integration section on page 60. MESSAGE FRAMING AND CONTROL CHARACTERS

All messages are framed with STX and ETX characters and are followed by a longitudinal redundancy check byte (LRC). Message content is full 8-bit data. The DLE escape character (h ‘10’) will prefix any byte within the message content that may be mistaken for framing characters. The terminal will send an ACK/NAK in response to a POS request. Likewise, the POS must respond to terminal responses with an ACK/NAK. Control characters used for communications control:

Start of Text STX h '02' End of Text ETX h '03' Enquiry ENQ h ‘05’ Acknowledgment ACK h '06' DLE DEL h ‘10’ Negative ACK NAK h '15' Field Separator FS h ‘1C

In summary, DLE would be applied to message “content” as follows: 02 (STX) -> 0x10 0x02

9 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

03 (ETX) -> 0x10 0x03 05 (ENQ) -> 0x10 0x05 06 (ETX) -> 0x10 0x06 10 (DLE) -> 0x10 0x10 1C (FS) -> 0x10 0x1C Any field containing a COMMA will be replaced with a FS. This may be quite likely for any free format or binary fields e.g. Optional Receipt Data, TTX Bank Request/Response fields, Query Card Track data. Refer to Sample Source Code section. MESSAGE FORMATS

Messages are formatted as follows where SEQ and DATA components are comma separated.

STX SEQ DATA ETX LRC LRC

Element Length Value Description STX 1 0x02 Start of text - Signals start of message Seq/Ref# …12 Unique ASCII reference for this transaction Txn Data Variable Transaction specific ETX 1 0x03 End of text – Signals end of message LRC 1 XOR of all characters after STX until the end of packet including ETX

Note: 1. For any NAK the sender retries a maximum of 3 times. 2. Any failure to receive a response/ACK from the terminal, the POS should assume the device is busy processing and report accordingly. Multiple transmissions should not be attempted. DATA FIELD

The Data Field is a list of comma separated fields as defined in the Field Definition section of this document.

10 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

FIELD DEFINITIONS

The following describes all applicable fields referred to throughout this document and described above as “Txn Data”. Each field is always separated by a comma (‘,’).

Field Request/ Comment Response

Unique Sequence Both POS should generate a unique reference for each request. Reference If the terminal receives a request for a transaction with a Unique Sequence Reference identical to that of the last request, the previous response message will be immediately returned to the POS. This will effectively provide a response for the outcome of the last transaction. Note: This field may not be more than 16 characters in length.

Message Type Both Indicates transaction type. PUR – Covers Purchase and Purchase + Cash. Determined by optional Cash Amount field. Initiated from POS CSH – Cash only transaction. Initiated from POS REF – Refund transaction ENQ – Settlement Enquiry SET – Settlement Cutover TOL – Terminal Totals REP – Reprint Receipt LOG – Logon CAN – Cancel Transaction SIG – Signature authorisation. Initiated from Terml ERR – Invalid message received OTS – Open Tab Store OTM – Open Tab Store Manual PAN OTR – Open Tab Recall OTD – Open Tab Delete ASK – Confirmation Request PRP – Print

Merchant Number Both 1-8. Default to 1 unless required for multi-merchant terminals

Amount Purchase Both $$$$$$.cc To be included in Purchase.

Amount Cash Both $$$$$$.cc To be included in Purchase request if requiring cash

Card Type Response String representation of the card type used Refer to Card Types section for current list

11 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Card Expiry Request Expiry Date MM=Month, YY=Year. Used for manual card entry (Must no longer be populated due to PCI requirements)

Card Number Request Card PAN. Used for manual card entry (Must no longer be populated due to PCI requirements)

Cardholder Name Response Track1 Cardholder Name if present

DisplayType Request Terminal will provide an indication of the purpose of the message being requested for display.

ID Request Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Request Y/N field used for setting flags

B may be used for Receipt Required (prints receipt at terminal and returns receipt to POS)

T may be used for Receipt Required to return tagged data format to the POS instead of a formatted receipt.

Position Description Terminal Default 1 Receipt Required N 2 Allow Credit Account Y 3 Allow Debit Account Y 4 POS Password Support N 5 Offer Inline Tipping Y 6 Offer Surcharging Y e.g. NYYNYY

Response Response Outcome of request: 00 – Approved/Successful 01 – Declined 02 – Invalid Request 03 – Invalid Amount 04 – Transaction Cancelled (timeout or cancel key press) 05 – Invalid Card Details 06 – Terminal Configuration Error 07 – Invalid Merchant 08 – Invalid Reference 09 – Transaction Not Found 10 – Must Support Receipt Printing 11 – Tip Amount Excessive 12 – Invalid Tran. Mismatched reference 13 – Invalid Account 14 – No Transactions Available

12 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

15 – Invalid password 16 – Transactions in batch 17 – Failed connecting to Host 18 – Failed to connect to “pass-thru” service 19 – Pre-Auth Already Completed 20 – Pre-Auth Still Open 21 – Limit Exceeded 22 – Invalid Date 23 – Too Many Transactions 24 – Invalid Cash Amount 25 – Cash Amount Excessive 26 – Previously Cancelled 80 – Terminal Idle/Available 81 – Terminal Busy 82 – Signature in progress 83 – Session ID not valid 84 – Terminal Battery Low 99 – Terminal Fault

Display Response Optional field reflecting standard Merchant/Terminal display

Bank Reference Response Value returned from bank

STAN (Trace Response System Trace Audit Number - unique per device transaction Number)

Truncated PAN Response 6.4 truncated PAN associated with the transaction

Account Response Account selected by cardholder

Optional Receipt Response Formatted Receipt Data Format Data If receipt data is requested, the response will contain a preformatted receipt with CR/LF. Any comma characters appearing within the receipt data must be replaced by an FS (0x1C) character. The POS must replace any FS character with a comma prior to printing. The terminal may request the POS to print certain characters double-height. This is done by the terminal sending an ESC-D (0x1B 0x44) character sequence. Once received, all following characters should be printed double- height until the end of the line. The following line will be printed in standard-height font. Likewise, ESC-S (0x1B 0x53) can be used to enable small font. The POS must ensure that normal height printing is used at the start of all new receipts. The POS must not attempt to print the above escape sequence characters themselves.

13 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Tagged Data Format If Txn Options “Receipt Required” field is set to T then this format will be used. A list of tag ID and tag value pairs will be returned in the following format: [tagid1]tagvalue1[tagid2]tagvalue2…

Tag IDs are surrounded by open and closed square brackets. Tag values follow closed square brackets. If a tag value needs to contain a square bracket it will be prefixed with a backslash. Likewise a backslash appearing within a tag value must be substituted with a double- backslash. E.g. [TickBox1]Check here\[ \][TickBox2]Check here\[ \][DiamondLogo1]/\\[DiamondLogo2]\\/

The intention of the above example would be to print something like this: Check here[ ] Check here[ ] /\ \/ POS Vendor Request Name of POS vendor company Name,

POS Application Request Version of POS application Version

Print POS Request Any comma characters appearing within the receipt Receipt data must be replaced by an FS (0x1C) character. The EFTPOS terminal must replace any FS character with a comma prior to printing. Each line can contain up to a maximum of 20 characters (excl. CR/LF).

Spec Version Request POSLink interface specification developed to. For example 2.5

Track1 data Response Ascii representation of ISO 7813 compliant track 1 details. Message Framing and Control Characters section should be referred to.

Track2 Data Response Ascii representation of ISO 7813 compliant track 2 details. Message Framing and Control Characters section should be referred to.

14 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Amended Amount Response New transaction total inclusive of the additional amount as requested by the “txn option” request field e.g. Purchase amount + Inline Tip, Surcharge or Service Fee

Host IP Address Request Gateway IP address. Used in TTX messaging.

Host TCP Port Request Gateway listening/servicing port. Used in TTX messaging

TSP ID Both TSP ID of the terminal

TerminalSWVer Response Payment software version

Diagnostic Response Preformatted printable/scrollable data Information

Status Flags Response Y/N field used to reflect various terminal states

Display Type Response Value returned in the DSP message to indicate current operation

Password Hash Request One way hash applied to a password – Contact Verifone for further information to apply this.

Encrypted Request Encrypted password for MGT commands – Contact Password Verifone for further information to apply this.

Additional Request Optional APD data – alpha-numeric, no commas Purchase Data

Session ID Both SHA256 Hash of the following information concatenated: • Device Name • Sequence ID

Device Name Request Device name of Mobile device. • GUID of Mobile • Generic name of Mobile Used as part of Session ID calculation. Terminal will only accept a maximum length of 100 characters for this name.

Host Response Response Response code that terminal prints on receipts as a Code separate field. See Appendix Response Codes for values and definitions. Response codes will be dependent on the payments gateway that is being used for payment processing.

15 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

MESSAGING GENERIC ERROR

If the terminal deems a request message to be invalid, the following message will be returned to POS.

Data Definition

XXXXXX Unique Sequence Reference (matching request)

ERR Message type

M Merchant number (1 to 8)

Response 02 – Invalid Request (e.g. formatting or unexpected/unsupported request) 08 – Invalid Reference (same reference used for different transaction type)

Display 20 character merchant display

Example: 321ABC,ERR,1,02, Invalid request received from POS. No Display text.

16 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

DISPLAY PROMPT

Display prompts may be sent to the POS throughout the duration of the transaction. It is recommended the POS system displays these prompts to provide the operator with an interactive and informative transaction flow. Typically these messages will be transmitted at card swipe (AWAITING CARD), account selection (AWAITING ACCOUNT) and PIN entry (AWAITING PIN), however the content and number of occurrences may change.

Data Definition

XXXXXX Unique Sequence Reference (matching original request)

DSP Message type

M Merchant number (1 to 8) (matching request)

Display Prompt Text string

Display Type 0 – Not Defined 1 – Present Card 2 – Manual Card Entry 3 – Merchant Interaction Required on PIN Pad 4 – Account Entry 5 – PIN Entry 6 – Data Entry on PIN Pad 7 – Currency Selection 8 – Awaiting Currency Offer 9 – Tip Entry 10 – Surcharge Prompt 11 – Application Selection 12 – Expiry Entry on PIN Pad 13 – CVV Entry on PIN Pad 97 – Transaction Being Processed 98 – Remove Card 99 – Transaction Outcome

Example: 099999,DSP,1,AWAITING ACCOUNT,4 Cardholder has been prompted to Select Account. POS to display “AWAITING ACOUNT”

17 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

STATUS POLL

To prevent transaction requests being buffered, it is a mandatory requirement that the POS sends a “poll” message to the terminal prior to sending any new transaction request and immediately on power-up. This will ensure the Terminal is not busy processing background tasks and is open to process a subsequent request. If there is a failure to receive an ACK within 3 seconds, the POS should back-off for 10 seconds displaying an appropriate message for Operator e.g. “Terminal Busy. Please Wait…” Refer to Messaging Timeout section for a non-responsive terminal.

Data Definition

XXXXXX Unique Sequence Reference – should not be the same as following PUR or other request

POL Message type

M Merchant Number (1 to 8) – Present, but no effect

Spec Version Current version in Major.minor format. (e.g. 2.8)

POS Vendor Name Name of POS vendor company. Limited to 50 characters

POS Application Version Version of POS. Limited to 50 characters

Components Versions Reserved for Internal Use Only [BV] - Build Version of Integrated Solution (Limited to 50 characters) [ICE] - Integrated Controller EXE version (Limited to 20 characters) [ICG] - Integrated Controller GUI version (Limited to 20 characters [OCX]- OCX Version (Limited to 20 characters) [MRS] - MARS Version (Limited to 20 characters) [JAV] – Java Version (Limited to 20 characters) [MT] – Version of MT (Limited to 20 characters) [LGO] – Signature of Logo Package on MT (Limited to 20 characters) The above data must all be printable ASCII characters

Double Height Printing Y – POS supports double-height character printing

Session ID Reserved for Internal Use Only Current Session ID

Half-Width Printing Y – POS supports half-width character printing

Example: 123456,POL,1,2.8,A1 POS Company,1.2.34,,N,,N

18 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in following format:

Data Definition

XXXXXX Unique Sequence Reference

POL Message type

M Merchant number (1 to 8)

Response 80 – Ready 81 – Transaction in progress 82 – Signature in progress 83 – Session ID Not Authentic

Display 20 character optional merchant display

Serial Number 9 digit Terminal serial number

Status Flags Y/N flags indicating the following idle states. Position: 1. Pending transactions for specified Merchant number 2. Offline Mode for specified Merchant number 3. Terminal Locked 4. Keys Loaded 5. Parameters Loaded

TerminalSWVer Payment software version

TSPID TSP ID specific/unique to the “Merchant number” requested

Integrated Optional Software MASPAR Integrated Software Identifier – empty for non-Integrated Identifier terminals

PIN Pad Optional Hardware Type “VX820” – Vx820 (PIN Pad only) “VX820D” – Vx820 Duet “VX690” – Vx690 “E355” – e355

Any Pending Optional Transactions Y/N – Any pending transactions on the terminal (regardless of merchant number)

Supported Spec Optional Version POSLink specification supported by the device sending the response. This field may be empty if returned from the Comms application as opposed to PIN Pad application.

19 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Power Fail Optional Status Power fail pending Y/N

Battery Status Optional Percentage charge + charging indicator e.g. 65D – 65% battery, discharging (in use) 35C – 35% battery, charging

Merchant Name Optional Maximum of 20 characters

Currency Prefix Optional Maximum of 3 characters (e.g. NZD, AUD, GBP)

Optional Info Optional Tagged field for future expansion: [HLG] Integrated logo hash (32 characters ASCII Hex)

Example: 123456,POL,1,80,READY,123456789,NYYNYY,V102.3.89, 123456789012,12345,2.6, Terminal idle and available for transaction requests. Terminal s/n: 123456789, No Reversal, Not in offline mode, Terminal locked. Keys Loaded, Parameters Loaded 123456,POL,1,81,PROCESSING,123456789 Terminal is busy processing a transaction (current or background). Terminal s/n: 123456789, Not idle so no status flags returned. Integrated identifier and supported POSLink version are also omitted in this case. 123456,POL,1,82,PROCESSING,123456789 In an effort to re-sync, this message could also invoke messages such as SIG. Typically the POS would receive a POL response with an 82 Response and then immediately to a previously SIG request sent to the Terminal. Note: VeriFone terminals are labelled with serial numbers in 123-456-789 format. Dashes are not returned to the POS.

20 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

EFTPOS CANCEL

For cancelling a transaction up to the point of PIN number entry send the following message:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

CAN Message type

M Merchant number (1 to 8)

Example: 124545,CAN,1 Transaction is cancelled at any stage before PIN entry. Notes: 1. Although this may be acknowledged, there is no matching response message for this request. 2. If successful, an immediate Transaction response will be returned indicating the transaction has been cancelled. 3. If not acknowledged, the POS should not continue sending this; instead wait for the transaction outcome.

21 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

INFORMATION

The EFTPOS terminal may send “Information” messages to the POS throughout the transaction. This information can be used to determine real-time choices actions such as card type or account selected. Typically these messages will be transmitted following card swipe or account selection, however the content and number of occurrences may vary. Note: This message will only be transmitted to the POS if the field of the ”Status Poll” request is set to “2.5” or greater.

Data Definition

XXXXXX Unique Sequence Reference (matching original request)

NFO Message type

M Merchant number (1 to 8) (matching request)

NFOType CAR – NFOData to contain truncated card data ACC – NFOData to contain cardholder account selected APP - NFOData will contain the AID TIP – NFOData will contain the tip amount (e.g. 5.00) SUR – NFOData will contain the surcharge amount (e.g. 0.70)

NFOData Data respective of the NFOType

Example: 099999,NFO,1,CAR,436673….1166 Cardholder has swiped card using masked card number 436673….1166 099999,NFO,1,ACC,SAV Cardholder selected “savings” account 099999,NFO,1,APP,A0000000031010 Cardholder selected VISA application

22 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

CONFIRMATION (ASK) REQUEST

A Confirmation (ASK) request may be sent to the POS during an existing process to ask the merchant to for input of some description. The message consists of the following:

Data Definition

XXXXXX Unique Sequence Reference. Present, but of no relevance.

ASK Message type

M Merchant number (1 to 8) (matching request)

Prompt Text string, null terminated. e.g. “UPLOAD TIP BATCH?” Multiple lines may be returned to the POS. Multiple lines will be separated by use of 0x0D 0x0A (CR/LF) characters.

Input Type “YES/NO” - Yes or No “ALPHA” - Alpha-Numeric-Symbol “NUMERIC” - Numeric only, can include decimal (incl. in length) “DATE” - DD/MM/YYYY (Presented as calendar) “CUR” – Amount (Presented with local currency symbols) “PASSWORD” – ‘*’ masked entry of ALPHA input type (nb.1)

Min Length Minimum data length required

Max Length Maximum data length required

Timeout Period before cancelling request and sending “04” response (see response definitions) Timeout is in seconds (0 means no timeout, infinity)

Challenge Password requests will provide a random, non-secret value to be concatenated to the “password” before applying the SHA-256 hash function i.e. SHA-256(password|challenge).

Note: Support for the Password exchange function requires complex cryptography. Please enquire for implementation requirements. Merchant Passwords will be offered on the PIN Pad should the “Txn Options” “POS Password Support” flag be set to ‘N’. Example: 099999,ASK,1,UPLOAD TIP BATCH?,YES/NO,,30 Confirmation request for merchant 1, requesting POS to display “UPLOAD TIP BATCH?”. This requires the merchant to select either YES or NO on the POS within a period of 30secs. Response POS will respond to terminal with response message in following format:

23 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Data Definition

XXXXXX Unique Sequence Reference (matching request)

ASK Message type

M Merchant number (1 to 8)

Response 00 – Successful, data to follow 04 – Transaction Cancelled

Data Input Type Value

YES/NO “YES” or ”NO”

ALPHA Min_Length >= String <= Max_Length

PASSWORD SHA-256( password | challenge )

NUMERIC Min_Length >= Number <= Max_Length

DATE DD/MM/YYYY

CUR

Yes/No Request 099999,ASK,1,UPLOAD BATCH?,YES/NO,,,30 Present YES/NO dialog with prompt/title “UPLOAD BATCH”, 30sec timeout applies Response: 099999,ASK,1,00,YES Response to Yes/No request Alpha Request 099999,ASK,1,ENTER NAME,ALPHA,2,20,30 Present string entry dialog with prompt/title “ENTER NAME”, min size 2, max size 20, 30sec timeout applies Response: 099999,ASK,1,00,CORY JANE Response to ALPHA request Password Request 099999,ASK,1,ENTER PASSWORD,PASSWORD,4,20,30 Present masked string entry dialog with prompt/title “ENTER PASSWORD”, min size 4, max size 20, 30sec timeout applies Response: 099999,ASK,1,00,Password!@#$

24 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response to Password request Numeric Request 099999,ASK,1,ENTER AGE,NUMERIC,1,3,30 Present numeric entry dialog with prompt/title “ENTER AGE”, min size 1, max size 3, 30sec timeout applies Response 099999,ASK,1,00,32 Response to NUMERIC request Date Request 099999,ASK,1,ENTER DOB,DATE,,,30 Present calendar dialog with prompt/title “ENTER DOB”, 30sec timeout applies Response 099999,ASK,1,00,08/02/1983 Response to DATE request CUR Request 099999,ASK,1,ENTER PRICE,CUR,4,9,30 Present currency entry dialog with prompt/title “ENTER PRICE”, min size 4(0.00), max size 9 (000000.00), 30sec timeout applies Response 099999,ASK,1,324.95 Response to CUR request

25 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

PURCHASE, PURCHASE + CASH REQUEST

For a Purchase or a Purchase + Cash Out send the following message:

Data Definition

XXXXXX Unique Sequence Reference

PUR Message type

M Merchant number (1 to 8)

$$$$$$.cc Purchase or Sale amount

$$$$$$.cc Cash amount (if Purchase only this will be 000000.00)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Additional Optional APD data – alpha-numeric ASCII data, no commas Purchase Data

Session ID Current Session ID

Server ID Optional Inline Tipping Server ID (1-99) Note: If Inline Tipping is enabled and this field is blank, the Terminal may send an ASK request to the POS during a purchase transaction.

Example: 099999,PUR,1,000012.34,000000.00,POS 1,NYYNYY,,, Purchase $12.34 for Merchant 1. No ID. Receipt data required, Credit and Debit a/c enabled, Prompt for tip 099998,PUR,2,000010.00,000020.00,,NYYNYY,,, Purchase $10.00 + Cash $20.00 for Merchant 2. No additional display at Swipe Card prompt. Credit account allowed, Debit accounts disabled, Receipt data required Example: Purchase Request with APD 099998,PUR,2,000010.00,000020.00,,NYYNYY,310000010000799,, Purchase $10.00 + Cash $20.00 for Merchant 2. No additional display at Swipe Card prompt. Credit account allowed, Debit accounts disabled, Receipt data required, Additional Purchase Data

26 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

PUR Message type

M Merchant number (1 to 8)

$$$$$$.cc Purchase or Sale amount

$$$$$$.cc Cash amount (if Purchase only this will be 000000.00)

Response 00 – Accepted 01 – Declined 03 – Invalid Amount 04 – Transaction Cancelled (time out or cancel key pressed) 83 – Invalid Session ID

Display 20 character merchant display

Bank Reference Optional Bank Reference/Authorisation

STAN Transaction trace number

Truncated PAN Truncated cardholder PAN

Account Account selected by cardholder

Optional Receipt Data1 Merchant Receipt - Preformatted receipt data

Optional Receipt Data2 Customer Receipt - Preformatted receipt data

Card Type Type of card processed

Cardholder Name Name on track 1 of card if present

$$$$$$.cc Amended Amount

Gateway Response Response Code from Payment Gateway Code

27 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Example: 099999,PUR,1,00001.00,000000.00,00,ACCEPTED,854789,000123,498872…0127, CHQ,MERCHANT NAME ADDRESS*------EFTPOS------*TERM 111555030003TIME 17MAY 21:38TRAN 000090 CHEQUEDEBITCARD ...... 0011AUTH 000000PURCHASE NZ$1.00TOTAL NZ$1.00 (00) ACCEPTED*------*,MERCHANT NAME ADDRESS *------EFTPOS------*TERM 111555030003TIME 17MAY 21:38TRAN 000090 CHEQUEDEBITCARD ...... 0011AUTH 000000PURCHASE NZ$1.00TOTAL NZ$1.00 (00) ACCEPTED*------*,VISA,,0001.10,000 Accepted Purchase for merchant 1 of amount $1.00. Bank Reference 854789, PAN 498872…0127, Cheque account selected, Receipt Data, VISA card type, Amended amount of $1.10 099998,PUR,2,000010.00,000020.00,01,DECLINED,,000123,498872…0127,SAV,,,< LRC> Declined Purchase $10.00 + Cash $20.00 for merchant 2. No Bank Reference. STAN 000123, PAN 498872…0127, Savings account selected 099998,PUR,1,000010.00,000020.00, 04,TRANS CANCELLED,,,,,,,,, Transaction cancelled by Customer prior to processing with bank. No Bank Reference, STAN or PAN 123456,PUR,2,000012.34,00,ACCEPTED,852369,123456,498872…0127,CRD,,,MA STERCARD,15.34 Accepted Purchase for merchant 2 of amount $12.34. Bank Reference 852369. STAN 123456, PAN 498872…0127, Credit account selected, MASTERCARD card type, Amended Amount $15.34

28 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

MOTO PURCHASE

For a MOTO Purchase send the following message:

Data Definition

XXXXXX Unique Sequence Reference

MAN Message type

M Merchant number (1 to 8)

$$$$$$.cc Purchase or Sale amount

Card Expiry Expiry Date MM=Month, YY=Year. (Must no longer be populated due to Date PCI requirements)

Card Number Manual PAN data maximum =19 characters Year. (Must no longer be populated due to PCI requirements)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Additional Optional APD data – alpha-numeric ASCII data, no commas Purchase Data

Session ID Current Session ID

Example: 123456,MAN,2,000012.34,,,POS 1,NYYNYY,,, MOTO Purchase merchant 2 for $12.34. Credit account allowed, Debit accounts disabled, Receipt data required, no Additional Purchase Data.

29 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

MAN Message type

M Merchant number (1 to 8)

$$$$$$.cc Purchase or Sale amount

Response 00 – Accepted 01 – Declined 03 – Invalid Amount

Display, 20 character merchant display

Bank Reference Optional Bank Reference/Authorisation

STAN Transaction trace number

Truncated PAN Truncated cardholder PAN

Account Account selected by cardholder

Optional Receipt Merchant Receipt - Preformatted receipt data Data1

Optional Receipt Customer Receipt - Preformatted receipt data Data2

Card Type Type of card processed

Cardholder Name Name on track 1 of card if present

$$$$$$.cc Amended Amount

Gateway Response Payment Gateway Response Code Code

Example: 123456,MAN,2,000012.34,00,ACCEPTED,852369,123456,498872…0127,CRD,,,MA STERCARD,JOE BLOGGS,12.34,000 Accepted MOTO Purchase for merchant 2 of amount $12.34. Bank Reference 852369. STAN 123456, PAN 498872…0127, Credit account selected

30 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

SIGNATURE REQUIRED TRANSACTION

The Bank may request the customer to sign a receipt. The following diagram is similar to that in the Introduction. However, this is somewhat more complex with the inclusion of a Signature Request being sent to the POS.

Upon receiving the Signature Request, the POS should display a dialog box with the text passed in the request (typically “ACCEPT WITH SIGNATURE”) and two buttons – Accept and Decline. The merchant will press one of the two buttons and the appropriate Signature Response should be sent to the terminal. The terminal will then complete the transaction by sending a final Txn Outcome as is done for a Typical Transaction shown previously.

31 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

SIGNATURE REQUEST

A Signature Request may be sent to the POS and will consist of the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching original request)

SIG Message type

M Merchant number (1 to 8) (matching request)

Signature Prompt Text string, null terminated. Typically “SIGNATURE OK?”

Optional Receipt Merchant Receipt - Preformatted receipt data. If the POS previously Data1 requested receipt data, the Signature capture receipt

Example: 099999,SIG,1,ACCEPT WITH SIGNATURE,MERCHANT NAMEMERCHANT ADDRESS*------EFTPOS------*TERM 111555030003TIME 17MAY 21:38TRAN 000090 CHEQUEVISA 11/11CARD ...... 0011AUTH 000000PURCHASE NZ$1.00TOTAL NZ$1.00(08) ACCEPT WITH SIG<CR>JOE BLOGGS*------* Signature required for merchant 1, POS to display “ACCEPT WITH SIGNATURE”, POS requested receipt data 099999,SIG,1,ACCEPT WITH SIGNATURE, Signature required for merchant 1, POS to display “ACCEPT WITH SIGNATURE”, no receipt data required. Response POS will respond to terminal with response message in following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

SIG Message type

M Merchant number (1 to 8)

Response “YES” – Signature Approved “NO” – Signature Declined

32 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Example: 099999,SIG,1,YES Approved Signature Merchant 1 099999,SIG,2,NO Declined Signature Merchant 2 NOTE: If the POS approves the signature the final transaction outcome will not include a Merchant Receipt (Optional Receipt Data1). CASH OUT

For Cash Out only transaction, send the following message:

Data Definition

XXXXXX Unique Sequence Reference

CSH Message type for CASH only

M Merchant number (1 to 8)

$$$$$$.cc Cash amount

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Session ID Current Session ID

Example: 654321,CSH,1,000012.30,POS 1,NYYNYY, Cash out $12.30 for merchant 1. No receipt data required, Credit and Debit a/c enabled Note: Cash out amounts must be in $0.10 increments. If other amounts are sent to the terminal, the request will be rejected and responded to with a Generic Error message.

33 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

CSH Message type

M Merchant number (1 to 8)

$$$$$$.cc Cash amount

Response 00 – Accepted 01 – Declined 03 – Invalid Amount 04 – Transaction Cancelled 83 – Invalid Session ID

Display 20 character merchant display

Bank Reference Optional Bank Reference/Authorisation

STAN Transaction trace number

Truncated PAN Truncated cardholder PAN

Account Account selected by cardholder

Optional Receipt Merchant Receipt - Preformatted receipt data Data1

Optional Receipt Customer Receipt - Preformatted receipt data Data2

Card Type Type of card processed

Cardholder Name Name on track 1 of card if present

$$$$$$.cc Amended Amount

Gateway Response Payment Gateway Response Code Code

Example: 654321,CSH,1,000012.34,00,ACCEPTED,,654321,498872…0127,CRD,,,,,, Accepted Cash out $12.34 for merchant 1. No Bank Reference, STAN 654321, PAN 498872…0127 654321,CSH,1,000012.34,04,TRANS CANCELLED,,,,,,,,,,,

34 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Transaction cancelled by Customer prior to processing with bank. No Bank Reference, STAN or PAN REFUND

For Refund transaction send the following message:

Data Definition

XXXXXX Unique Sequence Reference

REF Message type for Refund

M Merchant number (1 to 8)

$$$$$$.cc Refund amount

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Additional Optional APD data – alpha-numeric ASCII data, no commas Purchase Data

Session ID Current Session ID

Example: 987456,REF,1,000012.15,POS 1,NYYNYY,, Refund merchant 1 for $12.15 no card data. No receipt data required, Credit and Debit a/c enabled, no Additional Purchase Data. Note: Refund transactions may require a Merchant Card and/or Merchant Password; this data can only be entered on the terminal. *Version 2.5 of the spec will offer this on POS ** Terminals connected to MPE based POS will not be able to perform Merchant Password on POS

35 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

REF Message type

M Merchant number (1 to 8)

$$$$$$.cc Refund amount

Response 00 – Accepted 01 – Declined 03 – Invalid Amount 15 – Invalid Password 83 – Invalid Session ID

Display 20 character merchant display

Bank Reference Optional Bank Reference/Authorisation

STAN Transaction trace number

Truncated PAN Truncated cardholder PAN

Account Account selected by cardholder

Optional Receipt Merchant Receipt - Preformatted receipt data Data1

Optional Receipt Customer Receipt - Preformatted receipt data Data2

Card Type Type of card processed

Cardholder Name Name on track 1 of card if present

Gateway Response Payment Gateway Response Code Code

Example: 987456,REF,3,000012.34,00,ACCEPTED,123456,129876,498872…0127,CRD,,,DIN ERS,, Accepted Refund $12.34 for merchant 3. Bank Reference 123456. STAN 129876, PAN 498872…0127, Credit account selected, Diners card type 987456,REF,3,000012.34,04,TRANS CANCELLED,,,,,,,, Transaction cancelled by Customer prior to processing with bank. No Bank reference, STAN or PAN

36 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

REFUND WITH MANUAL PAN

For a Refund with Manual PAN send the following message:

Data Definition

XXXXXX Unique Sequence Reference

MRF Message type

M Merchant number (1 to 8)

$$$$$$.cc Purchase or Sale amount

Card Expiry Expiry Date MM=Month, YY=Year (Must no longer be populated due to Date PCI requirements)

Card Number Manual PAN data maximum = 19 characters (Must no longer be populated due to PCI requirements)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Additional Optional APD data – alpha-numeric ASCII data, no commas Purchase Data

Session ID Current Session ID

Example: 121156,MRF,2,000012.34,,,POS 1,NYYNYY,,, Refund with Manual PAN merchant 2 for $12.34. Credit account allowed, Debit accounts disabled, Receipt data required, no Additional Purchase Data.

37 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

MRF Message type

M Merchant number (1 to 8)

$$$$$$.cc Purchase or Sale amount

Response 00 – Accepted 01 – Declined 03 – Invalid Amount 15 – Invalid Password

Display 20 character merchant display

Bank Reference Optional Bank Reference/Authorisation

STAN Transaction trace number

Truncated PAN Truncated cardholder PAN

Account Account selected by cardholder

Optional Receipt Merchant Receipt - Preformatted receipt data Data1

Optional Receipt Customer Receipt - Preformatted receipt data Data2

Card Type Type of card processed

Cardholder Name Name on track 1 of card if present

Gateway Response Payment Gateway Response Code Code

Example: 121156,MRF,2,000012.34,00,ACCEPTED,852369,852074,498872…0127,CRD,,,,,,< ETX> Accepted Refund with Manual PAN for merchant 2 of amount $12.34. Bank Reference 852369. STAN 852074, PAN 498872…0127 LOGON

For Logon send the following message:

38 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Data Definition

XXXXXX Unique Sequence Reference

LOG Message type for Logon

M Merchant number (1 to 8)

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section

Example: 74110852,LOG,1,POS 1,NYYNYY Logon merchant 1. No receipt data required. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

LOG Message type

M Merchant number (1 to 8)

Response 00 – Accepted 01 – Declined

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Example: 74110852,LOG,1,00,ACCEPTED, Accepted Merchant 1 Logon

39 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

PARAMETER DOWNLOAD

Following command will initiate a Parameter Download from the terminal.

Data Definition

XXXXXX Unique Sequence Reference.

PDL Command to request terminal to perform a Parameter Download with Terminal Management System

M Merchant Number

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section.

Example: 8569874,PDL,1,POS 1,NYYNYY Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference

PDL Message type

M Merchant number (1 to 8)

Response 00 – Request Processed Successfully 01 – Failed Processing Request

Display 20 character merchant display

PPL Response Optional Response code from PPL application

Example: 8569874,PDL,1,00,COMPLETED

40 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

TERMINAL TOTALS

For Terminal Totals send the following message:

Data Definition

XXXXXX Unique Sequence Reference.

TOL Message type

M Merchant Number (1 to 8)

Reset Totals “Y” or “N”

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section

Example: 8569874,TOL,1,Y,POS 1,NYYNYY Terminal Totals for merchant 1. Totals to be reset. No receipt data required. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference.

TOL Message type

M Merchant number (1 to 8)

Response 00 – Accepted 01 – Declined Omitted for this request.

Display 20 character merchant display.

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Example: 8569874,TOL,1,00,COMPLETED, Terminal Totals printed SETTLEMENT CUTOVER/CLOSE BATCH

Settlement Cutover ends the current trading day in terms of bank reconciliation. All subsequent transactions will fall into the next day’s trading.

41 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

If the tipping facility is used, it would be recommended to perform the Tip Batch Upload function prior to invoking a Settlement Cutover. For Settlement Cutover send the following message:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

SET Message type for Settlement

M Merchant number (1 to 8)

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section

Session ID Current Session ID

Example: 951753,SET,1,POS 1,NYYNYY, Settlement Cutover for Merchant 1. No receipt data required.

42 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

SET Message type

M Merchant number (1 to 8)

Response 00 – Accepted 01 – Declined

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Gateway Response Payment Gateway Response Code Code

Example: 951753,SET,1,00,ACCEPTED,,000 Accepted Settlement Merchant 1. No Bank Reference.

43 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

SETTLEMENT ENQUIRY / HISTORICAL SETTLEMENT

For Settlement Enquiry send the following message:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

ENQ Message type for Settlement Enquiry

M Merchant number (1 to 8)

DDMMYYYY Requested settlement date (within 7 days). Optional

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section

Session ID Current Session ID

Example: 951654,ENQ,2,29022008,POS 1,NYYNYY, Settlement Enquiry for 29 Feb 2008 Merchant 1. No receipt data required. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

ENQ Message type

M Merchant number (1 to 8)

Response 00 – Accepted 01 – Declined

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Gateway Response Payment Gateway Response Code Code

Example: 951654,ENQ,1,00,ACCEPTED,,000 Accepted Settlement Enquiry Merchant 1. No Bank Reference.

44 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

REPRINT LAST RECEIPT

For Reprint Last Receipt send the following message:

Data Definition

XXXXXX Unique Sequence Reference

REP Message type

M Merchant Number (1 to 8)

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section

Session ID Current Session ID

Example: 432234,REP,1,POS 1,NYYNYY, Reprint last receipt on terminal for Merchant 1. No receipt data required. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

REP Message type

M Merchant number (1 to 8)

Response 00 – Accepted 01 – Declined

Display 20 character merchant display

Optional Receipt Preformatted receipt data. Data1

Example: 432234,REP,1,00,COMPLETED, Accepted Merchant 1 Logon.

45 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

QUERY CARD

Generic “Card Swipe” functionality is supported by the terminal. The POS will be provided with standard ISO 7813 compliant formatted data from the users’ card swipe. This functionality is restricted to proprietary 3rd party issued cards. To assist in PA-DSS compliance (PCI security requirement), any merchant requiring this functionality to be enabled must provide EFTPOS NZ with a positive BIN table. This should consist of each card prefix (first 6 or more digits). EFTPOS NZ will create an encrypted table to be loaded on the terminal. For Query Card details, send the following message:

Data Definition

XXXXXX Unique Sequence Reference.

QCD Message type

M Merchant Number (1 to 8) – No effect

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Session ID (Optional) Current Session ID

Example: 852074, QCD,1,SWIPE LOYALTY CARD Query card details on merchant 1

46 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

QCD Message type

M Merchant number (1 to 8)

Response 00 – Success 01 – Failure

Display 20 character merchant display

Card Track2 ASCII representation of track 2 details. Message Framing and Control Data Characters section should be referred to.

Card Track1 ASCII representation of track 1 details. Message Framing and Control Data Characters section should be referred to.

PAN (Optional – Australian Mobility Terminals Only) Track 2 PAN (up to 19 characters) with no start/end sentinels or PAN seperator

Example: 852074,QCD,1,00,COMPLETED,;1234567890741085=ABCDEGH?,29%B12345678 90741085^SMITH^JOE? Successful card read including Track 2 and Track 1 852074,QCD,1,00,COMPLETED,;1234567890741085=ABCDEGH?, Successful card read including Track 2 only 852074,QCD,1,01,INVALID CARD TYPE, , Invalid card has been swiped. Card BIN may not be loaded in BIN table 852074,QCD,1,00,COMPLETED,;1234567890741085=ABCDEGH?,, 1234567890741085 Example of card data with PAN field returned.

47 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

CARD STATUS CHECK

For Card Status Check send the following message:

Data Definition

XXXXXX Unique Sequence Reference

CSC Message type for Card Status Check

M Merchant number (1 to 8)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Example: 74110852,CSC,1,POS 1,NYYNYY Card Status Check merchant 1. No receipt data required. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

CSC Message type

M Merchant number (1 to 8)

Response 00 – Accepted 01 – Declined

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Optional Receipt RFU Data2

Card Type Type of card processed

Cardholder Name RFU

$$$$$$.cc RFU

Gateway Response Response Code from Payment Gateway Code

48 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Example: 74110852,CSC,1,00,ACCEPTED,,,VISA,,,000 Accepted Merchant 1 Card Status Check

49 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

PRE-AUTH

For Pre-Auth send the following message:

Data Definition

XXXXXX Unique Sequence Reference

OTS Message type for Pre-Auth

M Merchant number (1 to 8)

$$$$$$.cc Initial Pre-Auth amount

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Example: 74110852,OTS,1,000100.00,POS 1,NYYNYY Pre-Auth for $100, Merchant 1. No receipt data required. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

OTS Message type

M Merchant number (1 to 8)

$$$$$$.cc Pre-Auth amount

Response 00 – Accepted 01 – Declined

Display 20 character merchant display

Pre-Auth ID Pre-Auth ID as shown in transaction receipt (up to 20 characters)

STAN Transaction trace number

Truncated PAN Truncated cardholder PAN

Account Account selected by cardholder (CHQ,SAV,CRD)

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

50 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Optional Receipt Customer Receipt - Preformatted receipt data. Data2

Card Type Type of card processed

Cardholder Name RFU

$$$$$$.cc RFU

Gateway Response Response Code from Payment Gateway Code

Example: 74110852,OTS,1,000100.00,00,ACCEPTED,12345678,000123,49877….0127,CRD,, ,VISA,,,000 Accepted Merchant 1 Pre-Auth

51 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

PRE-AUTH WITH MANUAL PAN

For Pre-Auth with Manual PAN send the following message:

Data Definition

XXXXXX Unique Sequence Reference

OTM Message type for Pre-Auth

M Merchant number (1 to 8)

$$$$$$.cc Initial Pre-Auth amount

Card Expiry Date Must no longer be populated due to PCI requirements – leave empty

Card Number Must no longer be populated due to PCI requirements – leave empty

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Example: 74110852,OTM,1,000100.00,,,POS 1,NYYNYY Pre-Auth for $100, Merchant 1. No receipt data required. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

OTM Message type

M Merchant number (1 to 8)

$$$$$$.cc Pre-Auth amount

Response 00 – Accepted 01 – Declined

Display 20 character merchant display

Pre-Auth ID Pre-Auth ID as shown in transaction receipt (up to 20 characters)

STAN Transaction trace number

Truncated PAN Truncated cardholder PAN

52 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Account Account selected by cardholder (CHQ,SAV,CRD)

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Optional Receipt Customer Receipt - Preformatted receipt data. Data2

Card Type Type of card processed

Cardholder Name RFU

$$$$$$.cc RFU

Gateway Response Response Code from Payment Gateway Code

Example: 74110852,OTM,1,000100.00,00,ACCEPTED,12345678,000123,49877….0127,CRD,, ,VISA,,,000 Accepted Merchant 1 Pre-Auth

53 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

PRE-AUTH COMPLETION

For Pre-Auth Completion send the following message:

Data Definition

XXXXXX Unique Sequence Reference

OTR Message type for Pre-Auth Completion

M Merchant number (1 to 8)

$$$$$$.cc No longer used, leave blank

$$$$$$.cc Total transaction (completion) amount

Pre-Auth ID Pre-Auth ID as shown on original pre-auth transaction receipt (up to 20 characters)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Example: 74110852,OTR,1,000100.00,000080.00,12345678,POS 1,NYYNYY Pre-Auth Completion for $100, Merchant 1. No receipt data required. The Terminal will attempt to look-up a transaction using the Pre-Auth ID. If a transaction is found, an ASK request will be returned to the POS to confirm that the transaction is the expected transaction before continuing. If the POS supports a POSLink Specification version less than 2.8 then no ASK request will be sent and the Terminal will assume that the correct transaction was retrieved.

54 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

OTR Message type

M Merchant number (1 to 8)

$$$$$$.cc Total transaction (completion) amount

Response 00 – Accepted 01 – Declined 03 – Invalid Amount 09 – Transaction not found

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Optional Receipt Customer Receipt - Preformatted receipt data. Data2

Card Type Type of card processed

Cardholder Name RFU

$$$$$$.cc RFU

Gateway Response Response Code from Payment Gateway Code

Example: 74110852,OTR,1,000100.00,00,ACCEPTED,,,VISA,,,000 Accepted Merchant 1 Pre-Auth Completion

55 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

PRE-AUTH CANCELLATION

For Pre-Auth Cancellation send the following message:

Data Definition

XXXXXX Unique Sequence Reference

OTD Message type for Pre-Auth Cancellation

M Merchant number (1 to 8)

$$$$$$.cc (Optional) For AU Mobility this may contain a Partial Cancellation amount Otherwise, leave blank for standard Pre-Auth Cancellation

Pre-Auth ID Pre-Auth ID as shown on original pre-auth transaction receipt (up to 20 characters)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Example: 74110852,OTD,1,000100.00,12345678,POS 1,NYYNYY Pre-Auth Cancellation for $100, Merchant 1. No receipt data required. The Terminal will attempt to look-up a transaction using the Pre-Auth ID. If a transaction is found, an ASK request will be returned to the POS to confirm that the transaction is the expected transaction before continuing. If the POS supports a POSLink Specification version less than 2.8 then no ASK request will be sent and the Terminal will assume that the correct transaction was retrieved.

56 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response

POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

OTD Message type

M Merchant number (1 to 8)

$$$$$$.cc Total transaction (completion) amount

Response 00 – Accepted 01 – Declined 09 – Transaction not found

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Optional Receipt Customer Receipt - Preformatted receipt data. Data2

Card Type Type of card processed

Cardholder Name RFU

$$$$$$.cc RFU

Gateway Response Response Code from Payment Gateway Code

Example: 74110852,OTD,1,000100.00,00,ACCEPTED,,,VISA,,,000 Accepted Merchant 1 Pre-Auth Cancellation

57 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

DELAYED CHARGE

For Delayed Charge send the following message:

Data Definition

XXXXXX Unique Sequence Reference

ODC Message type for Delayed Charge

M Merchant number (1 to 8)

$$$$$$.cc Additional amount

Pre-Auth ID Pre-Auth ID as shown on original pre-auth transaction receipt (up to 20 characters)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Example: 74110852,ODC,1,000100.00,12345678,POS 1,NYYNYY Delayed Charge merchant 1. Receipt to be printed on terminal. The Terminal will attempt to look-up a transaction using the Pre-Auth ID. If a transaction is found, an ASK request will be returned to the POS to confirm that the transaction is the expected transaction before continuing. If the POS supports a POSLink Specification version less than 2.8 then no ASK request will be sent and the Terminal will assume that the correct transaction was retrieved.

58 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

ODC Message type

M Merchant number (1 to 8)

$$$$$$.cc Completion amount

Response 00 – Accepted 01 – Declined 09 – Transaction not found

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Optional Receipt Customer Receipt - Preformatted receipt data. Data2

Card Type Type of card processed

Cardholder Name RFU

$$$$$$.cc RFU

Gateway Response Response Code from Payment Gateway Code

Example: 74110852,ODC,1,000100.00,00,ACCEPTED,,,VISA,,000 Accepted Merchant 1 Delayed Charge

59 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

ADDITIONAL PRE-AUTH

For Additional Pre-Auth send the following message:

Data Definition

XXXXXX Unique Sequence Reference

OAP Message type for Additional Pre-Auth

M Merchant number (1 to 8)

$$$$$$.cc Additional amount Note: AU Mobility Only: If this field is blank, the original Pre-Auth will be extended for an additional 30 days.

Pre-Auth ID Pre-Auth ID as shown on original pre-auth transaction receipt (up to 20 characters)

ID Optional text string to be displayed on terminal at Swipe Card prompt. Limited to 10 characters

Txn Options Refer to Field Definitions section

Example: 74110852,OAP,1,000200.00,12345678,POS 1,NYYNYY Additional Pre-Auth merchant 1. Receipt to be printed on terminal. The Terminal will attempt to look-up a transaction using the Pre-Auth ID. If a transaction is found, an ASK request will be returned to the POS to confirm that the transaction is the expected transaction before continuing. If the POS supports a POSLink Specification version less than 2.8 then no ASK request will be sent and the Terminal will assume that the correct transaction was retrieved.

60 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

OAP Message type

M Merchant number (1 to 8)

$$$$$$.cc Total Pre-Auth amount

Response 00 – Accepted 01 – Declined 09 – Transaction not found

Display 20 character merchant display

Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Optional Receipt Customer Receipt - Preformatted receipt data. Data2

Card Type Type of card processed

Cardholder Name RFU

$$$$$$.cc RFU

Gateway Response Response Code from Payment Gateway Code

Example: 74110852,OAP,1,000200.00,00,ACCEPTED,,,VISA,,,000 Accepted Merchant 1 Additional Pre-Auth

61 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

POS RECEIPT PRINTING

The general flow for POS requesting receipt data is quite simple and is as follows. • POS sets flag in transaction request • EFTPOS device sends Merchant and Customer receipt in transaction response If the POS is requesting and printing the EFTPOS receipts, it is mandatory to print the Merchant copy. The POS can provide the operator a prompt to optionally print the customer receipt contained within the transaction response. Refer to section “Purchase, Purchase + Cash Request” for complete example. Note that “Signature Request” section also contains a Merchant Receipt for capture of customer signature. For embedded systems, some consideration may be required for maximum buffer sizes, as a response message could reach approximately 1KB if receipt data is returned. !!!Be sure to read the section on Message Framing and Control Characters!!! PRINT POS RECEIPT ON TERMINAL

To print a POS receipt on Terminal receipt printer, the POS must first send a POL request to ensure the terminal is ready, then send the following message:

Data Definition

XXXXXX Unique Sequence Reference

PRT Message type

M Merchant Number (1 to 8)

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section

Receipt Data Preformatted receipt data Each line may contain a maximum of 20 characters. NOTE: Comma characters are not allowed. If comma characters are desired in receipts, substitute the comma character with Esc-C (two characters 0x1B 0x43).

Example: 432234,PRT,1,POS 1,NYYNYY,CORYS FISHINGFISH YA HEART OUT*------*ADULT $100.00GEAR RENTAL $35.00TOTAL $135.00incl GST $17.61*------*THANKS FOR COMING

62 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Request to print the following POS receipt CORYS FISHING FISH YA HEART OUT *------*

ADULT $100.00 GEAR RENTAL $35.00

TOTAL $135.00 incl GST $17.61 *------* THANKS FOR COMING

Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

PRT Message type

M Merchant number (1 to 8)

Response 00 – Receipt printed OK 01 – Failed printing receipt 99 – Check Printer (paper out)

Display Optional display field

Example: 432234,PRT,1,00, Receipt printed OK 432234,PRT,1,01,CHECK PRINTER Printing failed

63 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

HEADER & FOOTER CONFIGURATION FOR TERMINAL RECEIPTS

Header and footer text can be configured which will appear in front of and at the end of all financial terminal receipts. To configure the header and footer, send the following message prior to financial requests (e.g. PUR):

Data Definition

XXXXXX Unique Sequence Reference

PHD Message type

M Ignored, set to 1.

Header Preformatted receipt data Each line may contain a maximum of 20 characters. The maximum number of characters contained within this field is 1000 bytes (which includes any non-printable characters such as CR/LF, Esc etc). NOTE: Comma characters are not allowed. If comma characters are desired in receipts, substitute the comma character with Esc-C (two characters 0x1B 0x43).

Footer Preformatted receipt data, same format as Header field

Example: 432234,PHD,1,CORYS FISHINGFISH YA HEART OUT*------*ADULT $100.00GEAR RENTAL $35.00TOTAL $135.00incl GST $17.61,*------*THANKS FOR COMING

64 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

A financial receipt would print as follows:

CORYS FISHING <- Header FISH YA HEART OUT *------* ADULT $100.00 GEAR RENTAL $35.00 TOTAL $135.00 incl GST $17.61

ANZ Wellington New Zealand MID 11663300 TSP 116633000010 TIME 16JAN16 11:53 TRAN 000389 CHEQUE DEBIT S CARD...... 5683 PURCHASE NZD135.00 TOTAL NZD135.00 APPROVED <-Footer *------* THANKS FOR COMING

Removal of header and footers from the receipts is achieved by sending PHD with empty header and footer fields.

65 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference (matching request)

PHD Message type

M Merchant number (1 to 8)

Response 00 – Header and footer accepted OK 01 – Failed

Example: 432234,PHD,1,00 Header and footer accepted 432234,PHD,1,01 Unable to store header and footer

66 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

REPORTS

A generic report message is supported in the following format. PPA conveys a list of Receipts back to the POS. A “Receipt” should be regarded as a chunk of text that makes up an ultimate report. A “Receipt” does not necessarily mean that the chunk of text will contain details for a single financial transaction. A “Receipt” could contain a number of financial transaction details. For example, the Transaction List report consists of a number of Receipts where each Receipt could contain many transactions in one PPA response. Each PPA request must contain a Unique Sequence Reference number. The same Unique Sequence Reference number must not be used for consecutive PPA requests. The terminal will send one PPA response for each respective PPA request sent. NOTE: Original RPT message type no longer supported, replaced with new PPA message as below. Data Definition XXXXXX Unique Sequence Reference. PPA Message type M Merchant Number (1 to 8) ID Terminal will ignore value for this request Txn Options Refer to Field Definitions section Report Type Refer to Report Type Definitions Index Receipt Index (1-1000) Optional Report Tagged data field allowing additional parameters to be passed for specific Parameters report types [SETT] - YYYYMMDD [TIM1] - YYYYMMDDHHmmss [TIM2] - YYYYMMDDHHmmss [STAN] – 6 digit numeric ASCII value (e.g. 000001) [RRN] – numeric ASCII value [RESET] – reset totals (where applicable to Report Type) [SCOPE] – TERMINAL, MERCHANT, CORPORATE Example: 8569874,PPA,1,POS 1,NYYNYY,5,1 Print Pending Transaction Report(5) for merchant 1. No receipt data required (print on terminal). Response POS will receive response message in the following format: Data Definition XXXXXX Unique Sequence Reference. PPA Message type M Merchant number (1 to 8)

67 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Response 00 – Accepted 14 – No Transactions Display 20 character merchant display. Omitted for this request Count Max Receipt Count (1-1000) Index Receipt Index (1-1000) Optional Receipt Merchant Receipt - Preformatted receipt data. Data1

Example: Report printed 8569874,PPA,1,00,COMPLETED,1,1, FISHING EXPERIENCES FISH YA HEART OUT *-CANCELLED TRANS-* MID 12345678 TSP 123456789012 TIME 07DEC15 16:14 TRAN 000029 CREDIT ANZ CASHBACK VISA I CARD...... 8496 RID A000000003 PIX 1010 TVR 008008E000 TSI E800 ARQ B238F974EDA4F4A7 PURCHASE NZD10.00 TOTAL NZD10.00 COMMS ERROR (415) DECLINED ,

68 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

REPORT TYPE DEFINITIONS

Report Type Value

Detail Tip Report 1 (Old Report, no longer supported)

No Tip Report 2 (Old Report, no longer supported)

Server ID Report 3

Detail Tip Report 4 (Old Report, no longer supported)

Pending Txn Report 5

Stored Txn Report 6

Transaction List 7

Pre-Auth Report 8

DIAGNOSTICS

To request diagnostic information from the terminal, send the following header message:

Data Definition

XXXXXX Unique Sequence Reference

DIA Message type

M Merchant Number (1 to 8)

ID Terminal will ignore value for this request

Txn Options Refer to Field Definitions section. Note: Receipt Required field must be ‘Y’ or ‘N’. It must not be ‘B’.

Example: 8569874,DIA,1,POS1,NYYNYY Request for Terminal Diagnostics with no POS receipt printing. Response POS will receive response message in the following format:

Data Definition

XXXXXX Unique Sequence Reference.

DIA Message type

69 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

M Merchant Number

Response 00 – Request Processed Successfully 01 – Failed Processing Request

Display 20 character merchant display

TSP ID TSP ID of the terminal

TerminalSWVer Payment software version

Diagnostic Information Optional Preformatted printable/scrollable diagnostic information. Will be returned from terminal if the Txn Option flag for “Receipt Required” is set to ‘Y’

Example:

8569874,DIA,100006789012,V102.3.89,

70 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

COMMANDS NOT SUPPORTED

The following commands are not supported and have been removed from the specification:

Function Command Reason

Cheque Authorisation CHQ

Tip Pre-Auth TPA

Tip Pre-Auth Manual TPM PAN

Tip Add TAR

Tip Void TVD These functions are no longer supported by the Tip Batch Upload TBU EFTPOS NZ

DDX Send to Host DDX using Dial Command

Host Comms TX TTX Message

Print Terminal Receipt PRP on POS POWER FAIL RECOVERY

Upon power up, the POS should determine if a power fail occurred prior to completing the last transaction. If it is deemed a power fail has occurred, the POS should re-send the previous transaction with same reference. The outcome of the transaction in question will be returned. A status POL message should also be sent on power-up. If the terminal suffers power failure during a “Signature Required Y/N” result, the transaction will be declined by the terminal upon power up. MESSAGING TIMEOUTS

If the POS fails to receive a response from the terminal within a predetermined period, the POS should POL the terminal and if successful, re-send the previous transaction with same reference. The outcome of the transaction in question will be returned. If there is no response to a POL message, the POS should advise the operator to check the terminal, and prompt for the transaction outcome to complete the tender e.g. Communication with EFTPOS device has been interrupted. Check terminal for transaction result. EFTPOS APPROVED? [Yes] [No]

71 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

72 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

SESSION ID MANAGEMENT

Reserved for Internal Use Only The session id concept was introduced to give a lightweight solution to keep devices paired together with little overhead in management of passwords, cryptographic keys, terminal ids. The intention is to ensure devices that are paired together, stay paired until a device is changed. All POSLink implementations running on designated ‘mobile’ terminals require the presence of the Session ID. A mobile terminal is defined by a flag set on the terminal which indicates this. This is on a customer by customer basis SESSION ID CALCULATION

Session ID is calculated as follows: SHA-256( Device Name + Sequence Number) If a Device Name has not been set on the Terminal as part of the SetTSPID command, and the Terminal is a Mobility Terminal, then the response to the POL command will be 83 (Session ID not valid). DEVELOPER NOTES

To ensure financial integrity, the POS must always check the response fields to ensure they match the request - at a bare minimum Unique Sequence Reference and Message Type. Failure to do so will result in a certification failure. If there is a mismatch, the POS should dump the response and re-send the original request. This will result in the response for that Reference being returned. It is recommended the POS flush the incoming communications channel prior to sending any new transaction requests. In other words, if the POS is not expecting any messages, discard what is received. The POL request (handshake) must be sent prior to sending any new transaction requests. This will ensure there is no chance of transaction buffering. If the POS is supporting local printing of the EFTPOS receipt, it must be capable of receiving this message at any time. EFTPOS NZ strives to develop industry leading technical solutions whilst maintaining scheme compliance. As we are constantly enhancing our products, to accommodate future enhancements integrators must design the interface in such a way that allows: • Additional fields appended to the transaction response • Undefined/unsolicited messages returned during a transaction flow. This should result in the normal ACK/NAK handshake, however if the message is unrecognised, simply disregard and continue waiting for expected response.

73 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Failure to consider the above may result in an upgrade path not being possible for the merchant. If this is to occur, the POS Vendor will bear all costs to upgrade the POS system, and deploy to all merchant sites required in a reasonable timeframe to meet compliance requirements. IP INTEGRATION

Developing an IP two-way interface provides a number of key benefits: • Alternative to the ever diminishing support for serial port • Breaks the traditional 1-1 relationship between POS and EFTPOS device e.g. access many EFTPOS terminals from a single POS. • Ability to leverage the benefits of new technologies e.g. wireless connectivity between POS and EFTPOS device, pay at table, PDA, etc To ensure the integration is developed to take advantage of this technology, the following functionality must be accommodated. Example screenshots have been provided in an attempt to convey the desired “functional outcome”, not how this must be presented to the operator. The POS is to provide an administrative facility to pre-configure multiple IP EFTPOS devices. This should allow for a Device Identifier, IP address, IP Port and Merchant Number (to be applied to each transaction request). Using a specific merchant number per POS will assist in reconciling terminals against POS. This could potentially be managed via a user interface or file.

When a sale is tendered and EFTPOS (Debit or Credit) is selected as the payment method, if more than one EFTPOS device is configured the operator is to be prompted to select the EFTPOS device. Each EFTPOS device should be presented to the operator as the “Device Identifier”. Below is a very basic example of doing so. Consideration for touch screens would be recommended.

74 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

To support terminal sharing, it is important the POS disconnects the socket upon conclusion of each transaction. This will allow other POS systems to access the terminal. SAMPLE SOURCE CODE

The following code snippets are provided purely as a reference. It is not expected that developers will “cut + paste” this without thoroughly testing and proofing. EFTPOS NZ accepts no liability for the use of this code.

CONTROL CHARACTER HANDLING ON SPECIFIC FIELDS

const int FS = 0x1C; const int DLE = 0x10; const int STX = 0x02; const int ETX = 0x03; const int ENQ = 0x05; const int ACK = 0x06; const int NAK = 0x15; const int COMMA = 0x2C;

// // InsertControlChars // - DLE, insert DLE DLE => DLE DLE // - COMMA, replace with FS COMMA => FS // - FS, insert DLE FS => DLE FS // - STX/ETX/ACK/NAK/ENQ, insert DLE STX => DLE STX // // Returns modified length // public static int InsertControlChars(byte[] baSrc, int iLen, ref byte[] baDst, int inDstIdx) { int inRetLen = 0;

for (int i = 0; i < iLen; i++) { if ((baSrc[i] == DLE) || (baSrc[i] == FS) || (baSrc[i] == STX) || (baSrc[i] == ETX) || (baSrc[i] == ACK) || (baSrc[i] == NAK) || (baSrc[i] == ENQ)) { // Insert DLE baDst[inDstIdx + inRetLen++] = DLE; baDst[inDstIdx + inRetLen++] = baSrc[i]; continue; }

if(baSrc[i] == COMMA) { // Replace COMMA with FS so Terminal interprets correctly baDst[inDstIdx + inRetLen++] = FS; continue; } else { // Copy over "normal" byte

75 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

baDst[inDstIdx + inRetLen++] = baSrc[i]; continue; } } return inRetLen; }

// // RemoveControlChars // - DLE DLE, remove first DLE DLE DLE => DLE // - FS, replace with COMMA FS => COMMA // - DLE FS, remove DLE DLE FS => FS // - DLE STX/ETX/ACK/NAK/ENQ, remove DLE DLE STX => STX // // Returns modified length // public static int RemoveControlChars(byte[] baSrc, int inIdx, int iLen, ref byte[] baDst) { int inRetLen = 0; bool bLastCharDLE = false;

for (int i = inIdx; i < iLen; i++) { if((baSrc[i] == DLE) && (!bLastCharDLE)) { // Control DLE... Dump It! bLastCharDLE = true; continue; }

if(bLastCharDLE) { // // Last char was DLE, so copy over the next char regardless and reset DLE indicator // // Accomodates: // - DLE DLE, remove first DLE // - DLE FS, remove DLE // - DLE STX/ETX/ACK/NAK, remove DLE // baDst[inRetLen++] = baSrc[i]; bLastCharDLE = false; continue; } else if(baSrc[i] == FS) { // // FS all by it's lonesome... must really be a COMMA // // Accomodates: // - FS, replace with COMMA // baDst[inRetLen++] = COMMA; continue; } else { baDst[inRetLen++] = baSrc[i]; continue; } } return inRetLen; }

76 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

RESPONSE CODES

Terminal ISO ISO Description Text Response Code

000 APPROVED APPROVED

001 APPROVED_VERIFY_ID APPROVE WITH SIGNATURE followed by SIGNATURE APPROVED

002 APPROVED_PARTIAL_AMOUNT APPROVED

003 APPROVED_VIP APPROVED

004 APPROVED_MG_STRIPE_UPD APPROVED

005 Internal Response code - used for Stand-In APPROVE WITH when card is Approved as amount is under SIGNATURE Stand-In limits followed by APPROVED_ACCOUNT_TYPE_BY_ISSUER SIGNATURE APPROVED

100 REJECTED DO NOT HONOR

101 REJECTED_CARD_EXPIRED EXPIRED CARD

102 REJECTED_SUSP_FRAUD CONTACT BANK

103 REJECTED_CALL_ACQ CONTACT BANK

104 REJECTED_RESTRICTED_CARD CONTACT ISSUER

105 REJECTED_CALL_ACQ_SEQ CONTACT BANK

106 REJECTED_PIN_TRIES_EXCEEDED PIN TRIES EXCEEDED

107 REJECTED_CALL_ISSUER CONTACT ISSUER

108 REJECTED_CALL_ISSUER_SPECIAL CONTACT ISSUER

109 REJECTED_INV_PAYEE INVALID MERCHANT

110 REJECTED_INV_AMOUNT INVALID AMOUNT

111 REJECTED_INV_PAN INVALID CARD

113 REJECTED_COMISSION_NOT_ACCP CONTACT BANK

114 REJECTED_INV_ACCOUNT_TYPE INVALID ACCOUNT

115 REJECTED_REQ_FUNCTION_NOT_SUPP INVALID TRANSACTION ORTED

77 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Terminal ISO ISO Description Text Response Code

116 REJECTED_INSUFFICIENT_FUNDS CONTACT ISSUER

117 REJECTED_INV_PIN INCORRECT PIN

118 REJECTED_UNKNOWN_CARD CONTACT BANK

119 REJECTED_NOT_ALLOWED_FOR_CARDH CONTACT BANK OLDER

120 REJECTED_NOT_ALLOWED_FOR_TERMI DECLINED NAL

121 REJECTED_EXCEEDS_WITHDRAW_LIMIT CONTACT ISSUER

122 REJECTED_SECURITY_BREACH DECLINED

123 REJECTED_EXCEEDS_TIME_LIMIT CONTACT ISSUER

124 REJECTED_BREACH_OF_LAW CONTACT BANK

125 REJECTED_CARD_NOT_VALID_YET CONTACT ISSUER

126 REJECTED_INV_PIN_BLOCK SYSTEM ERROR

127 REJECTED_INV_PIN_LENGTH SYSTEM ERROR

128 REJECTED_PIN_KEY_SYNC_ERROR SYSTEM ERROR

129 REJECTED_SUSP_MISUSE CONTACT ISSUER

200 REJECTED_TC CONTACT ISSUER

201 REJECTED_TC_CARD_EXPIRED EXPIRED CARD

202 REJECTED_TC_SUSP_FRAUD CONTACT BANK

203 REJECTED_TC_CALL_ACQ CONTACT BANK

204 REJECTED_TC_RESTRICTED_CARD CONTACT BANK

205 REJECTED_TC_CALL_ACQ_SEQ CONTACT BANK

206 REJECTED_TC_PIN_TRIES_EXCEEDED PIN TRIES EXCEEDED

207 REJECTED_TC_SPECIAL_SITUATION CONTACT BANK

208 REJECTED_TC_LOST_CARD CONTACT BANK

209 REJECTED_TC_STOLEN_CARD CONTACT BANK

210 REJECTED_TC_SUSP_MISUSE CONTACT BANK

78 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Terminal ISO ISO Description Text Response Code

400 CANCELLATION_APPROVED APPROVED

800 MGMT_APPROVED APPROVED

901 ERROR_REQ_IN_PROCESS CONTACT BANK

902 ERROR_INV_TRANSACTION INVALID TRANSACTION

903 ERROR_REPEAT RETRY TRANSACTION

904 ERROR_SYNTAX FORMAT ERROR

905 ERROR_UNABLE_FWD_ACQ CONTACT BANK

906 ERROR_SERVICE_BREAK_ISSUER RETRY TRANSACTION (If used in conjunction with Additional Data Line it indicates a network error.)

907 ERROR_NO_CONN_ISSUER ISSUER UNAVAILABLE

908 ERROR_UNABLE_FWD CONTACT BANK

909 ERROR_SYSTEM DECLINED

913 ERROR_DUPLICATE CONTACT BANK

914 ERROR_UNABLE_TO_FIND_ORIG CONTACT BANK

915 ERROR_VERIF_ISSUER CONTACT BANK

916 ERROR_MAC DECLINED

940 PRIVATE USE ONLY - used for Stand-In ISSUER UNAVAILABLE when card is declined as amount is over Stand-In limits

941 PRIVATE USE ONLY - used when settling. CUTOVER COMPLETE Complete

942 PRIVATE USE ONLY -Used with Settlement TOTALS UNAVAILABLE inquiry - Totals unavailable

943 PRIVATE USE ONLY - Used for Matched EXCEEDED Refund when amount exceeds transaction TRANSACTION AMOUNT amount

Y1 APPROVED - EMV transaction approved APPROVED offline without requiring to go online

79 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Terminal ISO ISO Description Text Response Code

Y3 APPROVED - EMV transaction approved APPROVED offline, after unsuccessful attempt to go online

Z1- Mapped to DECLINED - EMV transaction declined offline CHIP DECLINED 413 without going online. Decision made between the card and the terminal.

Z1 DECLINED - tag AUC (tag 9F07) B2-bit8 for CASH NOT ALLOWED Contact interface = 0

Z3- Mapped to DECLINED - EMV transaction CHIP DECLINED 413 declined offline, after unsuccessful attempt to go online.

Z4 - Mapped to DECLINED - EMV transaction approved CHIP DECLINED 413 online, but declined chip application in card in response to Generate 2nd AC.

80 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

CARD TYPES

Below is a list of Card Type field values that are returned in financial transaction responses (e.g. PUR responses)

Card Description POSLink Card Type Value

AA Rewards AAREWARDS

AA Smartfuel AA SMARTFUEL

American Express AMEX

ATS Card (Canterbury co-operative) ATS

ASB active activa

Bankcard BANKCARD

BP Fuel Card BP Fuel Card

BP GIFTCARD BP GIFTCARD

Bartercard BARTERCARD

Card CARD LINK

Card net CARD NET

Combined Rural Traders (CRT) CRT

Diners DINERS

Ecard ECARD

Ecardz ECARDZ

81 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Card Description POSLink Card Type Value

Elders EVIA

Ezipay EZIPAY

Farmers (Amcal, Placemakers) FF CARD

Farmlands FARML

Finzsoft Solutions Ltd FINZSOFT

Flexipay FLEXIPAY

Fisher & Paykel Finance FPFGIFT

Gift Card (Finzsoft Solutions Ltd) GIFT CARD

Hells Pizza HELLS PIZZA

Indue Ltd INDUE

Japan Credit Bureau JCB

Leftfield WIN*WIN

Marketsmart SLOYAL

Mastercard MASTERCARD

MTA Giftcard MTA GIFTCARD

RD1.COM RD1.COM

Shell SHELL CARD

Superpoints SUPERPTS

82 Confidential | Reference: POSLink Two Way Interface Specification | Version 2.8.15 | Mar 28 2018

Card Description POSLink Card Type Value

Transactor Technologies TRANSACTOR

True Rewards True Rewards

Fisher & Paykel Qcard QCARD

Indue Ltd VII

UnionPay International UnionPay

Visa VISA

Vodafone Top Up VODAFONE

Westfield Gift Card WGIFT

W&I PAYMENT (WINZ) W&I PAYMENT

All other credit cards CREDIT

*All other debit cards DEBIT

83