Generate a dsiEMVUS Request

Document created by matthew.milner on May 9, 2016Last modified by matthew.milner on Jun 1, 2016
Version 5Show Document
  • View in full screen mode

dsiEMVUS and dsiPDCX from Datacap Systems, Inc. are locally installed Windows ActiveX controls that serve as the application interface between the point-of-sale, the EMV device, and Datacap’s U.S. EMV-certified in-storeNETePay. The POS sends transaction XML commands to the dsiEMVUS or dsiPDCX, which then takes control of the remaining processing flow.

 

dsiEMVUS enables EMV transaction processing. We recommend that ISVs implement dsiPDCX as a complement to dsiEMVUS if they wish to support any of the following:

 

All transactions supported by dsiEMVUS should be sent through dsiEMVUS. In most cases this includes all credit and debit transactions. Note that dsiEMVUS and dsiPDCX do NOT interact with each other; they are two separate controls. If you wish to use dsiPDCX together with dsiEMVUS, a common approach is to create two separate objects in the code, then determine at runtime which object the XML should be routed to.

 

When preparing the ProcessTransaction method developers should note:

  • The same MerchantID (MID) can be used for both dsiEMVUS and dsiPDCX.
  • All transactions can be sent tothe local, in-Store NETePay address.
    • The Secure device is different:
    • dsiEMVUS: EMV_VX805_MERCURY
    • dsiPDCX: VX805XPI_MERCURY_E2E

 

 

Prerequisites and Software Controls

 

 

 

Transaction Flow

 

  1. Configure the EMV PIN pad – After installing dsiEMVUS, dsiPDCX and configuring the NETePay, run the EMVParamDownload.
  2. Initiate ProcessTransaction – send method to build the XML transaction request.
  3. Execute EMVPadReset - before and after each ProcessTransaction request.
  4. Parse Response Details – after each transaction request parse the XML response and display the necessary data to the end user to complete the transaction.

 

 

PIN pad Configuration

 

EMVParamDownload is a dsiEMVUS device command that loads deployment parameters and security information into the chip card reader. This command should be performed when a new reader is first installed, when a reader is replaced, or as requested by Vantiv Integrated Payments.

 

! ImportantNote DO NOT USESecureDeviceInitfordsiPDCX on a device after an EMVParamDownload(dsiEMVUS) has been performed. Executing a SecureDeviceInit will override the EMV parameters and result in errors when EMV transactions are run.

 

Request

 

<?xml version=”1.0”?> 
<TStream> 
<Admin> 
<HostOrIP>127.0.0.1</HostOrIP> 
<IpPort>9000</IpPort> 
<MerchantID>755847002</MerchantID> 
<OperatorID>test</OperatorID> 
<UserTrace>DevInt</UserTrace> 
<TranCode>EMVParamDownload</TranCode> 
<SecureDevice>EMV_VX805_MERCURY</SecureDevice> 
<ComPort>9</ComPort> 
<SequenceNo>0010010010</SequenceNo> 
</Admin> 
</TStream> 

 

Response

 

<?xml version=”1.0”?> 
<RStream> 
<CmdResponse> 
<ResponseOrigin>127.0.0.1</ResponseOrigin> 
<DSIXReturnCode>000000</ DSIXReturnCode > 
<CmdStatus>Success</ CmdStatus> 
<TextResponse>SUCCESS</TextResponse> 
<SequenceNo>0010010010</SequenceNo> 
<UserTrace>DevInt</UserTrace> 
</CmdResponse> 
<TranResponse> 
<TranCode>EMVParamDownload</TranCode> 
</TranResponse> 
</RStream>

 

An EMVPadReset is a device command that should be programmatically performed before every transaction to ensure that a card was not left in the chip reader. If there is a card in the reader, the PIN pad will display Remove Card and wait until the card is removed. Another EMVPadReset should then be sent to reset the device.

 

Request

 

<?xml version=”1.0”?> 
<TStream> 
<Admin> 
<HostOrIP>127.0.0.1</HostOrIP> 
<IpPort>9000</IpPort> 
<MerchantID>755847002</MerchantID> 
<OperatorID>test</OperatorID> 
<UserTrace>DevInt</UserTrace> 
<TranCode>EMVPadReset</TranCode> 
<SecureDevice>EMV_VX805_MERCURY</SecureDevice> 
<ComPort>9</ComPort> 
<SequenceNo>0010010010</SequenceNo> 
</Admin> 
</TStream> 

 

Response

 

<?xml version="1.0"?>  
<RStream>  
  <CmdResponse>  
    <ResponseOrigin>Client</ResponseOrigin>        
    <DSIXReturnCode>000000</DSIXReturnCode>  
    <CmdStatus>Success</CmdStatus>  
    <TextResponse>Reset Successful.</TextResponse>       
    <SequenceNo>0010010010</SequenceNo>  
    <UserTrace>Dev1</UserTrace>  
  </CmdResponse>  
</RStream> 

 

 

Initiate ProcessTransaction Method

 

Send a request by instantiating the dsiEMVUS or dsiPDCX and then sending the command string using the ProcessTransaction method. The ProcessTransaction method provides processing for all transaction types and codes. dsiEMVUS and dsiPDCX use this single method with an XML format string argument to define what type of transaction processing will take place.

 

dsiEMVUS Payment Request

 

dsiEMVX = new DSIEMVXLib.DsiEMVX(); 
string response = dsiEMVX.ProcessTransaction(txtRequest.Text); 

 

PDCX Payment Request

 

string response = _pdcx.ProcessTransaction(request, 1, string.Empty, string.Empty); 

 

View our code on GitHub

View Payment Transactions to learn how to send each payment type supported with dsiEMVUS and dsiPDCX.

1 person found this helpful

Attachments

    Outcomes