IDTech iOS SDK Guide  1.1.151
API reference for NEO2
IDTechEMV.h
1 //
2 // IDTechEMV.h
3 // IDTech
4 //
5 // Created by Randy Palermo on 7/31/14.
6 // Copyright (c) 2014 IDTech Products. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 #import "APDUData.h"
11 #import <IDTech/IDTEMVData.h>
12 #import <IDTech/IDT_DEVICE.h>
13 
21 typedef struct {
22  unsigned char acquirerIdentifier[6];
23  unsigned char aid[16];
24  unsigned char aidLen;
25  unsigned char applicationVersionNumber[2];
26  unsigned char tacDefault[5];
27  unsigned char tacDenial[5];
28  unsigned char tacOnline[5];
29  unsigned char transactionCurrencyCode[2];
31  unsigned char useTACDefault;
32  unsigned char useTACDenial;
33  unsigned char useTACOnline;
35 
36 
38 
39 typedef enum{
40  EMV_RC_APPROVED = 0X00,
41  EMV_RC_DECLINED = 0X01,
42  EMV_RC_GO_ONLINE = 0X02,
43  EMV_RC_FAILED = 0X03,
44  EMV_RC_SYSTEM_ERROR = 0X05,
45  EMV_RC_NOT_ACCEPT = 0X07,
46  EMV_RC_FALLBACK = 0X0A,
47  EMV_RC_CANCEL = 0X0C,
48  EMV_RC_OTHER_ERROR = 0X0F,
49  EMV_RC_TIME_OUT = 0X0D,
50  EMV_RC_OFFLINE_APPROVED = 0X10,
51  EMV_RC_OFFLINE_DECLINED = 0X11,
52  EMV_RC_REFERRAL_PROCESSING = 0X12,
53  EMV_RC_ERROR_APP_PROCESSING = 0X13,
54  EMV_RC_ERROR_APP_READING = 0X14,
55  EMV_RC_ERROR_DATA_AUTH = 0X15,
56  EMV_RC_ERROR_PROCESSING_RESTRICTIONS = 0X16,
57  EMV_RC_ERROR_CVM_PROCESSING = 0X17,
58  EMV_RC_ERROR_RISK_MGMT = 0X18,
59  EMV_RC_ERROR_TERM_ACTION_ANALYSIS = 0X19,
60  EMV_RC_ERROR_CARD_ACTION_ANALYSIS = 0X1A,
61  EMV_RC_ERROR_APP_SELECTION_TIMEOUT = 0X1B,
62  EMV_RC_ERROR_NO_CARD_INSERTED = 0X1C,
63  EMV_RC_ERROR_APP_SELECTING = 0X1D,
64  EMV_RC_ERROR_READING_CARD_APP = 0X1E,
65  EMV_RC_ERROR_POWER_CARD_ERROR = 0X1F,
66  EMV_RC_ERROR_NO_RESULT_CODE_PROVIDED_FOR_COMPLETION = 0X20,
67  EMV_RC_APPROVED_WITH_ADVISE_NO_REASON = 0X21,
68  EMV_RC_APPROVED_WITH_ADVISE_IA_FAILED = 0X22,
69  EMV_RC_ERROR_AMOUNT_NOT_SPECIFIED = 0X23,
70  EMV_RC_ERROR_CARD_COMPLETION = 0X24,
71  EMV_RC_ERROR_DATA_LEN_INCORRECT = 0X25,
72  EMV_RC_CALL_YOUR_BANK = 0X26,
73  EMV_RC_NO_ICC_ON_CARD = 0X27,
74  EMV_RC_NEW_SELECTION = 0X28,
75  EMV_RC_START_TRANSACTION_SUCCESS = 0X29,
76  EMV_RC_ERROR_APP_SELECTION_CANCEL = 0X2A
77 } EMV_RC_Types;
78 
79 typedef enum{
80  MESSAGE_INSERT_CARD = 0,
81  MESSAGE_REMOVE_CARD,
82  MESSAGE_BAD_ICC,
83  MESSAGE_TRANSACTION_CANCELLED,
84  MESSAGE_FALLBACK_FAILED,
85  MESSAGE_USE_CHIP_READER,
86  MESSAGE_PROCESSING,
87  MESSAGE_READY,
88  MESSAGE_USE_MSR,
89  MESSAGE_NOT_ACCEPTED
90 }MESSAGE_Types;
91 
92 typedef enum{
93  EMV_COMPLETION_RESULT_ACCEPTED = 0X00,
94  EMV_COMPLETION_RESULT_UNABLE_TO_GO_ONLINE = 0X01,
95  EMV_COMPLETION_RESULT_TECHNICAL_ISSUE = 0X02,
96  EMV_COMPLETION_RESULT_DECLINED = 0X03,
97  EMV_COMPLETION_RESULT_ISSUER_REFERAL = 0X04
98 } EMV_COMPLETION_RESULT;
99 
107 typedef struct {
108  unsigned char terminalCountryCode[2];
109  unsigned char merchantCategoryCode[2];
110  unsigned char merchantID[15];
111  unsigned char terminalID[8];
112  unsigned char defaultTACDefault[5];
113  unsigned char defaultTACDenial[5];
114  unsigned char defaultTACOnline[5];
115  unsigned char useDefaultTACDefault;
116  unsigned char useDefaultTACDenial;
117  unsigned char useDefaultTACOnline;
118  unsigned char terminalLocation[36];
119 
121 
122 
123 
124 
126 @protocol IDTechEMV_Delegate <NSObject>
127 @optional
128 - (void) confirmApplicationSelection:(NSArray*)labelArray retry:(BOOL)tryAgain;
129 
140 - (void) languagePreference:(NSData*)lang;
155 - (void) emvTransactionData:(IDTEMVData*)emvData errorCode:(int)error performReversal:(BOOL)reversal;
170 - (void) emvTransactionMessage:(MESSAGE_Types)message;
171 
172 - (void) swipeMSRDataEMV:(IDTMSRData*)cardData emv:(NSDictionary*)emvData;
173 
174 @end
175 
179 @interface IDTechEMV : NSObject <IDT_Device_Delegate> {
180  id<IDTechEMV_Delegate> delegate;
181 }
182 
183 
184 @property(strong) id<IDTechEMV_Delegate> delegate;
185 
186 
187 
196 
197 
217 -(void) completeOnlineEMVTransaction:(EMV_COMPLETION_RESULT)result resultCode:(NSString*)rc issuerAuthenticationData:(NSString*)iad issuerScripts:(NSString*)scripts;
218 
225 -(void) confirmApplication:(int)index;
226 
227 
234 
235 
236 
247 -(NSDictionary*) getAllTags;
248 
257 -(NSString*) getEMVKernelVersion;
258 
259 
268 -(NSString*) getBuildVersion;
269 
278 -(NSString*) getEMVKernelChecksum;
279 
288 -(NSString*) getEMVConfigurationChecksum;
289 
301 -(NSData*) getTag:(NSString*)tagName;
302 
303 
314 -(void) removeApplicationData:(NSString*)AID;
315 
316 
317 
318 
319 
320 
321 
322 
332 -(NSArray*) retrieveAIDList;
333 
334 
346 -(IDTech_ApplicationID) retrieveApplicationData:(NSString*)AID;
347 
348 
349 
350 
360 
361 
362 
373 -(void) setApplicationData:(IDTech_ApplicationID)data;
374 
375 
376 
377 
390 -(void) setTag:(NSString*)tagName tagData:(NSData*)data;
391 
392 
404 -(void) preloadEMVCardData;
405 
406 
415 -(void) setTerminalData:(IDTech_TerminalData)data;
416 
417 
418 
425 - (void) cancelTransaction;
426 
479 -(void) startEMVTransaction:(float)amount timeout:(int)timeout transactionType:(int)type additionalTags:(NSMutableDictionary *)tags;
480 
489 -(void) accelerateRead:(BOOL)enabled;
490 
496 -(void) sendSystemError;
497 
498 @end
IDTechEMV * sharedController()
void preloadEMVCardData()
Definition: IDTechEMV.h:179
NSString * getBuildVersion()
Definition: IDTechEMV.h:21
unsigned char useDefaultTACDefault
Indicates if tacDefault value should be used as terminal default value.
Definition: IDTechEMV.h:115
Definition: IDTMSRData.h:21
unsigned char aidLen
AID’s length.
Definition: IDTechEMV.h:24
unsigned char useTACDenial
Indicates if tacDefault value should be used.
Definition: IDTechEMV.h:32
Definition: IDTechEMV.h:107
void confirmApplicationCancel()
unsigned char applicationSelectionIndicator
Indicates if partial AID matching is allowed. 0x01 = allowed DF62.
Definition: IDTechEMV.h:34
IDTech_TerminalData retrieveTerminalData()
id< IDTechEMV_Delegate > delegate
Definition: IDTechEMV.h:180
NSArray * retrieveAIDList()
unsigned char useTACDefault
Indicates if tacDefault value should be used.
Definition: IDTechEMV.h:31
void cancelTransaction()
Definition: IDTechEMV.h:126
unsigned char useDefaultTACOnline
Indicates if tacOnline value should be used as terminal default value.
Definition: IDTechEMV.h:117
NSString * getEMVKernelChecksum()
unsigned char transactionCurrencyExponent
Transaction Currency Exponent. Example: Amount $4.53 is managed as 453. Tag 5F36. ...
Definition: IDTechEMV.h:30
void sendSystemError()
NSDictionary * getAllTags()
unsigned char useTACOnline
Indicates if tacDefault value should be used.
Definition: IDTechEMV.h:33
NSString * getEMVConfigurationChecksum()
NSString * getEMVKernelVersion()
unsigned char useDefaultTACDenial
Indicates if tacDenial value should be used as terminal default value.
Definition: IDTechEMV.h:116
Definition: IDTEMVData.h:16