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>
Rate this article: