When the transaction successfully emerges from the Authenticate Transaction phase (or the Start EMV Transaction phase if auto-authenticate was enabled) with a request to GO_ONLINE (ARQC), you should contact the host, then call emv_completeTransaction().
If the card wants you to go online, you should 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, you must 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. IDTech encrypts some (but not all) tag data, using criteria described in ID TECH document 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?
Universal SDK Method: