> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/sdi__emvbits_8h_source.md).

# sdi\_emvbits.h

[Go to the documentation of this file.](/adk-5.0-programmers-guide/readme/files/dir_20ccae320a59b06ef6618c5b737d5c02/dir_5e53e51918e971c6ecb7778a0c977255/dir_e180e45849113f6ee3b1d48173f5e474/sdi__emvbits_8h.md)

```cpp
 1 // -*- Mode: C++ -*-
 2 #ifndef SDI_EMVBITS_H_20200514
 3 #define SDI_EMVBITS_H_20200514
 4 
 7 namespace vfisdi {
 8 
 10 enum EMVAppFlowCapabilityBits {
 14  /* Byte 0 */
 15  EMV_CT_FORCE_RISK_MANAGEMENT =0,
 16  EMV_CT_BLACKLIST =1,
 19  EMV_CT_TRANSACTION_LOG =2,
 22  EMV_CT_PIN_BYPASS =3,
 23  EMV_CT_FORCE_ONLINE =4,
 24  EMV_CT_FORCE_ACCEPTANCE =5,
 25  /* Byte 1 */
 26  EMV_CT_CASH_SUPPORT =8,
 27  EMV_CT_CASHBACK_SUPPORT =9,
 28  EMV_CT_CHECK_INCONS_TRACK2_PAN =10,
 32  EMV_CT_CONF_AMOUNT_PIN =11,
 35  EMV_CT_DOMESTIC_CHECK =12,
 39  EMV_CT_TRANSACTION_TYPE_17_FOR_CASH =13,
 40  EMV_CT_CHECK_INCONS_TRACK2_NO_EXP =14,
 45  EMV_CT_TRANSACTION_TYPE_30_FOR_PREAUTH = 15,
 50  /* Byte 2 */
 51  EMV_CT_REFERRAL_AFTER_TXN =16,
 54  EMV_CT_DCC_CHECK =17,
 57  EMV_CT_REFUND_CONFIRM_AMOUNT =18,
 59  EMV_CT_USE_CFG_APPL_NAME =19,
 61  EMV_CT_FALLBACK_ON_INCONS_TRACK2 =20,
 69  EMV_CT_AMOUNT_CONFIRM_ON_SIGNATURE =21,
 72  EMV_CT_SDA_SELECTED_TVR_ON =22,
 75  EMV_CT_CASHBACK_OFFLINE_SUPPORT =23,
 76  /* Byte 3 */
 77  EMV_CT_REFUND_PROCESSING_RESTRICTIONS =24,
 79  EMV_CT_REFUND_NO_GENERATE_AC =25,
 81  EMV_CT_REFUND_FLOW_INTERAC =26,
 82  EMV_CT_REFUND_NO_ZERO_AMOUNT =27,
 83  EMV_CT_DPAS_DATA_STORAGE_SUPPORT =28,
 84  EMV_CT_DPAS_EXTENDED_LOGGING_SUPPORT =29,
 85  EMV_CT_DPAS_CDCVM_SUPPORT =30,
 86  EMV_CT_APP_FLOW_VISA_QUASI_CASH =31,
 89  /* Byte 4 */
 90  EMV_CT_APP_FLOW_CASHBACK_TRANS_TYPE_00=32,
 95 
 99  /* Byte 0 */
 100  EMV_CTLS_DOM_NO_FINAL_SELECT =0,
 102  EMV_CTLS_LOA_ENABLE =1,
 104  EMV_CTLS_CASH_SUPPORT =2,
 105  EMV_CTLS_CASHBACK_SUPPORT =3,
 106  EMV_CTLS_OMIT_NOT_ALLOWED_SELECTION =4,
 110  EMV_CTLS_FORCE_ENTRY_POINT =5,
 112  EMV_CTLS_FORCE_KERNEL_USAGE =6,
 113  EMV_CTLS_LIST_OF_AIDS_IF_PPSE_MISSING_ONLY =7,
 115  /* Byte 1 */
 116  EMV_CTLS_LIST_OF_AIDS_IF_PPSE_FAILED_ONLY =8,
 119  EMV_CTLS_CARD_READ_TXN_ZERO_AMOUNT =9,
 122  EMV_CTLS_SKIP_CARDSELECTION_APPS =10,
 124  EMV_CTLS_SKIP_TXN_LIMIT_CHECK =11,
 126  EMV_CTLS_FORCE_ONLINE =12,
 127  EMV_CTLS_WAIT_CARD_REMOVAL_END =13,
 129  EMV_CTLS_START_REMOVAL_DETECTION =14,
 132  EMV_CTLS_EP_EXTENDED_SELECTION =15,
 134  /* Byte2 */
 135  EMV_CTLS_MULTIPLE_AID_KERNEL_ID =16,
 139  EMV_CTLS_ENABLE_OFFLINE_CASHBACK =17,
 145  EMV_CTLS_RESET_TXN_TYPE =18,
 151  EMV_CTLS_CFG_APPL_NAME =19,
 154  EMV_CTLS_CARD_READ_SKIP_TXN_LIMIT_CHECK=20,
 156 };
 157 
 159 enum EMVKernelAppFlowCapabilityBits {
 163 
 164  /* Byte 0 */
 165  EMV_CTLS_READ_BALANCE_BEFORE_GAC_MK =0,
 166  EMV_CTLS_READ_BALANCE_AFTER_GAC_MK =1,
 167  EMV_CTLS_ENABLE_DATA_EXCHANGE_MK =2,
 168  EMV_CTLS_TRANSACTION_TYPE_17_FOR_CASH_MK =3,
 170  EMV_CTLS_CARD_READ_ACTION_ANALYSIS_MK =4,
 173 
 177  /* Byte 0 */
 178  EMV_CTLS_STATUS_CHECK_ENABLE_VK =0,
 180  EMV_CTLS_ZERO_CHECK_ENABLE_SKIP_VK =1,
 182  EMV_CTLS_ZERO_CHECK_ENABLE_ONLINE_VK =2,
 186  EMV_CTLS_CHECK_INCONS_TRACK2_PAN_VK =3,
 189  EMV_CTLS_CASHBACK_NOT_FORCED_CVM_VK =4,
 192  // EMV_CTLS_SUCCESS_TONE_ON_DECLINE_VK =5, /**< @deprecated: If GPO results in AAC: default was changed to sound solely
 193  // * success tone */
 194  EMV_CTLS_ALERT_TONE_ON_DECLINE_VK =6,
 197  EMV_CTLS_GET_DATA_9F68_VK =7,
 201  /* Byte 1 */
 202  EMV_CTLS_ENABLE_TAGS_AT_GPO_VK =8,
 204  EMV_CTLS_ZERO_CHECK_DISABLE_VK =9,
 205  // =10 RFU
 206  EMV_CTLS_ODO_SUPPORT_VK =11,
 210  EMV_CTLS_ODO_SDA_VK =12,
 211  EMV_CTLS_ODO_DDA_VK =13,
 212  EMV_CTLS_ODO_SDA_ERR_ONLINE_VK =14,
 214  EMV_CTLS_ODO_DDA_ERR_ONLINE_VK =15,
 217  /* Byte 2 */
 218  EMV_CTLS_OMIT_AUC_INT_CASH_VK =16,
 219  EMV_CTLS_OMIT_AUC_INT_CASHBACK_VK =17,
 220  EMV_CTLS_OMIT_AUC_DOM_CASH_VK =18,
 221  EMV_CTLS_OMIT_AUC_DOM_CASHBACK_VK =19,
 222  EMV_CTLS_ZERO_CASHBACK_AMOUNT_VK =20,
 225  EMV_CTLS_CASHBACK_TRANS_TYPE_VK9_VK =21,
 227  EMV_CTLS_QUASI_CASH_VK =22,
 229  EMV_CTLS_DO_NOT_CFG_9F21_TIME_VK =23,
 231 
 235  EMV_CTLS_CARDREAD_GENAC1_ARQC_AK =0,
 237  EMV_CTLS_TRANSACTION_TYPE_30_FOR_PREAUTH_AK =1,
 242  EMV_CTLS_STATUS_CHECK_ENABLE_AK =2,
 243  EMV_CTLS_ZERO_CHECK_ENABLE_ONLINE_AK =3,
 244  EMV_CTLS_DISABLE_9F6E_KERNEL_VERSION_AK =4,
 246 
 250  EMV_CTLS_MULTIPLE_RANDOM_NUMBERS_JK =0,
 253 
 257  EMV_CTLS_CASHBACK_NOT_FORCED_CVM_DK =0,
 260  EMV_CTLS_DATA_STORAGE_DK =1,
 261  EMV_CTLS_EXTENDED_LOGGGING_DK =2,
 262  EMV_CTLS_TORN_TXN_RECOVERY_DK =3,
 263  EMV_CTLS_DEFERRED_AUTHORISATION_DK =4,
 264  EMV_CTLS_STATUS_CHECK_ENABLE_DK =5,
 265  EMV_CTLS_ZERO_CHECK_ENABLE_SKIP_DK =6,
 267  EMV_CTLS_ZERO_CHECK_ENABLE_ONLINE_DK =7,
 270 
 274  EMV_CTLS_REQUEST_CDA_WITH_ARQC_IK =0,
 276  EMV_CTLS_REFUND_FLOW_INTERAC_IK =1,
 280 
 284  EMV_CTLS_READ_CARD_REFUND_EK =0,
 286 
 290  EMV_CTLS_CHECK_INCONS_TRACK2_PAN_PK =0,
 293  EMV_CTLS_CASHBACK_NOT_FORCED_CVM_PK =1,
 297 
 301  EMV_CTLS_STATUS_CHECK_ENABLE_CK =0,
 303  EMV_CTLS_ZERO_CHECK_ENABLE_SKIP_CK =1,
 305  EMV_CTLS_ZERO_CHECK_ENABLE_ONLINE_CK =2,
 307  EMV_CTLS_CHECK_INCONS_TRACK2_PAN_CK =3,
 310  EMV_CTLS_CASHBACK_NOT_FORCED_CVM_CK =4,
 313  EMV_CTLS_ENABLE_FDDA_VERSION_CK =5,
 316  EMV_CTLS_DISABLE_PIN_BELOW_CVM_CK =6,
 323 
 327  EMV_CTLS_SUPPORT_APPLI_AUTHENTICATE_GK =0,
 329  EMV_CTLS_SUPPORT_GETDATA_GK =1,
 331  EMV_CTLS_SUPPORT_PUTDATA_GK =2,
 333  EMV_CTLS_AMOUNT_MULTIPLY_100_GK =3,
 335 
 339  EMV_CTLS_SERVICE_FEATURE_ENABLE_RK =0,
 340  EMV_CTLS_TORN_TRANSACTION_INDICATOR_RK =1,
 341  EMV_CTLS_READ_RECORD_SFI1_QDDA_RK =2,
 342  EMV_CTLS_MULTIPLE_RANDOM_NUMBERS_RK =3,
 344  EMV_CTLS_ONLINE_PIN_SUPPORTED_RK =4,
 345  EMV_CTLS_SIGNATURE_SUPPORTED_RK =5,
 346  EMV_CTLS_ON_DEVICE_CVM_SUPPORTED_RK =6,
 347  EMV_CTLS_CVM_REQUIRED_RK =7,
 349  EMV_CTLS_ISSUER_UPDATE_SUPPORTED_RK =8,
 351 
 355  EMV_CTLS_STATUS_CHECK_ENABLE_WK =0,
 358  EMV_CTLS_ZERO_CHECK_ENABLE_SKIP_WK =1,
 360  EMV_CTLS_ZERO_CHECK_ENABLE_ONLINE_WK =2,
 363  EMV_CTLS_NO_CDCVM_WK =3,
 365 
 369  EMV_CTLS_EXPLICIT_SELECT_DOM =0,
 371 };
 372 
 373 
 375 enum EMVFlowOptionBits {
 376  EMV_CTLS_VISA_WAVE =0,
 379  EMV_CTLS_OR_NONEMV_MARKET =1,
 382  EMV_CTLS_UI_SCHEME_DEFAULT =2,
 385  EMV_CTLS_AL_USE_TID =3,
 388  EMV_CTLS_LED_NON_VISA_EUROPE =4,
 390  EMV_CTLS_LED_EP_OPTION_2 =5,
 393  EMV_CTLS_LED_INTERAC =6,
 394  EMV_CTLS_FORWARD_VFI_FAIL =7,
 399  EMV_CTLS_DISABLE_DISCOVER_ZIP_CHECK =8,
 403 };
 404 
 406 enum EMVChecksumOptionBits {
 407  /* Byte 0 */
 408  EMV_CT_CHECKSUM_INCLUDE_VERSION =0,
 409  EMV_CT_CHECKSUM_TRANSACTION_LOG =1,
 410  EMV_CT_CHECKSUM_EXCEPTION_FILE =2,
 411  EMV_CT_CHECKSUM_FORCE_ONLINE =3,
 412  EMV_CT_CHECKSUM_FORCE_ACCEPTANCE =4,
 413  EMV_CT_CHECKSUM_SUPPORT_ONL_DATA_CAPTURE =5,
 414  EMV_CT_CHECKSUM_SUPPORT_PSE =6,
 415  EMV_CT_CHECKSUM_ACCOUNT_TYPE =7,
 417  /* Byte 1 */
 418  EMV_CT_CHECKSUM_SUPPORT_ADVICES =8,
 419  EMV_CT_CHECKSUM_SUPPORT_CARDHOLDER_CONF =9,
 420  EMV_CT_CHECKSUM_PIN_BYPASS =10,
 421  EMV_CT_CHECKSUM_SUPPORT_DEFAULT_TDOL =11,
 422  EMV_CT_CHECKSUM_SUPPORT_BATCH_DATA_CAPTURE =12,
 423  EMV_CT_CHECKSUM_SUPPORT_VOICE_REF_ISS =13,
 424  EMV_CT_CHECKSUM_SUPPORT_VOICE_REF_CARD =14,
 425  EMV_CT_CHECKSUM_MULTILANG_SUPPORT =15,
 427  /* Byte 3 */
 428  EMV_CT_CHECKSUM_PIN_BYPASS_ONCE =16,
 430 };
 431 
 433 enum EMVTransactionOptionBits {
 437 
 438  // byte 0
 439  EMV_CT_SELOP_CBCK_APPLI_SEL =0,
 443  EMV_CT_SELOP_RESERV_ALLOW_B_ON_A =1,
 445  EMV_CT_SELOP_CBCK_DOMESTIC_APPS =2,
 448  EMV_CT_SELOP_ADDALL =3,
 449  EMV_CT_SELOP_ADDBLO =4,
 450  EMV_CT_NO_LONGEST_AID_MATCH =5,
 452  EMV_CT_ALLOW_BLOCKED =6,
 454  EMV_CT_SELOP_REMOVEALL_BUT_EXCLUDED =7,
 456  // byte 1
 457  EMV_CT_TXNOP_PIN_BYPASS_NO_SUBSEQUENT =8,
 460  EMV_CT_TXNOP_MULTIPLE_RANDOM_NUMBERS =9,
 463  EMV_CT_TXNOP_DCC_CALLBACK =10,
 468  EMV_CT_TXNOP_DCC_CALLBACK_ALWAYS =11,
 470  EMV_CT_TXNOP_NO_FALLBACK_AFTER_CVM =12,
 473  EMV_CT_TXNOP_AMOUNT_CONF =13,
 477  EMV_CT_TXNOP_ENFORCE_PIN =14,
 480  EMV_CT_TXNOP_FALLBACK_GOODSERVICE =15,
 483  // byte 2
 484  EMV_CT_TXNOP_MERCHINFO_CALLBACK =16,
 487  EMV_CT_TXNOP_RND_CALLBACK =17,
 489  EMV_CT_TXNOP_HOTLST_LOG_CALLBACK =18,
 492  EMV_CT_TXNOP_LOCAL_CHCK_CALLBACK =19,
 495  EMV_CT_TXNOP_CARDHINFO_CALLBACK =20,
 498  EMV_CT_TXNOP_EARLY_PIN_ENTRY =21,
 506  EMV_CT_TXNOP_DELAYED_EARLY_PIN =22,
 510  EMV_CT_TXNOP_KERNEL_PARSE_UNKNOWN_TLV =23,
 513  // byte 3
 514  EMV_CT_SELOP_NO_UTF8 =24,
 516  EMV_CT_TRXOP_NO_UTF8 =24,
 518  EMV_CT_TXNOP_TIP_AMOUNT_ZERO =25,
 521  EMV_CT_TRXOP_NO_CHECK_BB_PADDING =26,
 523  EMV_CT_TRXOP_NO_CHECK_DDLEN =27,
 525  // byte 4
 526  EMV_CT_ONL_OPTS_LAST_PIN_TRY =32,
 527  EMV_CT_TXNOP_PERFORM_ISS_ACQ_CVM =33,
 528  EMV_CT_TRXOP_WRITE_DS_OFFLINE_TXN =35,
 531  EMV_CT_TXNOP_FORCE_TACIAC_DEFAULT =36,
 534  EMV_CT_SELOP_WEEK_PRIORITY_APPS =37,
 536  EMV_CT_CUST_APPLI_SELECTION_PERFORMED =38,
 543  EMV_CT_SELOP_DETECT_EMPTY_LIST =39,
 547 
 551  // byte 0
 552  EMV_CTLS_TXNOP_SUPPRESS_ERRMSGBEEP =0,
 553  EMV_CTLS_TXNOP_REPEAT_L1 =1,
 554  EMV_CTLS_TXNOP_NO_DOMESTIC_KERNEL =2,
 555  EMV_CTLS_TXNOP_NO_GLOBAL =3,
 556  EMV_CTLS_TXNOP_PP_TORNTXN_RESET =4,
 557  EMV_CTLS_TXNOP_AK_DELAYED_AUTH =5,
 559  EMV_CTLS_TXNOP_REMOVEALL_BUT_EXCLUDED =7,
 561  // byte 1
 562  EMV_CTLS_TXNOP_CANDLIST_CALLBACK =8,
 563  EMV_CTLS_TXNOP_APPSELECTED_CALLBACK =9,
 565  EMV_CTLS_TXNOP_NO_BUL12 =10,
 567  EMV_CTLS_TXNOP_NO_LONGEST_AID_MATCH =12,
 569  EMV_CTLS_TXNOP_SPURIOUS_CARD_DETECT =13,
 571  EMV_CTLS_TXNOP_NO_PAN_RETRIEVE_DEF =14,
 574  EMV_CTLS_TXNOP_RND_CALLBACK =15,
 576  //byte 2
 577  EMV_CTLS_TXNOP_OMIT_CHECKSUM_CHECK =16,
 579  EMV_CTLS_TXNOP_STOP_ON_CHKSUM_DIFF =17,
 581  EMV_CTLS_TXNOP_NO_AMOUNT_PRECHECK =19,
 585  EMV_CTLS_TXNOP_L1_ERROR_CALLBACK =20,
 589  EMV_CTLS_TXNOP_SETUP_WAIT_FOR_ERROR =21,
 592  EMV_CTLS_TXNOP_WEEK_PRIORITY_APPS =22,
 593  EMV_CTLS_TXNOP_PRELOAD_TRANSACTION =23,
 596  //byte 3
 597  EMV_CTLS_TXNOP_KEEP_MULTIPLE_KERNEL =24,
 598  EMV_CTLS_TXNOP_TIP_AMOUNT_ZERO =25,
 601  EMV_CTLS_TXNOP_SILENT_ON_EMPTY_LIST =26,
 603  EMV_CTLS_TXNOP_CVM_REQUIRED =27,
 605  EMV_CTLS_TXNOP_LONG_TAP_TIMER =28,
 610  EMV_CTLS_TXNOP_SEND_POI_INFORMATION =29,
 612  EMV_CTLS_TXNOP_BEEP_BY_BUZZER =30,
 614  EMV_CTLS_TXNOP_BEEP_OS_VOLUME =31,
 617 };
 618 
 620 enum EMVTransactionStepBits {
 621  // byte 0
 622  EMV_CT_RETURN_CANDIDATE_LIST =0,
 623  // Return after Final Select is given per architecture (possibility to use apps controlled kernels after Final Select, like in CTLS mode)
 624  EMV_CT_RETURN_AFTER_GPO =1,
 625  EMV_CT_RETURN_AFTER_READ_RECORD =2,
 626  EMV_CT_RETURN_AFTER_DATA_AUTH =3,
 627  EMV_CT_RETURN_FOR_CVM_PROCESS =4,
 628  EMV_CT_RETURN_FOR_CVM_FINISH =5,
 629  // =6 leave gap for a return after CVM processing but before risk management
 630  EMV_CT_RETURN_AFTER_RISK_MANGEMENT =7,
 631  // other values are RFU
 632  // byte 1
 633  //Extra features where to be retuerned
 634  EMV_CT_RETURN_CAND_LIST_PREPROC =8,
 635  EMV_CT_RETURN_CAND_LIST_SKIP =9,
 636  // byte 2
 637  // This byte defines if callbacks are still used if the framework is used in reentrance mode and allows to set callback specific params in the reentrance mode.
 638  EMV_CT_MS_ADD_TO_HOTLIST =16,
 639  EMV_CT_MS_DECLINE_AAC =17,
 640  EMV_CT_MS_ABORT_TXN =18,
 641  EMV_CT_MS_PIN_BYPASS =19,
 642  EMV_CT_MS_CUST_CVM_OK =20,
 643  EMV_CT_MS_PINPAD_NOTPRESENT =21,
 644  EMV_CT_MS_PINICC_STOP =22,
 645  EMV_CT_MS_RETURN_CALLBACKS =23,
 646 };
 647 
 649 enum EMVDomesticOptionBits {
 650  EMV_DOM_AUSTRIAN_NGV =0,
 651  EMV_DOM_TXN_INTERCEPT =1,
 653  EMV_DOM_ABORT_NO_TEXT =2,
 656  EMV_DOM_TIP_OFF =3,
 659 };
 660 
 661 } // namespace vfisdi
 662 
 663 #endif
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/sdi__emvbits_8h_source.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
