The data on this instance will be migrated to iD Tech Confluence Cloud on Thursday April 20, 2023. The migration has been completed. This instance will be set to read only to be used for historical purposes only.
Page tree
Skip to end of metadata
Go to start of metadata

Complete Transaction

When the transaction successfully completes the Authenticate Transaction phase (or the Start EMV Transaction phase if auto-authenticate is 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 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 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()