Handle encoding and decoding of BER-TLV data to/from string.
(emvString, result, dolIdx)
Decodes EMV tag string from BER-TVL format to EMV tag object
params
- emvString (string) - EMV tags in BER-TLV format
- result (object) - result to return
- dolIdx (integer) - position of the current tag in a DOL
result (object); each key: value pair contains the following:
-
key - EMV tag key
-
value (object) - EMV tag object
- tag (string) - EMV tag
- val (string) - EMV tag value OR nested EMV tags object, in the case when tag is a DOL tag
- len (integer) - length of val in bytes
NOTE: if the current tag is a DOL tag, val will have the following key: value structure:
-
key - EMV tag key
-
value (object) - EMV tag object
- tag (string) - EMV tag
- val (string) - EMV tag value; NOTE: as the value of a DOL tag does not contain values for nested tags, this is usually ''
- len (integer) - length of val in bytes
- idx (integer) - position of the tag in the DOL
(emvTags)
Adds values for tags nested in DOLs
params
- emvTags (object) - each key: value pair contains the following:
- key - EMV tag key
- value (object) - EMV tag object
- tag (string) - EMV tag
- val (string) - EMV tag value; NOTE: as the value of a DOL tag does not contain values for nested tags, this is usually ''
- len (integer) - length of val in bytes NOTE: for each DOL tag, val will have the following key: value structure:
- key - EMV tag key
- value (object) - EMV tag object
- tag (string) - EMV tag
- val (string) - EMV tag value
- len (integer) - length of val in bytes
- idx (integer) - position of the tag in the DOL
result (object) - emvTags input object, with added values for tags nested in DOLs
(emvTags)
Encodes EMV tag object to EMV tag string
params
- emvTags (object) - each key: value pair contains the following:
- key - EMV tag key
- value (object) - EMV tag object
- val (string) - EMV tag value
- tag (string) - EMV tag
- len (integer) - length of val in bytes
- idx (integer) - indicates the position of the current tag; NOTE: present only in case the input tags have to be ordered before encoding
result
- (string) - EMV tag string in BER-TLV format
(emv)
Reduces EMV tag object to key: value pairs
params (object); each key: value pair contains the following:
- key - EMV tag key
- value (object) - EMV tag object
- tag (string) - EMV tag
- val (string) - EMV tag value
- len (integer) - length of val in bytes
result (object); each key: value pair contains the following:
- key - EMV tag key
- value (string) - EMV tag value val
(emv)
Expands key: value pairs to EMV tags object
params (object); Default: {}; each key: value pair contains the following:
- key - EMV tag key
- value (string) - EMV tag
result (object); each key: value pair contains the following:
- key - EMV tag key
- value (object) - EMV tag object
- tag (string) - EMV tag
- val (string) - EMV tag value
- len (integer) - length of val in bytes
-
Amount, Authorised (NUMERIC)
- tag: 9F02
- key: amountAuthorised
-
Amount, Other (NUMERIC)
- tag: 9F03
- key: amountOther,
-
Terminal Country Code
- tag: 9F1A
- key: terminalCountryCode,
-
Transaction Currency Code
- tag: 5F2A
- key: transactionCurrencyCode,
-
Transaction Date
- tag: 9A
- key: transactionDate,
-
Transaction Type
- tag: 9C
- key: transactionType,
-
Template, AEF Data
- tag: 70
- key: templateAEFData,
-
Issuer Public Key Certificate
- tag: 90
- key: issuerPublicKeyCertificate,
-
Issuer Public Key Remainder
- tag: 92
- key: issuerPublicKeyRemainder,
-
Certification Authority Public Key Index (PKI)
- tag: 8F
- key: certificationAuthorityPublicKeyIndex,
-
Unpredictable Number (UN)
- tag: 9F37
- key: unpredictableNumber,
-
Issuer Public Key Exponent
- tag: 9F32
- key: issuerPublicKeyExponent,
-
Card Risk Management Data Object List 1 (CDOL1)
- tag: 8C
- key: CDOL1,
-
Card Risk Management Data Object List 2 (CDOL2)
- tag: 8D
- key: CDOL2,
-
Transaction Certificate Data Object List (TDOL)
- tag: 97
- key: TDOL,
-
Processing Options Data Object List (PDOL)
- tag: 9F38
- key: PDOL,
-
Dynamic Data Authentication Data Object List (DDOL)
- tag: 9F49
- key: DDOL,
-
Track 2 Equivalent Data
- tag: 57
- key: track2EquivalentData,
-
Application Primary Account Number (PAN)
- tag: 5A
- key: pan,
-
Application Primary Account Number (PAN) Sequence Number (PSN)
- tag: 5F34
- key: panSeqNum,
-
Application Transaction Counter (ATC)
- tag: 9F36
- key: atc,
-
Application Cryptogram (AC)
- tag: 9F26
- key: applicationCryptogram,
-
Cryptogram Information Data (CID)
- tag: 9F27
- key: cryptogramInformationData,
-
Application Version Number, Terminal
- tag: 9F09
- key: terminalApplicationVersionNumber,
-
Terminal Capabilities
- tag: 9F33
- key: terminalCapabilities,
-
Terminal Type
- tag: 9F35
- key: terminalType,
-
Transaction Sequence Counter
- tag: 9F41
- key: transactionSequenceCounter,
-
Acquirer Identifier
- tag: 9F01
- key: acquirerIdentifier,
-
Additional Terminal Capabilities (ATC)
- tag: 9F40
- key: additionalTerminalCapabilities,
-
Amount, Authorised (Binary)
- tag: 81
- key: amountAuthorisedBinary,
-
Amount, Other (Binary)
- tag: 9F04
- key: amountOtherBinary,
-
Amount, Reference Currency (Binary)
- tag: 9F3A
- key: amountReferenceCurrency,
-
Currency Code, Application
- tag: 9F42
- key: applicationCurrencyCode,
-
Currency Exponent, Application
- tag: 9F44
- key: applicationCurrencyExponent,
-
Application Discretionary Data
- tag: 9F05
- key: applicationDiscretionaryData,
-
Application Effective Date
- tag: 5F25
- key: applicationEffectiveDate,
-
Application Expiration Date
- tag: 5F24
- key: applicationExpirationDate,
-
Application File Locator (AFL)
- tag: 94
- key: applicationFileLocatorAFL,
-
Application Identifier (ADF Name)
- tag: 4F
- key: applicationIdentifierAIDCard,
-
Application Identifier (AID), Terminal
- tag: 9F06
- key: applicationIdentifierAIDTerminal,
-
Application Interchange Profile (AIP)
- tag: 82
- key: applicationInterchangeProfile,
-
Application Label
- tag: 50
- key: applicationLabel,
-
Application Preferred Name
- tag: 9F12
- key: applicationPreferredName,
-
Application Priority Indicator
- tag: 87
- key: applicationPriorityIndicator,
-
Currency Code, Application Reference
- tag: 9F3B
- key: applicationReferenceCurrency,
-
Currency Exponent, Application Reference
- tag: 9F43
- key: applicationReferenceCurrencyExponent,
-
Application Template
- tag: 61
- key: applicationTemplate,
-
Application Usage Control (AUC)
- tag: 9F07
- key: applicationUsageControl,
-
Application Version Number, Card
- tag: 9F08
- key: applicationVersionNumber,
-
Authorisation Code
- tag: 89
- key: authorisationCode,
-
Authorisation Response Code (ARC)
- tag: 8A
- key: authorisationResponseCode,
-
Bank Identifier Code (BIC)
- tag: 5F54
- key: bankIdentifierCodeBIC,
-
Cardholder Name
- tag: 5F20
- key: cardholderName,
-
Cardholder Name - Extended
- tag: 9F0B
- key: cardholderNameExtended,
-
Cardholder Verification Method (CVM) List
- tag: 8E
- key: cvmList,
-
Cardholder Verification Method (CVM) Results
- tag: 9F34
- key: cvmResults,
-
Public Key Index, Certification Authority, Terminal
- tag: 9F22
- key: terminalCertificationAuthorityPublicKeyIndex,
-
Command Template
- tag: 83
- key: commandTemplate,
-
Data Authentication Code
- tag: 9F45
- key: dataAuthenticationCode,
-
Dedicated File (DF) Name
- tag: 84
- key: dedicatedFileDFName,
-
Directory Definition File (DDF) Name
- tag: 9D
- key: directoryDefinitionFileDDFName,
-
Directory Discretionary Template
- tag: 73
- key: directoryDiscretionaryTemplate,
-
File Control Information (FCI) Issuer Discretionary Data
- tag: BF0C
- key: fciIssuerDiscretionaryData,
-
File Control Information (FCI) Proprietary Template
- tag: A5
- key: fciProprietaryTemplate,
-
File Control Information (FCI) Template
- tag: 6F
- key: fciTemplate,
-
ICC Dynamic Number
- tag: 9F4C
- key: iccDynamicNumber,
-
Integrated Circuit Card (ICC) PIN Encipherment Public Key Certificate
- tag: 9F2D
- key: iccPINEnciphermentPublicKeyCertificate,
-
Integrated Circuit Card (ICC) PIN Encipherment Public Key Exponent
- tag: 9F2E
- key: iccPINEnciphermentPublicKeyExponent,
-
Integrated Circuit Card (ICC) PIN Encipherment Public Key Remainder
- tag: 9F2F
- key: iccPINEnciphermentPublicKeyRemainder,
-
Integrated Circuit Card (ICC) Public Key Certificate
- tag: 9F46
- key: iccPublicKeyCertificate,
-
Integrated Circuit Card (ICC) Public Key Exponent
- tag: 9F47
- key: iccPublicKeyExponent,
-
Integrated Circuit Card (ICC) Public Key Remainder
- tag: 9F48
- key: iccPublicKeyRemainder,
-
Interface Device (IFD) Serial Number
- tag: 9F1E
- key: interfaceDeviceIFDSerialNumber,
-
International Bank Account Number (IBAN)
- tag: 5F53
- key: internationalBankAccountNumberIBAN,
-
Issuer Action Code - Default
- tag: 9F0D
- key: issuerActionCodeDefault,
-
Issuer Action Code - Denial
- tag: 9F0E
- key: issuerActionCodeDenial,
-
Issuer Action Code - Online
- tag: 9F0F
- key: issuerActionCodeOnline,
-
Issuer Application Data (IAD)
- tag: 9F10
- key: issuerApplicationData,
-
Issuer Authentication Data
- tag: 91
- key: issuerAuthenticationData,
-
Issuer Code Table Index
- tag: 9F11
- key: issuerCodeTableIndex,
-
Issuer Country Code
- tag: 5F28
- key: issuerCountryCode,
-
Issuer Country Code (alpha2 format)
- tag: 5F55
- key: issuerCountryCodeAlpha2Format,
-
Issuer Country Code (alpha3 format)
- tag: 5F56
- key: issuerCountryCodeAlpha3Format,
-
Issuer Identification Number (IIN)
- tag: 42
- key: iin,
-
Issuer Script Command
- tag: 86
- key: issuerScriptCommand,
-
Issuer Script Identifier
- tag: 9F18
- key: issuerScriptIdentifier,
-
Issuer Script Template 1
- tag: 71
- key: issuerScriptTemplate1,
-
Issuer Script Template 2
- tag: 72
- key: issuerScriptTemplate2,
-
Issuer Uniform resource locator (URL)
- tag: 5F50
- key: issuerURL,
-
Language Preference
- tag: 5F2D
- key: languagePreference,
-
Last Online Application Transaction Counter (ATC) Register
- tag: 9F13
- key: lastOnlineATCRegister,
-
Log Entry
- tag: 9F4D
- key: logEntry,
-
Log Format
- tag: 9F4F
- key: logFormat,
-
Lower Consecutive Offline Limit (LCOL)
- tag: 9F14
- key: lowerConsecutiveOfflineLimit,
-
Merchant Category Code (MCC)
- tag: 9F15
- key: merchantCategoryCode,
-
Merchant Identifier
- tag: 9F16
- key: merchantIdentifier,
-
Merchant Name and Location
- tag: 9F4E
- key: merchantNameAndLocation,
-
Personal Identification Number (PIN) Try Counter
- tag: 9F17
- key: pinTryCounter,
-
Point-of-Service (POS) Entry Mode
- tag: 9F39
- key: pointOfServicePOSEntryMode,
-
Response Message Template Format 1
- tag: 80
- key: responseMessageTemplateFormat1,
-
Response Message Template Format 2
- tag: 77
- key: responseMessageTemplateFormat2,
-
Service Code
- tag: 5F30
- key: serviceCode,
-
Short File Identifier (SFI)
- tag: 88
- key: sfi,
-
Signed Dynamic Application Data (SDAD)
- tag: 9F4B
- key: signedDynamicApplicationData,
-
Signed Static Application Data (SAD)
- tag: 93
- key: signedStaticApplicationData,
-
Static Data Authentication Tag List (SDA)
- tag: 9F4A
- key: staticDataAuthenticationTagList,
-
Terminal Floor Limit
- tag: 9F1B
- key: terminalFloorLimit,
-
Terminal Identification
- tag: 9F1C
- key: terminalIdentification,
-
Terminal Risk Management Data
- tag: 9F1D
- key: terminalRiskManagementData,
-
Terminal Verification Results (TVR)
- tag: 95
- key: terminalVerificationResults,
-
Track 1 Discretionary Data
- tag: 9F1F
- key: track1DiscretionaryData,
-
Track 2 Discretionary Data
- tag: 9F20
- key: track2DiscretionaryData,
-
Transaction Certificate (TC) Hash Value
- tag: 98
- key: transactionCertificateTCHashValue,
-
Transaction Currency Exponent
- tag: 5F36
- key: transactionCurrencyExponent,
-
Transaction Personal Identification Number (PIN) Data
- tag: 99
- key: pinData,
-
Currency Code, Transaction Reference
- tag: 9F3C
- key: transactionReferenceCurrencyCode,
-
Currency Exponent, Transaction Reference
- tag: 9F3D
- key: transactionReferenceCurrencyExponent,
-
Transaction Status Information (TSI)
- tag: 9B
- key: transactionStatusInformation,
-
Transaction Time
- tag: 9F21
- key: transactionTime,
-
Upper Consecutive Offline Limit (UCOL)
- tag: 9F23
- key: upperConsecutiveOfflineLimit
Indicates the value of the first byte for tags known to be two bytes long
- 5f
- 9f
Indicates the data type for tags in DOLs
- 9F37 - non numeric
- 9F02 - non numeric
- 9F03 - non numeric
- 9F1A - non numeric
- 5F2A - non numeric
- 9A - non numeric
- 9C - non numeric