Skip to main content

SCA Functional Specification

DUPLICATE CHECK

Last updated: 07-Apr-2025

DUPCHECK command returns all the records of suspected duplicate transactions from Payware Connect gateway. The response of DUPCHECK is not device specific. It returns all the records across all the devices under the particular PWC client ID.

Device UI Required: No

Request Packet
Field Rule Type Minimum Maximum Value(s) Description
FUNCTION_TYPE Required Static value N/A N/A REPORT Type of function
COMMAND Required Static value N/A N/A DUPCHECK Command name
DUPCHECK_DATE Required Date       Date format be MM/DD/YYYY. Example: 02/01/2016
DUPCHECK_FROMTIME Required Time       Duplicate check starting time. Example: 15:20:00
DUPCHECK_TOTIME Required Time       Duplicate check ending time. Example: 16:20:00
COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10 Optional Character 1 255   These fields represent Column 3 to Column 10. These fields are expected for the Merchants internal POS System, which will record any additional data and link those to the PWC CLIENT_ID and CTROUTD. When a value for COL_n is passed in, that same value will be returned in the response. These COL_n values are not indexed, or searchable in any command report. These fields are not sent to any payment processor. Example: Merchant defined data
POS_RECON Optional Character 1 30   POS reconciliation. POS Reconciliation field to be echoed back in response to POS. Example: RetailPOS1
COUNTER Required Numeric 1 10   COUNTER is used for a given MAC label. Each COUNTER should be higher than the last one. This is sed to authenticate the POS. Example: 100
MAC Required Base64 Encoded Data N/A N/A   Message Authentication Code. This is used to authenticate the POS.
MAC_LABEL Required Character 1 50   Associated label that tells the device which MAC_KEY to use to decrypt the value of MAC. This is used to authenticate the POS. Example: REG1
Example

Following is an example of request packet

<TRANSACTION>
    <FUNCTION_TYPE>REPORT</FUNCTION_TYPE>
    <COMMAND>DUPCHECK</COMMAND>
    <DUPCHECK_DATE>02/01/2016</DUPCHECK_DATE>
    <DUPCHECK_FROMTIME>15:20:00</DUPCHECK_FROMTIME>
    <DUPCHECK_TOTIME>16:20:00</DUPCHECK_TOTIME>
    <COUNTER>100</COUNTER>
    <MAC></MAC>
    <MAC_LABEL>REG2</MAC_LABEL>
    </TRANSACTION>
Response Packet
Field Type Value Description
CLIENT_ID Numeric   CLIENT_ID is the combination an ACCOUNT number, a SITE number, and a TERMINAL number in that order. Example: 100010001
DUPCHECK_DATE Date   Duplicate check date. Example: 02/01/2016
DUPCHECK_FROMTIME Time   Duplicate check starting time. Example: 15:20:00
DUPCHECK_TOTIME Time   Duplicate check ending time. Example: 16:20:00
RECORDS     Records of each possible duplicate transaction. See RECORD below for elements.
COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10 Character   Column 3 to Column 10 fields value will be echoed in POS response. These fields are not sent to any payment processor.
POS_RECON Character   POS reconciliation field echoed back if sent in request. Example: RetailPOS1

RECORD Child Elements

Field Type Value Description
Trans_Date Date   Transaction date. Example: 2016.02.01
Trans_Time Time   Transaction time. Example: 15:31:22
Client_ID Numeric   ACCOUNT/SITE/TERM. Example: 100010001
INTRN_SEQ_NUM Numeric   Internal sequence number. Example: 123456789
Acct_Num Numeric   Returns the masked account number. Example: 400555******0019
Trans_Amount Floating point number   Transaction amount returned by gateway (no decimal point) 100 = 1.00. Example: 100
Status_Code Numeric   Transaction status code. Example: 4
Payment_Type Character   Payment type. Example: CREDIT
Command Character   Command name. Example: SALE
Invoice Character   Merchant invoice number. Example: 3
BusName Character   Business name. Example: Jon’s Rentals

Transaction Performance Metric

  

Note

These fields are returned, if SCAPERFMETRIC parameter (Application Parameters) is enabled.

Field Type Value Description
UI_TIME Time   This indicates the time duration, for which the device screen is displayed (like error message, prompt screen, remove card screen) till any user action is performed in the command execution flow. This field is not applicable to capture the time for the Processing, Authorizing and transaction status screen. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <UI_TIME>44.028</UI_TIME>
HOST_TIME Time   This indicates the time taken for the Connection to the host, sending request and receives data from the host. This field also take the cumulative time for multiple requests which may sent to the host during the transaction including two legged transactions, timeout requests, Auto Last Tran requests, DCC, Credit app proxy. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <HOST_TIME>1.389</HOST_TIME>
CMD_TIME Time   This field indicates the total amount of time for a command, which is executed by the application from request received to the response sent. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <CMD_TIME>70.765</CMD_TIME>
Example

Following is an example of response packet

<RESPONSE>
<ACCOUNT>1</ACCOUNT>
<SITE>0001</SITE>
<TERM>0001</TERM>
<DUPCHECK_DATE>02/01/2016</DUPCHECK_DATE>
<DUPCHECK_FROMTIME>00:00:00</DUPCHECK_FROMTIME>
<DUPCHECK_TOTIME>23:59:59</DUPCHECK_TOTIME>
<RECORDS>
        <RECORD>
                <Trans_Date>2016.02.01</Trans_Date>
                <Trans_Time>07:21:30</Trans_Time>
                <ACCOUNT>1</ACCOUNT>
                <SITE>0001</SITE>
                <TERM>0001</TERM>
                <Acct_Num>400555******0019</Acct_Num>
                <Trans_Amount>2100</Trans_Amount>
                <Status_Code>2</Status_Code> not in UGP
                <Payment_Type>CREDIT</Payment_Type>
                <Command>SALE</Command>
                <BusName>ABCTestInc</BusName>
        </RECORD>
        <RECORD>
                <Trans_Date>2016.02.01</Trans_Date>
                <Trans_Time>07:21:37</Trans_Time>
                <ACCOUNT>1</ACCOUNT>
                <SITE>0001</SITE>
                <TERM>0001</TERM>
                <Acct_Num>400555******0019</Acct_Num>
                <Trans_Amount>2100</Trans_Amount>
                <Status_Code>2</Status_Code>
                <Payment_Type>CREDIT</Payment_Type>
                <Command>SALE</Command>
                <BusName>ABCTestInc</BusName>
        </RECORD>
        <RECORD>
                <Trans_Date>2016.02.01</Trans_Date>
                <Trans_Time>07:36:20</Trans_Time>
                <ACCOUNT>1</ACCOUNT>
                <SITE>0001</SITE>
                <TERM>0001</TERM>
                <Acct_Num>400555******0019</Acct_Num>
                <Trans_Amount>2100</Trans_Amount>
                <Status_Code>2</Status_Code>
                <Payment_Type>CREDIT</Payment_Type>
                <Command>SALE</Command>
                <BusName>ABCTestInc</BusName>
        </RECORD>
</RECORDS>
</RESPONSE>

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo