EMV Offline Approval/Decline
Asked Answered
L

3

5

I'm developing an interface to a VeriFone VX terminal. Although, this is really a general EMV question. Our processor has a zero floor limit, so it will always be sent online. However, in case it ever changes, how do you know (what tags) if the transaction was approved or declined offline? Or, in other words, how do you know to go online or not?

Libratory answered 7/12, 2015 at 15:51 Comment(0)
R
11
how do you know (what tags) if the transaction was approved or declined offline? Or, in other words, how do you know to go online or not?

The terminal has to decides either to proceed the transaction offline, to go online or to reject the transaction. Here terminal send a command (AC) to the card and response of this command helps terminal to decide the action next followed.

Decision making is depend on three fields -
1) - Issuer Action Code
2) - Terminal Action Code
3) - TVR

IAC, TAC and TVR have the same structure. For more to know this data you can see EMV BOOK 3

IAC Usage Example-

suppose IAC-ONLINE (TAG - 9F0F) = 08 00 00 00 00 , 
here byte 1 bit 4 is on i.e. offline DDA Failed , 
Here Issuer want to go online if offline DDA Failed.

when terminal perform DDA and it fails, it set corresponding bit in TVR that means TVR says- offline DDA is failed for this card. now terminal check IAC online and found DDA_Failed bit is on and same on in TVR, here terminal decision would be to go online and then it send a Gen AC command to card with p1 = 80 ( ARQC - Online authorisation requested).

Coding of P1 as below
coding of p1:-

Ex- Gen AC command

C: 80 AE 80 00 other data
R: SW1/SW2=9000 (Normal processing: No error) Lr=32
77 1E 9F 27 01 80 9F 36 02 02 13 9F 26 08 2D F3
83 3C 61 85 5B EA 9F 10 07 06 84 23 00 31 02 08

. Now decision is made by card, Terminal get card decision in the response of Gen AC command. Card return tag 9F27 - Cryptogram Information Data. here card return 80 i.e. cards wants transaction to go Online.

Really your question is important and you need to read more spec for clarity on this topic. Please checks EMV BOOKs, for more in this topic. also can read - Terminal action analysis or Card Action analysis

Reveille answered 9/12, 2015 at 5:58 Comment(3)
Thanks. This is the confirmation I was looking for. Unfortunately, most of the documentation is from the point of view of the card to terminal interface. If you are interfacing a POS to a terminal, you have to sift through all the noise to determine what is relevant to your situation. Thanks again.Libratory
@Arjun, I see Issuer Action Code on 9F0D, 9F0E, and 9F0F. But I don't see "Terminal Action Code"? How to get "Terminal Action Code"? ThanksComplect
Terminal Action Codes will be based on the DO that were fed to Terminal by Card, so basically on reading the Issuer Action Codes and comparing it against the TVR, Terminal will issue the Generate AC. atlassian.idtechproducts.com/confluence/display/KB/…Reheat
B
0

Assuming you're using VeriFone's VIPA API, then the first 'Continue Transaction' command (GenAC1) returns tags wrapped in a TLV template (or 'constructed' TLV tag). The value of this template determines the result:

  • E3: Locally authorized
  • E4: Requires online authorization
Blucher answered 8/12, 2015 at 6:37 Comment(0)
M
0

AFAIK (in vanilla EMV) the tag Cryptogram Information Data ('9F27') returned during 1st GENERATE AC should serve this purpose.

See EMV Book 3, Table 14.

Beware, that this tag contains the decision of the card, so you won't see the cryptogram type the kernel required.

Monolayer answered 9/12, 2015 at 0:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.