Contact EMV Transaction, Phase 3 of 3: Complete Transaction

Complete Transaction

When the transaction is completed successfully, the Authenticate Transaction phase (or the Start EMV Transaction phase with the auto-authenticate enabled) with a request to GO_ONLINE (ARQC), contact the host, then call emv_completeTransaction()


If the card needs to go online, attempt to contact the host (using your payment-system API). You then must provide the emv_completeTransaction method with the parameters that tell it if you were able to successfully reach the host, and if so, provide the response code. Issuer Authentication Data and Issuer Scripts are not required, but if they were returned by the host, they should be passed to this method. Consult the SDK documentation for the method signature and calling conventions; also consult the sample demo app source code for an actual example of how to use this method. 


When the transaction is complete, the reader will invoke your MessageCallBack method with a DeviceState of TransactionData. The sample demo app code shows how to pull TLV (tag) data out of the IDTTransactionData object provided in the fourth argument to the callback. Typically, this tag data will include TVR and TSI data, in Tags 95 and 9B, respectively. 


Tags from the reader may contain masked and encrypted data. ID TECH encrypts some (but not all) tag data, using criteria described in 80000502-001 ID TECH Encrypted Data Output. The SDK has methods that will parse a TLV stream as necessary when the card data is returned, so manual parsing of the raw TLV data should not be required.

What will you need?

Everything you send to Complete Transaction is from the host, not your transaction.
Your host will provide the tag 8A (the authorization response code), they usually provide 91 (IAD) and occasionally will provide scripts 71/72.

You don't populate those items unless they are returned from your host.



What will you get back?

COMPLETE: 95: 0400100000 99: 9B: e800 9F02: 000000000100 9F03: 000000000000 9F10: 0110201005220400000000000000000000ff 9F13: 9F26: c1564741d5ccdbb2 9F27: 00 9F34: 1e0300 9F36: 00dc 9F37: 540f192b 9F4D: 9F4F: 9F5B:



Universal SDK Method:

emv_completeTransaction()